A Ruby implementation of the Data Encryption Standard.
Fetching latest commit…
Cannot retrieve the latest commit at this time
|lib||cleaned up a few things|
== RubyDES RubyDES is a full Ruby implementation of the Data Encryption Standard. The purpose of this project was to allow Ruby programmers interested in cryptography a glimpse of how a robust cryptographic algorithm functions in a language they understand. The best way to understand the RubyDES source code is by following along with a FIPS 46, which you can find at http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf NOTE: DES is deprecated, and as such, you should not use this implementation in any project you are developing. I highly recommend the AES, TwoFish or Serpent algorithms through the OpenSSL library instead. == Running RubyDES Using RubyDES is pretty easy. First, construct a new data and key block. data = RubyDES::Block.new('mysecret') key = RubyDES::Block.new('hushhush') Then, build a new <tt>RubyDES::Ctx</tt> object and supply the data and key block. des = RubyDES::Ctx.new(data, key) Finally, let it rip. encrypted_data = des.encrypt You will then be returned a DES encrypted block that is completely secure against eavesdropping (if it were still 1997). To decrypt an encrypted data block, just build a new <tt>RubyDES::Ctx</tt> object in similar fashion as before. un_des = RubyDES::Ctx.new(encrypted_data, key) And run the DES with the key schedule reversed. decrypted_data = un_des.decrypt You can then check to see if it all worked. data.bit_array.eql?(decrypted_data.bit_array) Enjoy! == Feedback If you have any questions, comments or just want to talk shop about crypto, feel free to reach me through my website at http://www.robertsosinski.com.