Criptografia motorului de cifru și implementarea lui pe delphi

A B C D E F G I I J K L M N O P Q R U T U V W X Y Z

abvgdezhziyklmnoprstufhtschshschyeyuya bvgdezhziyklmnoprstufhtschshschyeyuyaA vgdezhziyklmnoprstufhtschshschyeyuyaAB gdezhziyklmnoprstufhtschshschyeyuyaABV dezhziyklmnoprstufhtschshschyeyuyaABVG ezhziyklmnoprstufhtschshschyeyuyaABVGD zhziyklmnoprstufhtschshschyeyuyaABVGDE ziyklmnoprstufhtschshschyeyuyaABVGDEZh iyklmnoprstufhtschshschyeyuyaABVGDEZhZ yklmnoprstufhtschshschyeyuyaABVGDEZhZI klmnoprstufhtschshschyeyuyaABVGDEZhZY lmnoprstufhtschshschyeyuyaABVGDEZhZIYK mnoprstufhtschshschyeyuyaABVGDEZhZIYKL noprstufhtschshschyeyuyaABVGDEZhZIYKLM oprstufhtschshschyeyuyaABVGDEZhZIYKLMN prstufhtschshsch yuyaABVGDEZhZIYKLMNOPRSTUFHTs eyuyaABVGDEZhZIYKLMNO rstufhtschshschyeyuyaABVGDEZhZIYKLMNOP stufhtschshschyeyuyaABVGDEZhZIYKLMNOPR tufhtschshschyeyuyaABVGDEZhZIYKLMNOPRS ufhtschshschyeyuyaABVGDEZhZIYKLMNOPRST fhtschshschyeyuyaABVGDEZhZIYKLMNOPRSTU htschshschyeyuyaABVGDEZhZIYKLMNOPRSTUF tschshschyeyuyaABVGDEZhZIYKLMNOPRSTUFH chshschyeyuyaABVGDEZhZIYKLMNOPRSTUFHTs shschyeyuyaABVGDEZhZIYKLMNOPRSTUFHTsCh schyeyuyaABVGDEZhZIYKLMNOPRSTUFHTsChSh yeyuyaABVGDEZhZIYKLMNOPRSTUFHTsChShSch yeyuyaABVGDEZhZIYKLMNOPRSTUFHTsChShSch eyuyaABVGDEZhZIYKLMNOPRSTUFHTsChShSchY eyuyaABVGDEZhZIYKLMNOPRSTUFHTsChShSchY NEXTLINE NEXTLINE NEXTLINE NEXTLINE NEXTLINE






Observ că, în general, masa Vigenère constă dintr-un alfabet care este schimbat ciclic de un caracter la stânga, dar sunt posibile și alte permutări - depinde de tine. În plus, prima linie poate fi un alfabet, amestecat aleatoriu.

Procesul de criptare este după cum urmează. Text simplu (care ar trebui să fie criptate, stocate într-o linie fără goluri. Apoi, este necesar să se determine cheia. Vigenere a propus ca o cheie pentru a utiliza text foarte clar, adăugând la începutul personajului cheie selectate la întâmplare. Cu toate acestea, observăm că nu este necesar să se respecte regulile creatorului cifru. În ca cheia este posibil să se utilizeze orice altă secvență de caractere cu aceeași lungime ca și plaintext-.







După ce sa făcut totul, pentru a obține textul de cifru (criptogramă), luați primul caracter al plaintextului ca un indicator de linie în tabelul Vigenere. iar litera de mai jos este folosită ca coloană. La intersecția acestei perechi de la masă, scriem simbolul textului cifrului. Apoi repetați acești pași pentru toate simbolurile rămase. De exemplu, ia în considerare criptarea textului simplu - "blocaj de mere". Ca cheia, vom folosi textul însuși, cu adăugarea unui caracter aleator la început - am primit-o "uh". Reperez că cheia poate fi formată într-un mod diferit, de exemplu, pur și simplu textul deschis textului "lyaychnbo jemd". Dar cheia trebuie să fie cunoscută destinatarului cifrului, adică schema de amestecare a textului deschis este cunoscută, astfel încât să poată decripta criptograma. Deci, acum, scriem textul simplu într-un șir fără spații, iar sub el scriem și cheia.

Pentru a restabili (decripta) textul simplu, trebuie să cunoașteți textul cifrului și cheia. Apoi, luați prima literă a cheii, determinați coloana corespunzătoare din tabelul Vigeni și mergeți peste ea de sus în jos până când întâlnim primul caracter al textului de cifru. Odată ce ați cunoscut personajul dorit, scrieți litera care indică această linie - deci primim primul caracter al textului. Realizăm aceleași acțiuni pentru simbolurile rămase ale cheii și textul cifrului.

Codul lui Vigenère a fost uitat nemaiîntruns de mult timp. Mulți până în prezent sub acest cod înțeleg cea mai simplă versiune cu un cuvânt cheie scurt și un tabel alcătuit din alfabete obișnuite.

Și acum, să aruncăm o privire la implementarea software a cifrului Vigenère pe Delphi.

Pentru început, trebuie să generăm masa Vigenère. Pentru a face acest lucru,

trebuie să declarați următoarele variabile globale:

Acum scrieți codul pentru generarea mesei:

Tabelul este și puteți continua în siguranță cu implementarea procedurii de criptare. Aratam:

Din moment ce este implementată criptarea, este timpul să luați în considerare procedura de decriptare. Aratam:

Vă recomandăm pentru lectură:
Cartea Charles Weserell, "Etudes pentru programatori".







Trimiteți-le prietenilor: