On Tue, Dec 29, 2009 at 6:24 AM, Vamsi Krishna <li...@ruby-forum.com> wrote:
> Hi All,
>
> I wanted to ensure confidentiality by encrypting some information.  I
> also wanted to maintain non-reputability by encrypting huge data with
> the senders
> private RSA key.
>
> Here the data is first encrypted with Senders(lets say A)
> private key and then Recievers(lets say B) public key.To decrypt, 'B' is
> the only one who can decrypt the data, and he knows the data came from
> 'A' because A's public RSA key is also needed.
>
> The following is the code:
>
> require 'openssl'
>
> reciever_public_key_file = 'reciever_public.pem'
> sender_public_key_file = 'sender_public.pem'
>
> sender = OpenSSL::PKey::RSA.new(File.read(sender_public_key_file))
>
> sender_public_key = sender.public_key
>
> reciever = OpenSSL::PKey::RSA.new(File.read(reciever_public_key_file))
> reciever_pub_key = reciever.public_key
>
> password="vamsikrishna"
> sender_private_key =
> penSSL::PKey::RSA.new(File.read(private_key_file),password)
>
> string = "Simple encryption example message hope some one may help, lets
> hope for better."
> #[Here the string may be huge data like a file also, for that i changed
> the below line to first_encrypted =
> sender.private_encrypt(File.read(string)) ]
>
> first_encrypted = sender_private_key.private_encrypt(string)
> second_encrypted = reciever.public_encrypt(first_encrypted)
>
> first_decrypted = reciever.private_decrypt(second_encrypted)
> second_decrypted = sender.public_decrypt(first_decrypted)
>
> puts second_decrypted
>
>
> But it throws an error:
> public_encrypt': data too large for key size (OpenSSL::PKey::RSAError)
>
>
> Don't 've any idea right now to overcome this.And let me know where i'm
> going wrong.

Excuse me for being blunt but, clearly you have no idea what you're
doing regarding crypto, so unless you like introducing major security
vulnerabilities by miss-using RSA, AES, etc I can not recommend
strongly enough you stop what you're doing and follow two simple
rules:

1) Use TLSv1 for secure network communication between hosts

2) Use PGP for securely encrypting files

People like to think "I used <insert name of well known encryption
algorithm here> so I'm secure now" without understanding how easy it
is to screw up.  And no, reading a book like Applied Cryptography
doesn't magically make you a crypto expert who can now avoid these
mistakes.  RSA especially is easy to use incorrectly and reduce its
security to virtually nil.

-- 
Aaron Turner
http://synfin.net/
http://tcpreplay.synfin.net/ - Pcap editing and replay tools for Unix & Windows
Those who would give up essential Liberty, to purchase a little temporary
Safety, deserve neither Liberty nor Safety.
    -- Benjamin Franklin
"carpe diem quam minimum credula postero"

--

You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.


Reply via email to