I’m at the beginning of my journey into the world of security. I am reading about the most fundamentals topics and I have encountered something unusual that has thrown me.
I have come across an encryption process on an appliance that can be configured with a plain text key. When you view the configuration of the appliance it shows the key as a cipher text (imagine perhaps the idea is stop people shoulder surfing the key of the appliance). So the plain text key I entered in the appliance configuration has been encrypted somehow.
An appliance will use my configured key with MD5 to hash messages between its self and another appliance. What confuses me is that when I configure a second appliance to talk to the first one I can either configure the same plain text key or I can copy the cipher text from the first appliance shown when viewing the appliance configuration and input that cipher text into the second appliance (specifying as I enter it that I am entering the cipher text version of the key not a plain text version of the key).1
The two appliances talk happily, hashing their inter-appliance message with MD5. At this point I thought the cipher method used to store my key must be symmetrical. The 2nd appliance runs a decryption function that is the reverse of the encryption function and voila, it gets the plain text key so it can be used for the inter- appliance MD5 hashing. After a little digging on the Internet I have found that the cipher method is using a salt2. To the best of my beginner knowledge salts are used for asymmetric ciphers but these appliances exhibit the behaviour of a symmetrical cipher function because they can both encode/decode the same plain text to cipher text (or vice versa) independently of each other. A bit more digging has revealed the salt value is hard coded into the appliance OS and so it’s the same on every one of these appliances.
The question: (Skip to here for short version)
So is this an asymmetric encryption cipher being used that is being “forced” to act symmetrically by given all appliances the same hard coded salt value, or can symmetric ciphers use a salt?
1 If I had three appliances meshed in a traingle all talking to each other, I can configured them with any combination of putting the plain text key into all appliances, configuring one with the plain text key then copying the cipher text version of that key to the other two, or configuring two appliances with the plain text key and copying the cipher text key from one of the appliances to the third appliance. They will still all talk happily so they must all be doing the exact same encryption/decryption process?
2 This encryption/decryption process has been broken wide open and has become public knowledge.
salts are used for asymmetric ciphers" -- salts are used for neither symmetric nor asymmetric ciphers; they are used for one-way transformations like hash functions.