[Powered by Google Translate] [Vigenere Shifrës] [Nate Hardison - Universiteti i Harvardit] [Kjo është CS50. - CS50.TV] Njihuni me Alice. Alice ka një dëshirë e fortë për Bob. Për fat të mirë për të Alice, Bob gjithashtu ka sy për të. Fatkeqësisht për romancë e tyre nis të lulëzojë, jo vetëm që prindërit e Alice dakord me Bob, shoku më i mirë, por Alice, Evelyn, ka një dëshirë e fortë sekret në Bob dhe egoiste dëshiron t'i mbajtur ata larg në të gjitha shpenzimet. Për të dërguar mesazhe sekrete me njëri-tjetrin se prindërit e Alice nuk mund ta kuptojnë, Alice dhe Bob kanë qenë duke përdorur një shifër Cezarit, i cili punon duke zhvendosur alfabetin nga një numër të caktuar të letrave si një mënyrë për të gjeneruar një alfabet të ri. Çdo letër në alfabetin origjinal është zëvendësuar më pas nga letrën e saj përkatës në alfabetin e ri zhvendosur. Numri preferuar Alice është 3, i cili Bob e di, kështu që ajo përdor 3 si kyç saj. Kur ajo ndërrime alfabetin anglisht me 3 shkronja, A bëhet D, B bëhet E, C bëhet F, dhe kështu me radhë. Kur ajo merr në fund të alfabetit - me letra X, Y, dhe Z - ajo vetëm përfundon rreth përsëri në fillim të alfabetit dhe zëvendësuesit X me një, Y me B, dhe Z me C. Pra, kur Alice shkon për të kriptuar mesazhin e saj të fshehtë për Bob, domethënë "Njihuni me mua në parkun në 11:00," ajo vetëm bën zëvendësime të përshtatshme. M bëhet P, E të bëhet H, dhe kështu me radhë deri në atë unencrypted mesazh plain text është kthyer në tekstin e koduar shifër: "Phhw ph DW wkh sdun DW hohyhq DP" nuk është aspak e kumbues më romantike, por Alice besoj se kjo do të bëjë. Alice jep mesazh për Evelyn për të ofruar në shtëpinë e Bob. Por Evelyn vend merr atë përsëri në dhomën e saj dhe të përpiqet për të goditur kodin. Një nga gjërat e parë njoftimeve Evelyn është se letra H ndodh 7 herë në mesazh, shumë më tepër se çdo herë tjetër letër. Duke e ditur se letra e është më e zakonshme në gjuhën angleze, ndodhin pothuajse 13% të kohës, Evelyn supozime se H ka qenë zëvendësuar E në mënyrë që të bëjnë një mesazh të fshehtë dhe përpiqet duke përdorur një çelës të 3 të decrypt atë. Brenda disa minutave, Evelyn shifra se planet e Alice dhe evilly quan prindërit e Alice. Sikur Alice dhe Bob merren CS50, ata do të kanë njohur të kësaj frekuenca-analiza sulm në shifër Cezarit, e cila e lejon atë të jetë i prishur mjaft shpejt. Ata gjithashtu do të ketë njohur se shifër është e lehtë subjekt i një sulmi brute-force, Evelyn ku mund të keni provuar të gjitha 25 çelësat e mundshme, apo ndërrime të alfabetit Shqip, në mënyrë që të deshifroj mesazhin. Pse 25 çelësat dhe jo 26? E pra, do të përpiqen zhvendosur ndonjë letër nga 26 pozicionet, dhe ju do të shihni se pse. Gjithsesi, një brute-force sulm do të marrë pak më të gjatë Evelyn por jo kohë të mjaftueshme për të mbajtur atë nga frenimi Alice dhe planet e Bob, veçanërisht nëse Evelyn ka ndihmën e një kompjuteri e cila mund të shqyej nëpërmjet të gjitha 25 raste në një çast. Pra, ky problem rrënuar edhe të tjerët që përdoren shifrën Cezarit, dhe për këtë arsye njerëzit filluan të eksperimentojnë me shifra zëvendësimit më komplekse se përdorimi i vlerave të shumta ndryshim në vend të vetëm një. Një nga më të mirë-njohur nga këto është quajtur shifër Vigenere. Si mund të marrim vlerat e shumta ndryshim? E pra, në vend të përdorimit të një numri si kyç, ne përdorim një fjalë për çelës. Ne do të përdorim çdo letër në kyç për të gjeneruar një numër, dhe efekti është se ne do të kemi të shumta Cezarit shifër stilit çelësat për zhvendosjen letra. Le të shohim se si kjo punon nga encrypting mesazh Alice për Bob: Njihuni me mua në park at 11:00 Unë, personalisht, mendoj se është e shijshme proshutë, kështu që le të përdorin atë si çelës. Nëse marrim mesazhin në unencrypted saj, format plain-text, ne e shohim se ajo është 25 gërma. Bacon ka vetëm 5 shkronja, kështu që ne kemi nevojë për të përsëritur atë 5 herë për ta bërë atë të shkojë me gjatësinë e tekstit të thjeshtë. Proshutë proshutë proshutë proshutë proshutë. Si një mënjanë shkurtër, nëse numri i shkronjave në tekst të thjeshtë nuk ndajnë të pastër nga numri i shkronjave në kyç, ne vetëm përsëritje fund përfundimtar të kyç tonë në fillim, duke përdorur vetëm shkronja kemi nevojë për të bërë çdo gjë të shkojë deri. Tani ne do të shkojmë për të gjetur vlerat ndryshim. Ne jemi duke shkuar për të bërë këtë duke përdorur pozitën e çdo letër kyç tonë - proshutë - në A në Z alfabetit. Që ne jemi shkencëtarë kompjuter, ne si të fillojë numërimi në zero në vend të 1, kështu që ne jemi duke shkuar për të thonë se pozicioni i shkronjës së parë të proshutë - B - është në pozitën 1 në zero-indeksuar A në Z alfabetit, nuk 2, dhe pozicioni i Një është zero nuk, 1. Duke përdorur këtë algorithm, ne mund të gjeni vlerat ndryshim për çdo letër. Për të encrypt plain text dhe të gjenerojë tekst shifër, ne vetëm zhvendoset çdo letër në tekst të thjeshtë nga shuma e caktuar, ashtu si bëjmë me shifër Cezarit, duke i dhënë nga Z kthehet në një nëse është e nevojshme. M merr zhvendosur nga 1 vend për të bërë N. E parë nuk zhvendoset në të gjitha, por ne zhvendoset E dytë nga 2 vende të G T dhe nga 14 vende te H. Nëse punojmë përmes tekst të thjeshtë, deri ne fund me të, "Negh ZF av HUF pcfx bt gzrwep oz." Përsëri, jo shumë romantike bombastik por patjetër fshehtë. Nëse Alice dhe Bob kishte njohur rreth Vigenere shifër, ata do të kanë qenë të sigurt nga sytë prying e Evelyn? Çfarë mendoni ju? Do të doni të hyni në llogarinë tuaj bankare në qoftë se banka juaj vendosi të përdorë Vigenere shifër të encrypt komunikimin tuaj përdorimin e fjalëkalimin tuaj si kyç tuaj? Në qoftë se unë ishit ju, unë nuk do të. Dhe ndërsa Evelyn mund të mbahen zënë kohë të mjaftueshme për Alice dhe Bob kanë tyre takohen-up, kjo nuk është e vlefshme për Alice dhe Bob në dorë të fatit atë. Vigenere shifër është relativisht e lehtë për të thyer në qoftë se ju e dini gjatësinë e kryesore sepse atëherë ju mund të trajtoni tekstin e koduar shifër si produkt i një shifra thurur disa Cezarit. Gjetja gjatësinë e kyç nuk është tmerrësisht e vështirë, ose. Nëse origjinale plain-text mesazhi është kohë e mjaftueshme që disa fjalë të ndodhë shumë herë, në fund ju do të shihni përsëritjen prodhues deri në tekst shifër koduar, si në këtë shembull, ku ju shihni MONCY shfaqet dy herë. Përveç kësaj, ju mund të kryejnë një sulm brute-force në shifër. Kjo ka marrë në mënyrë të konsiderueshme më shumë se një sulm brute-force në shifër Cezarit, të cilat mund të bëhet pothuajse menjëherë me një kompjuter që në vend të 25 raste të kontrolloni ju keni marrë 26 ⁿ - 1 mundësive, ku n është gjatësia e çelës panjohur. Kjo është sepse secili letër në çelës mund të jetë ndonjë nga 26 letra, Një anë Z, dhe një person i zgjuar do të përpiqet të përdorë një çelës që nuk mund të gjendet në një fjalor, që do të thotë se ju do të keni për të provuar të gjitha kombinimet letër të pazakontë, si ZXXXFF, dhe jo vetëm një çift njëqind mijë fjalë në fjalor. Minus 1 vjen në matematikë, sepse ju nuk do të duan të përdorin një çelës me vetëm një është, që me zero-indeksuar alfabetit tonë që do të ju jap të njëjtin efekt si duke përdorur një shifrën Cezarit me një çelës e zero. Gjithsesi, 26 ⁿ - 1 ka marrë të mëdha në vend shpejt, por ndërsa ju patjetër nuk do të duan të provoni thyer një shifër me dorë në këtë mënyrë, kjo është padyshim mund të bëhet me një kompjuter. Për fat të mirë për Alice dhe Bob, dhe për bankare online, cryptographers kanë zhvilluar mënyra më të sigurta për të encrypt mesazhe sekrete nga sytë prying. Megjithatë, kjo është një temë për një tjetër kohë. Emri im është Nate Hardison. Kjo është CS50.