CIFRURI DE SUBSTITUŢIE
Clasificarea metodelor simetrice 1. Cifruri substituţie; 2. Cifruri transpoziţie; 3. Cifruri combinate.
CIFRURI DE SUBSTITUŢIE Cifruri de substituţie monoalfabetică (monoalphabetic ciphers) Cifruri de substituţie omofonica (homophonic substitution ciphers) Cifrul de substituţie poligramică (polygram substitution ciphers) Cifruri de substituţie polialfabetice
4. Cifruri de substituţie polialfabetice sunt formate din mai multe cifruri de substituţie simple Fie d alfabete de cifrare c 1, c 2,..., c d, şi d funcţii f i care realizează substituţia de forma: f i : A C i, 1 i d. Un mesaj clar M=m 1 m 2 m d m d+1 m 2d... va fi cifrat prin repetarea secvenţelor de funcţii f 1, f 2,...,f d : E k (M) = f 1 (m 1 )...f d (m d ) f (m d+1 ). Obs. numărul cheilor posibile se măreşte de la 26!, câte erau la substituţia monoalfabetică, la (26!) n
A. Cifrul lui Vigenere In acest caz cheia k este o secvenţă de litere de forma : k=k 1 k 2...k d. Funcţiile f i de substituţie se definesc astfel: f i (a)=(a+k i ) mod n, unde n este lungimea alfabetului. Exemplu considerăm cheia de 8 litere ACADEMIE care va fi utilizată repetitiv pentru cifrarea mesajului SUBSTITUŢIE POLIALFABETICĂ. Folosind o corespondenţă biunivocă între literele alfabetului şi elementele claselor de resturi modulo 26 (A=0, B=1,..., Z=25 ), substituţia 8-alfabetică conduce la următorul text:
text clar : cheia : S U B S T I T U T I E P O L I A L F A B E T I C A A C A D E M I E A C A D E M I E A C A D E M I E A S + A = 18 + 0 (mod 26) = 18 (mod 26) = 18 = S U + C = 20 + 2 (mod 26) = 22 (mod 26) = 22 = W B + A = 1 + 0 (mod 26) = 1 (mod 26) = 1 = B... C + E = 2 + 4 (mod 26) = 6 (mod 26) = 6 = G A + A = 0 + 0 (mod 26) = 0 (mod 26) = 0 = A - text cifrat : SWBVXUBYTKESSXQELHAEIFQGA
Algoritmul lui Vigenere cheia k=k 1 k 2...k n este folosită periodic pentru a transforma caracterul m i {A,..., Z} din textul clar după formula: c j = (m j + k j mod n ) mod 26 Pentru decriptare se folosește formula: m j = (c j - k j mod n ) mod 26
B. Cifrul lui Trithemius Alfabetul este dispus pe 26 de linii numerotate de la 0 la 25, unde numărul de ordine al liniei indică numărul de caractere cu care se deplasează ciclic alfabetul spre dreapta. Linia numerotată cu 0 constituie tocmai alfabetul în ordinea iniţială. Acest cifru poate fi utilizat astfel: primul caracter se cifrează selectându-l din linia 1, al doilea din linia a 2-a şi aşa mai departe. Exemplu: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Mesajul: T R E B U I E S Ǎ I N V I N G E M se cifrează: UTHFZOL AJ SYHVBVUD 0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5
C. Cifrul lui Trithemius cu cheie Tabel_litere.pdf Cuvântul cheie: BANI Mesajul: Nu te fac fericit. Codificarea: Literele cuvântului cheie: BA NI BAN IBANIBA. Literele mesajului: NU TE FAC FERICIT. Mesajul codificat: OU GM GAP NFRVKJT.
Cifruri transpoziţie Cifrurile transpoziţie realizează o permutare a caracterelor din textul clar. Cheia de cifrare este perechea k=(d, f), unde d reprezintă lungimea blocurilor succesive de caractere care vor fi cifrate conform permutării f: f: Z d -> Z d, Z d = {1,2,,d} de forma 1 2 d f(1) f(2) f(d) unde f(i) f(j), pentru orice i j. Mulţimea funcţiilor astfel definite este d! În acest fel mesajul clar M= m 1 m 2 m d m d+1 m 2d este cifrat astfel: C = E k (M) = m f(1) m f(d) m f(d+1) m d+f(d).
Descifrarea se obţine prin permutarea inversă. Cifrarea prin transpoziţie este o transformare a textului clar prin care se modifică poziţia caracterelor în mesaj. O metodă des folosită pentru implementarea acestui tip de transformare este scrierea mesajului într-o anumită matrice după care textul cifrat se obţine prin citirea caracterelor pe linie, pe coloană sau după un anumit traseu în matrice. Cele mai simple transpoziţii se obţin prin împărţirea textului clar în două jumătăţi care se scriu una sub alta, după care se citesc coloanele de la stânga la dreapta.
Ex1. cuvântul calculator se cifrează astfel: Text clar: c a l c u l a t o r Text cifrat: CLAALTCOUR Ex2. C O M P U T E R F A S T Text cifrat: CUFOTAMESPRT
Ex.3. Misiunea a fost îndeplinită 1 2 3 4 5 6 1 M I S I U N 2 E A A F O S 3 T I N D E P 4 L I N I T A 5 X Y Z T W U 1 2 3 4 5 6 5 X Y Z T W U 3 T I N D E P 4 L I N I T A 1 M I S I U N 2 E A A F O S
Ex.4. Misiunea a fost îndeplinită cheia: VULTUR L R T U U V 1 2 3 4 5 6 sannz nspau ifdit iaiiy uoetw metlx V U L T U R 6 4 1 3 5 2 1 2 3 4 5 6 1 M I S I U N 2 E A A F O S 3 T I N D E P 4 L I N I T A 5 X Y Z T W U 1 2 3 4 5 6 S N I I U M A S F A O E N P D I E T N A I I T L Z U T Y W X
Ex.5. cheia CRIPTOGRAFIE (N = 12) mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR - literele din cheie scrise în ordine lexicografică sunt: 1 2 3 4 5 6 7 8 9 10 11 12 A C E F G I I O P R R T - Permutarea este 2 10 6 9 12 8 5 11 1 4 7 3 - Textul clar este scris într-o tabelă cu 12 coloane: 2 10 6 9 12 8 5 11 1 4 7 3 S I Q I N Q C R I P T O G R A F I E Q T A C E R E A Q E S T E Q A U R Q - Textul cifrat se obține citind coloanele tabelei de cifrare în ordinea indicată de cheia numerică: IAA SGE ORQ PCUCQE QAQTER QETIFE IRARTQ NIS
Sisteme mecanice de criptare ușurează operațiile de criptare/decriptare determină un număr mare de chei posibile o maşină de cifrat, respectiv descifrat, trebuie să cuprindă următoarele elemente: - mulţimea (algoritmul) transformărilor; - sistemul de chei; - dispozitive auxiliare care să permită introducerea datelor şi cheilor, adaptarea acestora la canalul de legătură etc.
Din punct de vedere al metodei utilizate, maşinile de cifrat polialfabetice pot fi împărţite în trei categorii: - maşini polialfabetice simple care realizează substituţii diferite la fiecare literă a textului în clar în funcţie de numărul de alfabete utilizate. Nu pot exista mai mult de 26 de alfabete diferite şi acest impediment duce la apariţia repetărilor, factor deosebit de decisiv în bătălia descifrărilor; - maşini polialfabetice bazate pe principiul autocifrării. Substituţiile realizate depind atât de numărul alfabetelor cât şi de caracteristicile textului cifrat. Aceasta duce le reducerea numărului de repetări, deci îngreunează lucrul criptanaliştilor dar complică în acelaşi timp descifrarea. - maşini polialfabetice complexe la care există posibilitatea schimbării aleatoare a rangurilor diferitelor alfabete utilizate.
metodele de substituţie şi permutări repetate sunt destul de complicate mecanizarea lor prin mașini rotor (1920)
MAŞINI ROTOR O maşină rotor (rotor machine) are o tastatură şi o serie de rotoare ce permit implementarea unei versiuni a cifrului Vigénère. Fiecare rotor face o permutare arbitrară a alfabetului, are 26 de poziţii şi realizează o simplă substituţie. Deoarece rotoarele se mişcă cu viteze de rotaţie diferite, perioada unei maşini cu n rotoare este 26 n. cifru bazat pe o maşină rotor este Enigma, utilizată de germani în cel de-al doilea război mondial. El a fost inventat de Arthur Scherbius şi Arvid Gerhard Damm în Europa şi a fost patentat în SUA.
Enigma este o combinație de sisteme mecanice și electrice. Mecanismul mecanic constă dintr-o tastatură, un set de discuri rotative numite rotoare și un mecanism de deplasare care ajută la mișcarea unuia sau a mai multor discuri atunci când o tastă este apăsată. Algoritmul criptografic al maşinii avea la bază o substituţie polialfabetică complexă, realizată cu ajutorul a trei discuri mobile, prevăzute fiecare cu câte 26 de contacte pe o faţă şi 26 de ace pe cealaltă.
alfabet de substituţie cu 26 x 26 x 26 = 17576 substituţii
- dispozitivul de decodificare Colossus
1949 Claude Elwood Shannon (30.04.1916 24.02.2001, fondatorul teoriei informaţiei)- Communication Theory of Secrecy Systems Criptografia modernă utilizează în principiu aceeaşi algoritmi ca şi criptografia tradiţională (transpoziţia şi substituţia), dar accentul cade pe complexitatea algoritmilor. Obiectivul criptografic din actuala perioadă este de a concepe algoritmi de criptare atât de complecşi şi de ireversibili încât atacatorul (sau criptanalistul), chiar şi în situaţia în care are la dispoziţie cantităţi mari de text criptat, să nu poată face nimic fără cheia secretă.