Ho il compito di creare tabelle di database in Oracle che contengano crittografato stringhe (cioè, le colonne sono RAW). Le stringhe sono crittografate dall'applicazione (utilizzando AES, chiave a 128 bit) e memorizzato in Oracle, quindi recuperato in seguito da Oracle e decrittografato (cioè, Oracle stesso non vede mai le stringhe non crittografate).
Mi sono imbattuto in questa colonna che sarà una delle due stringhe. Sono preoccupato che qualcuno noterà e presumibilmente capirà cosa questi due valori per capire il tasto AES.
Ad esempio, se qualcuno vede che la colonna è Ciphertext # 1 o # 2:
-
Ciphertext # 1:
BF,4F,8B,FE, 60,D8,33,56, 1B,F2,35,72, 49,20,DE,C6.
-
Ciphertext # 2:
BC,E8,54,BD, F4,B3,36,3B, DD,70,76,45, 29,28,50,07.
e conosce i Plaintext corrispondenti:
-
Plaintext # 1 ("Detroit"):
44,00,65,00, 74,00,72,00, 6F,00,69,00, 74,00,00,00.
-
Plaintext # 2 ("Chicago"):
43,00,68,00, 69,00,63,00, 61,00,67,00, 6F,00,00,00.
può dedurre che la chiave di crittografia è "Buffalo"?
42,00,75,00, 66,00,66,00, 61,00,6C,00, 6F,00,00,00.
Penso che dovrebbe esserci una sola chiave a 128 bit quello potrebbe convertire Plaintext # 1 in Ciphertext # 1. Questo significa che dovrei andare su una chiave a 192-bit o 256-bit invece, o trovare qualche altra soluzione?
(Per inciso, qui ci sono altri due testi cifrati per gli stessi testi in chiaro ma con una chiave diversa.)
-
Ciphertext # 1 A ("Detroit"):
E4,28,29,E3, 6E,C2,64,FA, A1,F4,F4,96, FC,18,4A,C5.
-
Ciphertext # 2 A ("Chicago"):
EA,87,30,F0, AC,44,5D,ED, FD,EB,A8,79, 83,59,53,B7.
[Domande correlate: Quando si usa AES e CBC, l'IV può essere un hash del testo in chiaro? ]