I need to securely encrypt data we are storing, but for each client I need the same plaintext to encrypt into the same cypher text. The reason for this is the data is still required for a pattern matching algorithm we apply to it, and so it wouldn't work if the cypher text was always different for the same plaintext.
Given this requirement, I am using AES encryption with 256-bit key, creating a random MD5 hash as a password and a hardcoded salt & IV for each client. I don't mind if people can spot patterns in the data due to matching cypher texts, but I do care that they can't retrieve the key to decrypt all of the data for that client's key.
If the was a portion of data that had both the plaintext and corresponding cypher text, how easy is it to crack the key? Is it still 2^(n-1) for n-bit key or thereabouts, or is this now a security risk having a fixed salt and IV?
I read that every known matching cypher text and plain text can reduce the cost of attacking the key by N times, as they can attach more simultaneously... is this true / how many known pairs would it need to be significant?