[Powered by Google Translate] [Vigenère Cipher] [Nate Hardison - Harvard University] [Ini adalah CS50. - CS50.TV] Bertemu Alice. Alice naksir Bob. Untungnya bagi Alice, Bob juga memiliki mata untuknya. Sayangnya untuk romance pemula mereka, tidak hanya orang tua Alice setuju Bob, tapi teman Alice terbaik, Evelyn, naksir rahasia pada Bob dan egois ingin memisahkan mereka di semua biaya. Untuk mengirim pesan rahasia satu sama lain bahwa orangtua Alice tidak bisa mengerti, Alice dan Bob telah menggunakan cipher Caesar, yang bekerja dengan menggeser alfabet oleh sejumlah surat sebagai cara untuk menghasilkan alfabet baru. Setiap huruf dalam alfabet asli kemudian diganti dengan huruf yang sesuai dalam abjad bergeser baru. Nomor favorit Alice adalah 3, yang Bob tahu, jadi dia menggunakan 3 sebagai kuncinya. Ketika dia menggeser alfabet bahasa Inggris oleh 3 huruf, A menjadi D, B menjadi E, C menjadi F, dan sebagainya. Ketika ia sampai ke akhir alfabet - ke huruf X, Y, dan Z - dia hanya membungkus kembali ke awal alfabet dan pengganti X dengan A, Y dengan B, dan Z dengan C. Jadi ketika Alice pergi untuk mengenkripsi pesan rahasia ke Bob, yaitu "Temui aku di taman pukul sebelas a.m.," dia hanya membuat substitusi yang sesuai. M menjadi P, E menjadi H, dan seterusnya sampai dia tidak terenkripsi pesan teks biasa diubah menjadi teks sandi terenkripsi: "Phhw ph dw dw wkh sdun hohyhq dp" pasti tidak terdengar paling romantis, namun Alice percaya bahwa itu akan melakukan. Alice memberi pesan ke Evelyn untuk menyampaikan ke rumah Bob. Tapi Evelyn bukan membawanya kembali ke kamarnya dan mencoba untuk memecahkan kode. Salah satu hal pertama pemberitahuan Evelyn adalah bahwa huruf H terjadi 7 kali dalam pesan, banyak kali daripada surat lainnya. Mengetahui bahwa huruf E adalah yang paling umum dalam bahasa Inggris, terjadi hampir 13% dari waktu, Evelyn menebak bahwa H telah menggantikan E untuk membuat pesan rahasia dan mencoba menggunakan kunci 3 untuk mendekripsi itu. Dalam beberapa menit, Evelyn angka keluar rencana Alice dan evilly panggilan orang tua Alice. Apakah Alice dan Bob diambil CS50, mereka akan tahu hal ini frekuensi-analisis serangan terhadap cipher Caesar, yang memungkinkan untuk dilanggar cukup cepat. Mereka juga akan tahu bahwa cipher mudah tunduk pada serangan brute-force, dimana Evelyn bisa mencoba semua kemungkinan kunci 25, atau pergeseran dari alfabet bahasa Inggris, dalam rangka untuk menguraikan pesan. Mengapa 25 tombol dan tidak 26? Nah, cobalah menggeser surat saja dengan posisi 26, dan Anda akan melihat mengapa. Lagi pula, serangan brute-force akan mengambil Evelyn sedikit lebih lama tetapi tidak cukup lama untuk menjaga dia dari menggagalkan Alice dan rencana Bob, terutama jika Evelyn memiliki bantuan komputer yang bisa merobek melalui semua 25 kasus dalam sekejap. Jadi, masalah ini juga melanda orang lain yang menggunakan cipher Caesar, dan karena itu orang-orang mulai bereksperimen dengan cipher substitusi lebih kompleks yang menggunakan nilai pergeseran beberapa bukan hanya satu. Salah satu yang paling terkenal ini disebut Vigenère cipher. Bagaimana kita mendapatkan nilai pergeseran beberapa? Nah, daripada menggunakan nomor sebagai kunci, kita menggunakan kata kunci. Kami akan menggunakan setiap huruf dalam kunci untuk menghasilkan angka, dan efeknya adalah bahwa kita akan memiliki beberapa Caesar cipher-gaya tombol untuk memindahkan surat. Mari kita lihat bagaimana ini bekerja dengan mengenkripsi pesan Alice untuk Bob: Temui aku di taman di 11:00 Saya, secara pribadi, berpikir daging lezat, jadi mari kita gunakan sebagai kunci. Jika kita mengambil pesan dalam format terenkripsi nya, plain-text, kita melihat bahwa itu 25 huruf. Bacon hanya memiliki 5 huruf, jadi kita perlu mengulanginya 5 kali untuk membuatnya cocok dengan panjang teks biasa. Bacon daging daging daging daging. Sebagai singkat samping, jika jumlah huruf dalam teks biasa tidak membagi bersih dengan jumlah huruf dalam kunci, kita hanya mengakhiri pengulangan akhir kunci kami awal, hanya menggunakan huruf yang kami butuhkan untuk membuat semuanya cocok. Sekarang kita pergi tentang menemukan nilai-nilai pergeseran. Kita akan melakukan ini dengan menggunakan posisi setiap huruf kunci kami - daging - dalam abjad A sampai Z. Karena kita ilmuwan komputer, kami ingin mulai menghitung dengan nol daripada 1, jadi kita akan mengatakan bahwa posisi huruf pertama dari daging - B - berada di posisi 1 di nol-diindeks A sampai Z alphabet, tidak 2, dan posisi A adalah nol, tidak 1. Menggunakan algoritma ini, kita dapat menemukan nilai pergeseran untuk setiap huruf. Untuk mengenkripsi teks biasa dan menghasilkan ciphertext, kita hanya menggeser setiap huruf dalam teks biasa dengan jumlah tertentu, seperti yang kita lakukan dengan cipher Caesar, membungkus dari Z kembali ke A jika perlu. M akan digeser oleh 1 tempat untuk menjadi N. E pertama tidak bergeser sama sekali, tapi kami menggeser E kedua dengan 2 tempat untuk G dan T oleh 14 tempat untuk H. Jika kita bekerja melalui teks biasa, kita berakhir dengan, "Negh zf av huf pcfx bt gzrwep oz." Sekali lagi, tidak sangat romantis yang terdengar samar tapi pasti. Jika Alice dan Bob tahu tentang Vigenère cipher, akan mereka telah aman dari mata Evelyn mencongkel? Bagaimana menurut Anda? Apakah Anda ingin login ke rekening bank Anda jika bank Anda memutuskan untuk menggunakan Vigenère cipher untuk mengenkripsi komunikasi Anda menggunakan password Anda sebagai kunci Anda? Jika aku jadi kau, aku tidak akan. Dan sementara Evelyn mungkin tetap sibuk cukup lama untuk Alice dan Bob untuk memiliki mereka bertemu-up, itu tidak layak untuk Alice dan Bob untuk kesempatan itu. Vigenère cipher relatif mudah untuk istirahat jika Anda mengetahui panjang kunci karena Anda dapat memperlakukan teks cipher terenkripsi sebagai produk dari sebuah cipher beberapa Caesar terjalin. Menemukan panjang kuncinya adalah tidak terlalu sulit, baik. Jika pesan plain-teks asli cukup panjang sehingga beberapa kata terjadi beberapa kali, akhirnya Anda akan melihat pengulangan tanam dalam teks cipher terenkripsi, seperti dalam contoh ini, di mana Anda melihat MONCY muncul dua kali. Selain itu, Anda dapat melakukan serangan brute-force pada cipher. Ini tidak mengambil jauh lebih lama daripada serangan brute-force pada cipher Caesar, yang dapat dilakukan hampir seketika dengan komputer karena bukannya 25 kasus untuk memeriksa Anda punya 26 ⁿ - 1 kemungkinan, dimana n adalah panjang kunci diketahui. Hal ini karena setiap huruf dalam kunci bisa menjadi salah satu dari 26 huruf, A sampai Z, dan orang yang cerdas akan mencoba untuk menggunakan kunci yang tidak dapat ditemukan dalam kamus, yang berarti bahwa Anda harus menguji semua kombinasi huruf aneh, seperti ZXXXFF, dan bukan hanya beberapa ratus ribu kata dalam kamus. Minus 1 datang ke matematika karena Anda tidak akan ingin menggunakan kunci dengan hanya A, karena dengan nol-indeks alfabet kami yang akan memberikan efek yang sama sebagai menggunakan cipher Caesar dengan kunci dari nol. Pokoknya, 26 ⁿ - 1 tidak mendapatkan besar agak cepat, tetapi saat Anda pasti tidak akan ingin mencoba melanggar cipher dengan tangan dengan cara ini, ini pasti bisa dilakukan dengan komputer. Untungnya bagi Alice dan Bob, dan untuk online banking, kriptografer telah mengembangkan cara yang lebih aman untuk mengenkripsi pesan rahasia dari mencongkel mata. Namun, itu adalah topik untuk lain waktu. Nama saya adalah Nate Hardison. Ini adalah CS50.