OK I got a hold of Aaron's white paper from http://www.ardiri.com/publications/palmsource2000.pdf
It's very good - more about protecting the software from being copied rather than preventing data form being seen but does point out that: "An applications algorithm is always open - to the point of being able to read it in the operating systems assembly language." While the paper does provide techniques for protecting against this, as Pascal says: "It is not because the algorithm is known that it is no longer secure !" So this is where I am: I will protect the application with a password. I should store the password encrypted (or hashed). I also have to store the key on the device and the user has to be able to decrypt the data - so I figure I encrypt the key using the user's password. Of course, the users won't want to enter lengthy, strong passwords using Graffiti. I figure that I should use RC4 with to encrypt the data. So, I figure AES or 3DES is unlikely to improve on RC4 (especially if I use "a key wider than 128 bits, avoiding weak keys and always skip the first 256 bytes of output") - because the weak point of the system is that the password gives access to the data. If my customer insists, I can use AESLib to encrypt. I'm interested in the Aaron's dynamic key idea - any pointers about how I implement that? Colin -----Original Message----- From: Pascal LEVY [mailto:[EMAIL PROTECTED] Sent: 03 March 2004 10:25 To: Palm Developer Forum Subject: Re: encryption/decryption Palm Database > Because the algorithm is known, it is no longer a trade secret. > > --> why not change the algorithm slightly? :) > > > We are not using wireless and I think a symmetric key is fine. If I could > > get a hold of some open source AES or 3DES code, I could show my customer > > the performance compared to RC4. > > you can say your using a custom symmetric RC4 based algorithm. one of > the problems with using RC4 based on the url's above is the fact that > it is using a "known" algorithm, just modify it slightly :) It is not because the algorithm is known that it is no longer secure ! Everybody knows about RSA, and it is still robust. As long as you avoid some pitfalls, RC4 is secure. Use a key wider than 128 bits, avoid weak keys, always skip the first 256 bytes of output, and you'll be ok. IMHO, the lack of security comes from the plateform, not from the encryption algorithm. A palm device can easily be stolen or borrowed, providing a malicious user both your encrypted database *and* the application that encrypt/decrypt it... In other words, whatever the encryption algorithm you use, your application won't be secure unless you protect your application from the user point of view using passwords, and from the hacker point of view using one of the mechanism Aaron describes in its famous white paper about software protection. -- Pascal -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/ -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
