Lucifer (criptografie)

Lucifer
Creator Horst Feistel
Creată 1971 - 1973
publicat 1971 - 1973
Dimensiunea cheii 48/64/128 biți
Dimensiunea blocului 48/32/128 biți
Numărul de runde 16
Tip de Rețea de permutare-permutare , rețea Feistel

Lucifer este un  proiect de cercetare IBM din anii 1970 pentru a crea un cifru bloc puternic criptografic . Rezultatele studiului au condus la crearea a două metode de construire a cifrurilor simetrice rezistente la fisuri - rețeaua Feistel și rețeaua permutare-permutare . „Lucifer” a pus bazele criptografiei simetrice moderne. La proiect au participat Horst Feistel și Don Coppersmith , care au devenit ulterior criptografi cunoscuți .  Dezvoltarea lui „Lucifer” a condus la crearea algoritmului DES .  

Istorie

Prima versiune a algoritmului din 1971 folosea blocuri și chei de 48 de biți și se baza pe rețele SP. O modificare ulterioară a algoritmului a fost brevetată în noiembrie a acelui an ( patent american 3.796.830 ; noiembrie 1971) și a folosit rețeaua Feistel . Brevetul conține atât o descriere a algoritmului în sine, cât și a rețelei Feistel. Acest cifru a folosit chei de 64 de biți și blocuri de 32 de biți. Și, în sfârșit, cea mai recentă versiune a fost propusă în 1973 și a funcționat cu blocuri și chei de 128 de biți.

Prima versiune

Structura algoritmului Lucifer din eșantionul din iunie 1971 este o rețea SP (sau rețea de substituție-permutare) - un „sandwich” de două tipuri de straturi utilizate pe rând. Primul tip de strat este un bloc P de 128 de biți, urmat de un al doilea strat, care este de 32 de module, fiecare dintre ele constând din două blocuri S de 4 biți, ale căror intrări corespunzătoare sunt scurtcircuitate și aceeași valoare este alimentată la ele din stratul anterior de ieșire. Dar blocurile de substituție în sine sunt diferite (diferă în tabelele de înlocuire). Ieșirea modulului primește valori doar de la una dintre casetele S, care este determinată în mod specific de unul dintre biții din cheie, numărul cărora corespundea numărului de casete S din structură. O diagramă simplificată a algoritmului cu o adâncime de biți mai mică și un număr incomplet de runde este prezentată în figură. Folosește 16 selectoare S-box (pentru un total de 32 S-box), așa că această schemă folosește o cheie de 16 biți.

Să luăm acum în considerare modul în care textul cifrat se va schimba în algoritmul de mai sus atunci când se schimbă doar un bit. Pentru simplitate, luăm tabele de înlocuiri ale cutiilor S astfel încât, dacă toate zerourile sunt introduse la intrarea cutiei S, atunci ieșirea va fi toate zerouri. În sistemele reale, astfel de tabele de substituție nu sunt utilizate, deoarece simplifică foarte mult munca unui criptoanalist, dar în exemplul nostru ele ilustrează clar relația puternică între caractere atunci când se schimbă un bit al mesajului criptat. Se poate observa că, datorită primului bloc P, singura unitate este deplasată în centrul blocului, apoi următorul bloc S neliniar îl „multipește” și deja două unități își schimbă poziția datorită următoarei P-block etc. La sfârșitul dispozitivului de criptare, datorită conexiunii puternice intersimbol, biții de ieșire au devenit o funcție complexă a biților de intrare și a cheii utilizate. În medie, jumătate din biți vor fi „0” și jumătate „1” în ieșire.

A doua și a treia versiune

Următoarea versiune a algoritmului a folosit o rețea Feistel în loc de o rețea SP . În esență, rețeaua Feistel este o alternativă la rețelele SP și este utilizată mult mai pe scară largă. Din punct de vedere teoretic, funcția de criptare rotundă poate fi redusă la o rețea SP, dar rețeaua Feistel este mai practică, deoarece criptarea și decriptarea pot fi efectuate de același dispozitiv, dar cu ordinea inversă a cheilor utilizate. A doua și a treia versiune a algoritmului (folosind rețeaua Feistel) au funcționat pe blocuri de 32 de biți cu o cheie de 64 de biți și blocuri de 128 de biți cu chei de 128 de biți. În cea mai recentă (a treia) versiune, funcția de criptare rotundă a fost aranjată foarte simplu - în primul rând, subblocul criptat a fost trecut printr-un strat de cutii S de 4 biți (similar cu straturile din rețelele SP, doar caseta S este constantă și nu depinde de cheie), apoi i s-a adăugat modulo 2 o cheie rotundă, după care rezultatul a fost trecut prin blocul P.

Note

Literatură

Link -uri