[Powered by Google Translate] [Vigenere Cipher] [Nate Hardison - Universitatea Harvard] [Acest lucru este CS50. - CS50.TV] Faceți cunoștință cu Alice. Alice are o pasiune pentru Bob. Din fericire pentru Alice, Bob are, de asemenea, ochii de ea. Din nefericire pentru dragoste lor devenire, nu numai părinții lui Alice de acord cu Bob, dar cel mai bun prieten a lui Alice, Evelyn, are o pasiune secretă pentru Bob și egoist vrea să le păstreze în afară de la toate costurile. Pentru a trimite mesaje secrete unul altuia că părinții lui Alice nu pot înțelege, Alice si Bob au fost folosind un cifru Cezar, care funcționează prin schimbarea alfabetul de un anumit număr de litere ca o modalitate de a genera un nou alfabet. Fiecare literă din alfabet original este apoi înlocuit printr-o scrisoare său corespunzător în alfabet nou schimbat. Număr favorit lui Alice este 3, care Bob știe, asa ca foloseste 3, cheia ei. Când ea se schimbă alfabetul englez de 3 litere, A devine D, B devine E, C devine F, și așa mai departe. Atunci când ea ajunge la sfârșitul alfabetului - la scrisorile X, Y, și Z - ea doar se încadrează în jurul înapoi la începutul alfabetului X și înlocuitori, cu un Y, cu B, și Z cu C. Deci, atunci când Alice merge pentru a cripta mesajul ei secretă cu Bob, și anume "Ne întâlnim la parc, la unsprezece dimineața," ea face doar inlocuiri corespunzătoare. M devine P, E devine H, și așa mai departe până când ei necriptat mesaj text simplu este transformat în text cifrat criptat: "Phhw ph mu mu WKH sdun hohyhq dp" nu este cu siguranta cel mai romantic sondare, dar Alice cred că voi face. Alice dă mesaj la Evelyn a livra la casa lui Bob. Dar în loc să-l ia Evelyn înapoi în camera ei și încearcă să descifreze codul. Una dintre primele lucruri anunțuri Evelyn este faptul că litera H apare de 7 ori în mesaj, de multe ori mai mult decât orice altă literă. Știind că litera E este cel mai comun în limba engleză, care apar aproape 13% din timp, Evelyn presupuneri că H au fost înlocuite de E, în scopul de a face mesajul secret si incearca folosind o cheie de la 3 la decripta. În câteva minute, Evelyn cifrele din planurile lui Alice și solicită evilly părinții lui Alice. Dacă Alice si Bob luate CS50, ei s-ar fi cunoscut acest frecvență-analiza atac asupra cifrul lui Cezar, care îi permite să fie spart destul de repede. Ele ar fi, de asemenea, cunoscut faptul că cifrul este ușor obiectul unui atac brute-force, Evelyn prin care ar fi putut să incercat toate posibile 25 taste, sau schimbări ale alfabetului englez, în scopul de a descifra mesajul. De ce 25 de taste si nu 26? Ei bine, încercați să deplasarea orice scrisoare de 26 de posturi, și veți vedea de ce. Oricum, un atac brute-force-ar fi luat un pic mai mult Evelyn dar nu suficient de mult pentru ao păstra de la zădărnicirea Alice și planurile lui Bob, mai ales daca are Evelyn ajutorul unui calculator care ar putea rupe prin toate cele 25 de cazuri într-o clipă. Deci, această problemă afectat, de asemenea, alte persoane care au folosit cifrul Cezar, și, prin urmare, oamenii au inceput sa experimenteze cu cifrurile de substituție mai complexe care utilizează valori multiple de schimbare a în loc de unul singur. Una dintre cele mai bine-cunoscute dintre acestea se numește Vigenere cifru. Cum putem obține valori multiple de schimbare? Ei bine, în loc de a folosi un număr ca tasta, vom folosi un cuvânt cheie pentru. Vom folosi fiecare literă în cheia pentru a genera un număr, și efectul este că vom avea mai multe Cezar cifru stil taste pentru schimbarea litere. Să vedem cum funcționează prin criptarea mesajului lui Alice la Bob: Întâlnește-mă la parc la unsprezece dimineața Eu, personal, cred că este delicios bacon, așa că hai să folosească drept cheie. Dacă luăm în mesajul său necriptate, format text simplu, vom vedea că e 25 litere. Bacon are doar 5 litere, așa că avem nevoie să-l repete de 5 ori pentru a face să corespundă lungimea textului simplu. Bacon slănină bacon șuncă șuncă. Ca o scurta parte, în cazul în care numărul de litere din text simplu nu a diviza curat de numărul de litere din cheie, am termina doar repetarea final al cheia noastră timpurie, folosind doar literele de care aveam nevoie pentru a face totul potrivi. Acum vom merge despre găsirea valorilor de schimbare. Vom face acest lucru prin utilizarea poziției de fiecare literă a cheii noastre - bacon - în A la Z alfabetul. Din moment ce suntem oameni de știință de calculator, ne place să înceapă de la zero numărarea în loc de 1, deci vom spune că poziția primei litere a bacon - B - este în poziția 1 în A zero indexate la alfabetul Z, nu 2, precum și poziția lui A este zero, nu, 1. Folosind acest algoritm, putem găsi valorile de schimbare pentru fiecare literă. Pentru a cripta textul simplu și de a genera text cifrat, trecem doar fiecare literă în text simplu cu valoarea specificată, la fel cum am face cu cifrul lui Cezar, ambalaj de la Z la A înapoi, dacă este necesar. M devine mutat de 1 loc de a deveni N. E prima nu schimba deloc, dar trecem E al doilea de 2 locuri la G și T 14 locuri de către H. Dacă vom lucra prin text simplu, vom ajunge cu, "Negh zf bulevard HUF pcfx BT gzrwep oz" Din nou, nu foarte romantic, dar cu siguranta suna criptic. În cazul în care Alice și Bob au cunoscut despre Vigenere cifru, le-ar fi fost în siguranță de ochii indiscreti Evelyn lui? Ce părere ai? Ați dori să intrați în contul dvs. bancar în cazul în care banca dumneavoastră a decis să utilizeze Vigenere cifru pentru a cripta de comunicare folosind parola ta ca cheia ta? Dacă aș fi tu, eu nu. Și în timp ce Evelyn ar putea fi păstrate ocupat destul de mult pentru Alice si Bob să aibă întâlni-up, nu este meritat pentru Alice si Bob să-l șansă. Vigenere Cifrul este relativ ușor de a sparge dacă știi lungimea cheie deoarece le puteti trata text cifrat criptat ca produs al unui cifrurilor câteva întrețesute Cezar. Găsirea lungimea cheii nu este teribil de greu, fie. Dacă originalul text simplu mesajul este suficient de lungă pentru ca unele cuvinte apar de mai multe ori, în cele din urmă veți vedea repetarea trunchiere până în text cifrat criptat, ca în acest exemplu, în cazul în care veți vedea apar MONCY de două ori. În plus, puteți efectua un atac brute-force pe cifrul. Acest lucru nu ia in mod semnificativ mai mult decât un atac brute-force pe cifrul lui Cezar, care se poate face aproape instantaneu, cu un calculator deoarece în loc de 25 de cazuri pentru a verifica ai 26 ⁿ - 1 posibilități, unde n este lungimea cheie necunoscut. Acest lucru se datorează faptului că fiecare literă din cheie ar putea fi oricare dintre cele 26 de litere, La A la Z, și o persoană inteligentă va încerca să utilizați o cheie care nu pot fi găsite într-un dicționar, ceea ce înseamnă că ar trebui să testeze toate combinații de litere ciudate, cum ar fi ZXXXFF, și nu doar câteva sute de mii de cuvinte în dicționar. Minus 1 vine în matematică pentru că nu ar vrea să folosească o cheie cu doar o e, deoarece nostru de zero indexate alfabet, care ar da același efect ca folosind un cifru Cezar cu o cheie de la zero. Oricum, 26 ⁿ - 1 se obține mare destul de repede, dar în timp ce cu siguranta nu ar vrea să încerce spargerea unui cifru cu mâna în acest fel, aceasta este cu siguranta greu de realizat cu un calculator. Din fericire pentru Alice si Bob, precum și pentru online banking, criptografi s-au dezvoltat mai multe metode sigure de a cripta mesaje secrete de ochii indiscreti. Cu toate acestea, faptul că e un subiect pentru altă dată. Numele meu este Nate Hardison. Acest lucru este CS50.