Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^4: Opening an Encrypted DB_File database

by crabbdean (Pilgrim)
on Jul 14, 2004 at 18:10 UTC ( [id://374376]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Opening an Encrypted DB_File database
in thread Opening an Encrypted DB_File database

Yeah, I thought about that ... but considered its better than not encrypting it at all. If I left it unencrypted they definitely would know the format.

In addition I've written it to use 2 ciphers both with different 256 bit keys, and both keys are based on two different passwords which are themselves encrypted by two different 256 bit ciphers. On top of that the contents of the file is encrypted in a different cipher than the file encryption. Additionally the contents remains in an encrypted state in memory. The GUI requires an 8 digit password plus an 8 digit pin that can only be entered manually via a keypad on the GUI, and the program has a 30 second delay before it runs again. That should stop any brute force attempts. Any other ideas are welcome. :-)

Dean
The Funkster of Mirth
Programming these days takes more than a lone avenger with a compiler. - sam
RFC1149: A Standard for the Transmission of IP Datagrams on Avian Carriers

Replies are listed 'Best First'.
Re^5: Opening an Encrypted DB_File database
by iburrell (Chaplain) on Jul 14, 2004 at 20:35 UTC
    Using two different ciphers and two 256-bit keys is overkill. One good symmetric cipher is the strongest part of any cryptosystem. The 256-bit key is well beyond being brute forces. The password, and system for making the key from the password, are the weak point. 2^256 is much larger than 10^16.
      Yeah, a bit of overkill but looking forward I considered that a year ago 128 bit used to be considered strong, whereas, a year later its not. Yeah, the password bit is the weakpoint but I'm not sure how to strengthen that. I have to consider that a users must get into the program somehow (relatively easily) but also consider that IF a hacker got in they'd then have access to ALL their passwords. Its needs a good strong front door. :-) Any ideas are welcome.

      Also, how did you derive 10^16? Just curious. Thanks again.

      Dean
      The Funkster of Mirth
      Programming these days takes more than a lone avenger with a compiler. - sam
      RFC1149: A Standard for the Transmission of IP Datagrams on Avian Carriers

        128 bits is still strong and will be for the forseeable future, excepting a sudden mathmatical breakthrough. Further, the cost to brute force rises exponentially with the keysize and can easily outpace Moore's Law.

        You would do well to pick up a copy of "Applied Cryptography" (or "Practical Cryptography", which is sort of the updated version, but I haven't read it myself yet). In particular, you may find the chapter on combining ciphers enlightening. You can't just put two 256-bit ciphers together and get a 512-bit cipher. IIRC, you're not worse off (security-wise) than if you had only used one cipher, but you're probably no better off, either. It's possible to combine ciphers, but it has to be done carefuly.

        ----
        send money to your kernel via the boot loader.. This and more wisdom available from Markov Hardburn.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://374376]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2024-03-29 02:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found