Pelajaran kriptografi. Sifir blok moden. Definisi Keselamatan Siber dan Panduan Mula Pantas. Penyulitan kunci awam

Sergey Panasenko,
ketua jabatan pembangunan perisian syarikat "Ankad"
[e-mel dilindungi]

Konsep asas

Proses menukar data terbuka kepada data yang disulitkan dan sebaliknya biasanya dipanggil penyulitan, dan kedua-dua komponen proses ini dipanggil penyulitan dan penyahsulitan, masing-masing. Secara matematik, transformasi ini diwakili kebergantungan berikut, menerangkan tindakan dengan maklumat awal:

C = Ek1(M)

M" = Dk2(C),

di mana M (mesej) - maklumat terbuka(dalam literatur keselamatan maklumat sering dirujuk sebagai "teks sumber");
C (teks sifir) - teks sifir (atau kriptografi) yang diperoleh hasil daripada penyulitan;
E (penyulitan) - fungsi penyulitan yang melakukan transformasi kriptografi pada teks sumber;
k1 (kunci) - parameter fungsi E, dipanggil kunci penyulitan;
M" - maklumat yang diperoleh hasil daripada penyahsulitan;
D (penyahsulitan) - fungsi penyahsulitan yang melakukan transformasi kriptografi songsang pada teks sifir;
k2 ialah kunci yang digunakan untuk menyahsulit maklumat.

Konsep "kunci" dalam standard GOST 28147-89 (algoritma penyulitan simetri) ditakrifkan seperti berikut: "keadaan rahsia khusus beberapa parameter algoritma transformasi kriptografi, memastikan pemilihan satu transformasi daripada satu set yang mungkin untuk daripada algoritma ini transformasi". Dalam erti kata lain, kunci ialah elemen unik yang dengannya anda boleh menukar keputusan algoritma penyulitan: teks sumber yang sama apabila digunakan kunci yang berbeza akan disulitkan secara berbeza.

Agar hasil penyahsulitan sepadan dengan mesej asal (iaitu, untuk M" = M), dua syarat mesti dipenuhi serentak. Pertama, fungsi penyahsulitan D mesti sepadan dengan fungsi penyulitan E. Kedua, kunci penyahsulitan k2 mesti sepadan dengan penyulitan kunci k1.

Jika algoritma penyulitan yang kuat digunakan untuk penyulitan, maka dengan ketiadaan kunci k2 yang betul adalah mustahil untuk mendapatkan M" = M. Kekuatan kriptografi adalah ciri utama algoritma penyulitan dan terutamanya menunjukkan tahap kesukaran mendapatkan teks sumber daripada k2 yang disulitkan tanpa kunci.

Algoritma penyulitan boleh dibahagikan kepada dua kategori: simetri dan penyulitan asimetri. Untuk yang pertama, nisbah kunci penyulitan dan penyahsulitan ditakrifkan sebagai k1 = k2 = k (iaitu, fungsi E dan D menggunakan kunci penyulitan yang sama). Dalam penyulitan asimetri, kunci penyulitan k1 dikira daripada kunci k2 dengan cara yang penukaran songsang mustahil, contohnya, menggunakan formula k1 = ak2 mod p (a dan p ialah parameter algoritma yang digunakan).

Penyulitan simetri

Algoritma penyulitan simetri bermula sejak zaman purba: kaedah menyembunyikan maklumat inilah yang digunakan oleh maharaja Rom Gaius Julius Caesar pada abad ke-1 SM. e., dan algoritma yang diciptanya dikenali sebagai "sistem kripto Caesar."

Pada masa ini, algoritma penyulitan simetri yang paling terkenal ialah DES (Data Encryption Standard), yang dibangunkan pada tahun 1977. Sehingga baru-baru ini, ia adalah "standard AS", kerana kerajaan negara ini mengesyorkan penggunaannya untuk pelaksanaan. pelbagai sistem penyulitan data. Walaupun DES pada asalnya dirancang untuk digunakan tidak lebih daripada 10-15 tahun, percubaan untuk menggantikannya hanya bermula pada tahun 1997.

Kami tidak akan membincangkan DES secara terperinci (hampir semua buku dalam senarai bahan tambahan memilikinya Penerangan terperinci), dan mari beralih kepada algoritma penyulitan yang lebih moden. Perlu diingat bahawa sebab utama untuk menukar standard penyulitan adalah kekuatan kriptografinya yang agak lemah, sebabnya ialah panjang kunci DES hanya 56 bit yang ketara. Adalah diketahui bahawa mana-mana algoritma penyulitan yang kuat boleh dipecahkan dengan mencuba semua kunci penyulitan yang mungkin (kaedah yang dipanggil kekerasan- serangan kekerasan). Adalah mudah untuk mengira bahawa sekumpulan 1 juta pemproses, yang setiap satunya mengira 1 juta kekunci sesaat, akan menyemak 256 varian kunci DES dalam hampir 20 jam. Dan kerana kuasa pengkomputeran sedemikian agak realistik mengikut piawaian hari ini, adalah jelas bahawa kunci 56-bit terlalu pendek dan algoritma DES perlu diganti dengan yang lebih kuat.

Hari ini, dua algoritma penyulitan kuat moden semakin digunakan: standard domestik GOST 28147-89 dan standard kripto AS baharu - AES (Standard Penyulitan Lanjutan).

Standard GOST 28147-89

Algoritma yang ditakrifkan oleh GOST 28147-89 (Gamb. 1) mempunyai panjang kunci penyulitan 256 bit. Ia menyulitkan maklumat dalam blok 64 bit (algoritma sedemikian dipanggil algoritma blok), yang kemudiannya dibahagikan kepada dua subblok 32 bit (N1 dan N2). Subblock N1 diproses dengan cara tertentu, selepas itu nilainya ditambah kepada nilai subblock N2 (penambahan dilakukan modulo 2, i.e. operasi logik XOR - "eksklusif atau"), dan kemudian subblok ditukar. Transformasi ini dilakukan nombor tertentu kali (“pusingan”): 16 atau 32 bergantung pada mod operasi algoritma. Dalam setiap pusingan, dua operasi dilakukan.

Yang pertama ialah keying. Kandungan subblok N1 ditambah modulo 2 dengan bahagian 32-bit kunci Kx. Kunci penuh penyulitan diwakili sebagai gabungan subkunci 32-bit: K0, K1, K2, K3, K4, K5, K6, K7. Semasa proses penyulitan, salah satu daripada subkunci ini digunakan, bergantung pada nombor bulat dan mod operasi algoritma.

Operasi kedua - penggantian meja. Selepas mengekunci, subblok N1 dibahagikan kepada 8 bahagian 4 bit, nilai setiap satunya diganti mengikut jadual penggantian untuk bahagian subblok ini. Subblok kemudiannya diputarkan sedikit ke kiri sebanyak 11 bit.

Penggantian jadual(Kotak penggantian - S-box) sering digunakan dalam algoritma penyulitan moden, jadi ia patut diterangkan bagaimana operasi sedemikian dianjurkan. Nilai keluaran blok direkodkan dalam jadual. Blok data dimensi tertentu (dalam kes kami, 4-bit) mempunyai perwakilan berangkanya sendiri, yang menentukan bilangan nilai output. Sebagai contoh, jika kotak-S kelihatan seperti 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 dan blok 4-bit "0100" datang ke input (nilai 4), maka, mengikut jadual, nilai output akan menjadi 15, iaitu "1111" (0 a 4, 1 a 11, 2 a 2 ...).

Algoritma, yang ditakrifkan oleh GOST 28147-89, menyediakan empat mod operasi: penggantian mudah, permainan, permainan dengan maklum balas dan penjanaan awalan tiruan. Mereka menggunakan transformasi penyulitan yang sama yang diterangkan di atas, tetapi kerana tujuan mod adalah berbeza, transformasi ini dijalankan secara berbeza dalam setiap mod.

Dalam mod penggantian yang mudah Untuk menyulitkan setiap blok maklumat 64-bit, 32 pusingan yang diterangkan di atas dilakukan. Dalam kes ini, subkunci 32-bit digunakan dalam urutan berikut:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1, dsb. - dalam pusingan 1 hingga 24;

K7, K6, K5, K4, K3, K2, K1, K0 - dalam pusingan 25 hingga 32.

Menyahkod dalam mod ini dijalankan dengan cara yang sama, tetapi dengan urutan penggunaan subkunci yang sedikit berbeza:

K0, K1, K2, K3, K4, K5, K6, K7 - dalam pusingan 1 hingga 8;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6, dsb. - dalam pusingan 9 hingga 32.

Semua blok disulitkan secara berasingan antara satu sama lain, iaitu, hasil penyulitan setiap blok hanya bergantung pada kandungannya (blok yang sepadan dengan teks asal). Jika terdapat beberapa blok serupa teks asal (biasa), blok teks sifir yang sepadan juga akan sama, yang memberikan tambahan informasi berguna untuk seorang cryptanalyst yang cuba memecahkan sifir. Oleh itu, mod ini digunakan terutamanya untuk menyulitkan kunci penyulitan itu sendiri (skim berbilang kunci sangat kerap dilaksanakan, di mana, atas beberapa sebab, kunci disulitkan pada satu sama lain). Dua mod pengendalian lain bertujuan untuk menyulitkan maklumat itu sendiri - gamma dan gamma dengan maklum balas.

DALAM mod gamma setiap blok teks kosong bitwise menambah modulo 2 dengan blok gamma sifir 64-bit. Sifir gamma ialah jujukan khas yang diperoleh hasil daripada operasi tertentu dengan daftar N1 dan N2 (lihat Rajah 1).

1. Pengisian awal mereka ditulis untuk mendaftar N1 dan N2 - nilai 64-bit yang dipanggil mesej penyegerakan.

2. Kandungan daftar N1 dan N2 disulitkan (dalam dalam kes ini- menyegerakkan mesej) dalam mod gantian mudah.

3. Kandungan daftar N1 ditambah modulo (232 - 1) dengan pemalar C1 = 224 + 216 + 28 + 24, dan hasil penambahan ditulis untuk mendaftar N1.

4. Kandungan daftar N2 ditambah modulo 232 dengan pemalar C2 = 224 + 216 + 28 + 1, dan hasil penambahan itu ditulis untuk mendaftar N2.

5. Kandungan daftar N1 dan N2 adalah output sebagai blok gamma 64-bit sifir (dalam kes ini, N1 dan N2 membentuk blok gamma pertama).

Jika blok gamma seterusnya diperlukan (iaitu, penyulitan atau penyahsulitan perlu diteruskan), ia kembali ke langkah 2.

Untuk penyahsulitan, gamma dijana dengan cara yang sama, dan kemudian digunakan semula pada teks sifir dan bit gamma Operasi XOR. Oleh kerana operasi ini boleh diterbalikkan, dalam kes skala yang dibangunkan dengan betul, teks asal (jadual) diperolehi.

Penyulitan dan penyahsulitan dalam mod gamma

Untuk membangunkan sifir yang diperlukan untuk menyahsulit gamma, pengguna yang menyahsulit kriptogram mesti mempunyai kunci yang sama dan nilai mesej penyegerakan yang sama yang digunakan semasa menyulitkan maklumat. Jika tidak, teks asal tidak akan dapat diperoleh daripada teks yang disulitkan.

Dalam kebanyakan pelaksanaan algoritma GOST 28147-89, mesej penyegerakan bukanlah rahsia, bagaimanapun, terdapat sistem di mana mesej penyegerakan adalah elemen rahsia yang sama dengan kunci penyulitan. Untuk sistem sedemikian, panjang kunci berkesan algoritma (256 bit) ditambah dengan 64 bit lagi mesej penyegerakan rahsia, yang juga boleh dianggap sebagai elemen utama.

Dalam mod gamma maklum balas, untuk mengisi daftar N1 dan N2, bermula dari blok ke-2, bukan blok gamma sebelumnya yang digunakan, tetapi hasil penyulitan blok plaintext sebelumnya (Rajah 2). Blok pertama dalam mod ini dijana sepenuhnya sama dengan yang sebelumnya.

nasi. 2. Pembangunan gamma sifir dalam mod gamma dengan maklum balas.

Memandangkan mod penjanaan awalan tiruan, konsep subjek generasi harus ditakrifkan. Awalan tiruan ialah kriptografi jumlah semak, dikira menggunakan kunci penyulitan dan direka bentuk untuk mengesahkan integriti mesej. Apabila menjana awalan tiruan, operasi berikut dilakukan: blok 64-bit pertama tatasusunan maklumat, yang mana awalan tiruan dikira, ditulis untuk mendaftar N1 dan N2 dan disulitkan dalam mod penggantian ringkas yang dikurangkan (the 16 pusingan pertama daripada 32 dilakukan). Hasil yang terhasil dijumlahkan modulo 2 dengan blok maklumat seterusnya dan hasilnya disimpan dalam N1 dan N2.

Kitaran berulang sehingga blok maklumat terakhir. Kandungan 64-bit yang terhasil dari daftar N1 dan N2 atau sebahagian daripadanya hasil daripada transformasi ini dipanggil awalan tiruan. Saiz awalan tiruan dipilih berdasarkan kebolehpercayaan mesej yang diperlukan: dengan panjang awalan tiruan r bit, kebarangkalian bahawa perubahan dalam mesej akan hilang tanpa disedari adalah sama dengan 2-r. Selalunya, a Awalan tiruan 32-bit digunakan, iaitu separuh daripada kandungan daftar. Ini sudah cukup, kerana, seperti mana-mana checksum, lampiran tiruan bertujuan terutamanya untuk melindungi daripada penyelewengan maklumat yang tidak disengajakan. Untuk melindungi daripada pengubahsuaian data yang disengajakan, lain-lain kaedah kriptografi- terutamanya tandatangan digital elektronik.

Semasa bertukar maklumat, awalan tiruan berfungsi sebagai sejenis cara tambahan kawalan. Ia dikira untuk teks biasa apabila sebarang maklumat disulitkan dan dihantar bersama teks sifir. Selepas penyahsulitan, nilai baharu awalan tiruan dikira dan dibandingkan dengan yang dihantar. Jika nilai tidak sepadan, ini bermakna teks sifir telah rosak semasa penghantaran atau kunci yang salah digunakan semasa penyahsulitan. Awalan tiruan amat berguna untuk menyemak ketepatan penyahsulitan maklumat penting apabila menggunakan skema berbilang kunci.

Algoritma GOST 28147-89 dianggap sebagai algoritma yang sangat kuat - pada masa ini tiada lagi telah dicadangkan untuk pendedahannya kaedah yang berkesan daripada kaedah "brute force" yang disebutkan di atas. Ketahanannya yang tinggi dicapai terutamanya disebabkan oleh panjang panjang kunci - 256 bit. Apabila menggunakan mesej penyegerakan rahsia, panjang kunci berkesan meningkat kepada 320 bit, dan menyulitkan jadual gantian meningkat bit tambahan. Di samping itu, kekuatan kriptografi bergantung pada bilangan pusingan transformasi, yang menurut GOST 28147-89 sepatutnya 32 (kesan penuh penyebaran data input dicapai selepas 8 pusingan).

standard AES

Tidak seperti algoritma GOST 28147-89, yang untuk masa yang lama tetap rahsia standard Amerika penyulitan AES, bertujuan untuk menggantikan DES, telah dipilih melalui pertandingan terbuka di mana semua organisasi dan individu yang berminat boleh mengkaji dan mengulas tentang algoritma calon.

Pertandingan untuk menggantikan DES telah diumumkan pada tahun 1997 oleh Institut Piawaian dan Teknologi Kebangsaan AS (NIST - Institut Piawaian dan Teknologi Kebangsaan). 15 algoritma calon telah diserahkan kepada pertandingan, yang dibangunkan oleh kedua-dua organisasi terkenal dalam bidang kriptografi (RSA Security, Counterpane, dll.) dan individu. Keputusan pertandingan diumumkan pada Oktober 2000: pemenangnya ialah algoritma Rijndael, yang dibangunkan oleh dua kriptografi dari Belgium, Vincent Rijmen dan Joan Daemen.

Algoritma Rijndael tidak serupa dengan kebanyakan algoritma penyulitan simetri yang diketahui, strukturnya dipanggil "rangkaian Feistel" dan serupa dengan GOST Rusia 28147-89. Keistimewaan rangkaian Feistel ialah nilai input dibahagikan kepada dua atau lebih subblok, sebahagian daripadanya diproses dalam setiap pusingan undang-undang tertentu, selepas itu ia ditindih pada subblok yang tidak diproses (lihat Rajah 1).

Tidak seperti standard penyulitan domestik, algoritma Rijndael mewakili blok data dalam bentuk tatasusunan bait dua dimensi bersaiz 4X4, 4X6 atau 4X8 (penggunaan beberapa dibenarkan saiz tetap blok maklumat yang disulitkan). Semua operasi dilakukan pada bait individu tatasusunan, dan juga pada lajur bebas dan garisan.

Algoritma Rijndael melakukan empat transformasi: BS (ByteSub) - penggantian jadual setiap bait tatasusunan (Rajah 3); SR (ShiftRow) - anjakan baris tatasusunan (Rajah 4). Dengan operasi ini, baris pertama kekal tidak berubah, dan selebihnya dialihkan secara kitaran bait demi bait ke kiri dengan bilangan bait yang tetap, bergantung pada saiz tatasusunan. Sebagai contoh, untuk tatasusunan 4X4, baris 2, 3 dan 4 dianjakkan masing-masing sebanyak 1, 2 dan 3 bait. Seterusnya datang MC (MixColumn) - operasi pada lajur tatasusunan bebas (Rajah 5), apabila setiap lajur didarab dengan matriks tetap c(x) mengikut peraturan tertentu. Dan akhirnya, AK (AddRoundKey) - menambah kunci. Setiap bit tatasusunan ditambah modulo 2 dengan bit kunci bulat yang sepadan, yang seterusnya, dikira dengan cara tertentu daripada kunci penyulitan (Gamb. 6).


nasi. 3. Operasi BS.

nasi. 4. Operasi SR.

nasi. 5. MC Operasi.

Bilangan pusingan penyulitan (R) dalam algoritma Rijndael adalah berubah-ubah (10, 12 atau 14 pusingan) dan bergantung pada saiz blok dan kunci penyulitan (terdapat juga beberapa saiz tetap untuk kunci).

Penyahsulitan dilakukan menggunakan operasi terbalik berikut. Penyongsangan jadual dan penggantian jadual dilakukan pada jadual songsang (berbanding dengan yang digunakan semasa penyulitan). Operasi songsang kepada SR adalah untuk memutarkan baris ke kanan dan bukannya ke kiri. Operasi songsang untuk MC ialah pendaraban menggunakan peraturan yang sama dengan matriks lain d(x) yang memenuhi syarat: c(x) * d(x) = 1. Menambah kekunci AK ialah songsangan bagi dirinya sendiri, kerana ia hanya menggunakan XOR operasi. Operasi terbalik ini digunakan semasa penyahsulitan dalam urutan terbalik kepada yang digunakan semasa penyulitan.

Rijndael telah menjadi standard baharu untuk penyulitan data kerana beberapa kelebihan berbanding algoritma lain. Pertama sekali, ia menyediakan kelajuan tinggi penyulitan pada semua platform: dalam pelaksanaan perisian dan perkakasan. Ia dibezakan tanpa tandingan peluang terbaik selari pengiraan berbanding dengan algoritma lain yang diserahkan kepada pertandingan. Di samping itu, keperluan sumber untuk operasinya adalah minimum, yang penting apabila digunakan dalam peranti dengan keupayaan pengkomputeran terhad.

Satu-satunya kelemahan algoritma boleh dianggap sebagai skema tidak konvensional yang wujud. Hakikatnya ialah sifat algoritma berdasarkan rangkaian Feistel telah dikaji dengan baik, dan Rijndael, tidak seperti mereka, boleh mengandungi kelemahan tersembunyi, yang hanya boleh ditemui selepas beberapa lama berlalu sejak permulaan pengedarannya yang meluas.

Penyulitan asimetri

Algoritma penyulitan asimetri, seperti yang telah dinyatakan, menggunakan dua kekunci: k1 - kunci penyulitan, atau awam, dan k2 - kunci penyahsulitan, atau rahsia. Kunci awam dikira daripada rahsia: k1 = f(k2).

Algoritma penyulitan asimetri adalah berdasarkan penggunaan fungsi sehala. Mengikut definisi, fungsi y = f(x) adalah satu arah jika: ia mudah dikira untuk semua pilihan yang mungkin x dan bagi kebanyakan kemungkinan nilai y, agak sukar untuk mengira nilai x supaya y = f(x).

Contoh fungsi sehala ialah pendaraban dua nombor besar: N = P*Q. Penggandaan ini sendiri adalah operasi mudah. Walau bagaimanapun, fungsi songsang (penguraian N kepada dua faktor besar), yang dipanggil pemfaktoran, mengikut anggaran masa moden, adalah masalah matematik yang agak kompleks. Sebagai contoh, pemfaktoran N dengan dimensi 664 bit pada P ? Q memerlukan kira-kira 1023 operasi, dan untuk mengira secara songsang x bagi eksponen modular y = ax mod p dengan diketahui a, p dan y (dengan dimensi a dan p yang sama) anda perlu melakukan kira-kira 1026 operasi. Contoh terakhir yang diberikan dipanggil Masalah Logaritma Diskret (DLP), dan fungsi seperti ini sering digunakan dalam algoritma penyulitan asimetri, serta dalam algoritma yang digunakan untuk mencipta tandatangan digital elektronik.

Satu lagi kelas fungsi penting yang digunakan dalam penyulitan asimetri ialah fungsi pintu belakang sehala. Takrifan mereka menyatakan bahawa fungsi adalah satu arah dengan pintu belakang jika ia satu arah dan ia boleh dikira dengan cekap fungsi songsang x = f-1(y), iaitu jika "laluan rahsia" diketahui (nombor rahsia tertentu, dalam aplikasi kepada algoritma penyulitan asimetri - nilai kunci rahsia).

Fungsi pintu belakang sehala digunakan dalam algoritma penyulitan asimetri RSA yang digunakan secara meluas.

Algoritma RSA

Dibangunkan pada tahun 1978 oleh tiga pengarang (Rivest, Shamir, Adleman), ia mendapat namanya daripada huruf pertama nama keluarga pembangun. Kebolehpercayaan algoritma adalah berdasarkan kesukaran memfaktorkan nombor besar dan mengira logaritma diskret. Parameter utama Algoritma RSA- modul sistem N, mengikut mana semua pengiraan dalam sistem dijalankan, dan N = P*Q (P dan Q adalah mudah rawak rahsia nombor besar, biasanya saiz yang sama).

Kunci rahsia k2 dipilih secara rawak dan mesti memenuhi syarat berikut:

1

di mana GCD ialah pembahagi sepunya terbesar, iaitu k1 mesti bersamaan dengan nilai fungsi Euler F(N), yang terakhir adalah sama dengan bilangan integer positif dalam julat dari 1 hingga N coprime hingga N, dan dikira sebagai F(N) = (P - 1)*(Q - 1).

Kunci awam k1 dikira daripada hubungan (k2*k1) = 1 mod F(N), dan untuk tujuan ini algoritma Euclidean umum (algoritma untuk mengira pembahagi sepunya terbesar) digunakan. Penyulitan blok data M menggunakan algoritma RSA dilakukan seperti berikut: C=M [kepada kuasa k1] mod N. Ambil perhatian bahawa kerana dalam sistem kriptografi sebenar menggunakan RSA, nombor k1 adalah sangat besar (pada masa ini dimensinya boleh mencapai sehingga 2048 bit), pengiraan langsung M [kepada kuasa k1] tidak nyata. Untuk mendapatkannya, gabungan kuasa dua berulang M dan pendaraban keputusan digunakan.

Penyongsangan fungsi ini untuk dimensi besar tidak boleh dilaksanakan; dalam erti kata lain, adalah mustahil untuk mencari M memandangkan C, N dan k1 yang diketahui. Walau bagaimanapun, mempunyai kunci rahsia k2, menggunakan transformasi mudah seseorang boleh mengira M = Ck2 mod N. Jelas sekali, sebagai tambahan kepada kunci rahsia itu sendiri, adalah perlu untuk memastikan kerahsiaan parameter P dan Q. Jika penyerang memperoleh nilainya , dia akan dapat mengira kunci rahsia k2.

Penyulitan mana yang lebih baik?

Kelemahan utama penyulitan simetri ialah keperluan untuk memindahkan kunci "dari tangan ke tangan". Kelemahan ini sangat serius, kerana ia menjadikannya mustahil untuk menggunakan penyulitan simetri dalam sistem dengan bilangan peserta yang tidak terhad. Walau bagaimanapun, sebaliknya, penyulitan simetri mempunyai beberapa kelebihan yang jelas kelihatan dengan latar belakang kelemahan serius penyulitan asimetri.

Yang pertama adalah kelajuan rendah penyulitan dan operasi penyahsulitan, disebabkan oleh kehadiran operasi intensif sumber. Satu lagi kelemahan "teori" ialah kekuatan kriptografi algoritma penyulitan asimetri belum terbukti secara matematik. Ini terutamanya disebabkan oleh masalah logaritma diskret - ia masih belum terbukti bahawa penyelesaiannya dalam masa yang boleh diterima adalah mustahil. Kesukaran yang tidak perlu juga dicipta oleh keperluan untuk melindungi kunci awam daripada penggantian - dengan menggantikan kunci awam pengguna yang sah, penyerang akan dapat menyulitkan mesej penting dengan kunci awamnya dan seterusnya menyahsulitnya dengan mudah dengan kunci peribadinya.

Walau bagaimanapun, kelemahan ini tidak menghalang penggunaan meluas algoritma penyulitan asimetri. Hari ini terdapat sistem kripto yang menyokong pensijilan kunci awam, serta menggabungkan algoritma penyulitan simetri dan asimetri. Tetapi ini adalah topik untuk artikel berasingan.

Sumber maklumat tambahan

Bagi pembaca yang serius berminat dalam penyulitan, penulis mengesyorkan meluaskan ufuk mereka dengan bantuan buku berikut.

  1. Brassard J. "Kriptologi moden."
  2. Petrov A. A. "Keselamatan komputer: kaedah perlindungan kriptografi."
  3. Romanets Yu. V., Timofeev P. A., Shangin V. F. "Perlindungan maklumat dalam moden sistem komputer".
  4. Sokolov A.V., Shangin V.F. "Perlindungan maklumat dalam rangkaian dan sistem korporat yang diedarkan."

Penerangan lengkap algoritma penyulitan boleh didapati dalam dokumen berikut:

  1. GOST 28147-89. Sistem pemprosesan maklumat. Perlindungan kriptografi. Algoritma penukaran kriptografi. - M.: Standard Negeri USSR, 1989.
  2. Algoritma AES: http://www.nist.gov/ae.
  3. Algoritma RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

Penyulitan data amat penting untuk melindungi privasi. Dalam artikel ini, saya akan membincangkan pelbagai jenis dan kaedah penyulitan yang digunakan untuk melindungi data hari ini.

Adakah kamu tahu?
Pada zaman Rom, penyulitan digunakan oleh Julius Caesar untuk membuat surat dan mesej tidak dapat dibaca oleh musuh. Ia memainkan peranan penting sebagai taktik ketenteraan, terutamanya semasa peperangan.

Memandangkan keupayaan Internet terus berkembang, semakin banyak perniagaan kami dijalankan dalam talian. Antaranya, yang paling penting ialah perbankan Internet, pembayaran dalam talian, e-mel, pertukaran mesej peribadi dan rasmi, dsb., yang melibatkan pertukaran data dan maklumat sulit. Jika data ini jatuh ke tangan yang salah, ia boleh membahayakan bukan sahaja pengguna individu, tetapi juga keseluruhan sistem perniagaan dalam talian.

Untuk mengelakkan perkara ini berlaku, beberapa langkah keselamatan rangkaian telah diambil untuk melindungi penghantaran data peribadi. Antaranya ialah proses menyulitkan dan menyahsulit data, yang dikenali sebagai kriptografi. Terdapat tiga kaedah penyulitan utama yang digunakan dalam kebanyakan sistem hari ini: pencincangan, penyulitan simetri dan tidak simetri. Dalam baris berikut, saya akan bercakap tentang setiap jenis penyulitan ini dengan lebih terperinci.

Jenis penyulitan

Penyulitan simetri

Dalam penyulitan simetri, data boleh dibaca biasa, yang dikenali sebagai teks biasa, disulitkan supaya ia menjadi tidak boleh dibaca. Perebutan data ini dilakukan menggunakan kunci. Setelah data disulitkan, ia boleh dihantar dengan selamat kepada penerima. Pada penerima, data yang disulitkan dinyahkod menggunakan kunci yang sama yang digunakan untuk pengekodan.

Oleh itu, jelas bahawa kunci adalah bahagian terpenting dalam penyulitan simetri. Ia mesti disembunyikan daripada orang luar, kerana sesiapa yang mempunyai akses kepadanya akan dapat menyahsulit data peribadi. Inilah sebab mengapa penyulitan jenis ini juga dikenali sebagai "kunci rahsia".

Dalam sistem moden, kunci biasanya rentetan data yang diperoleh daripada kata laluan yang kuat, atau daripada sumber rawak sepenuhnya. Ia dimasukkan ke dalam perisian penyulitan simetri, yang menggunakannya untuk merahsiakan data input. Perebutan data dicapai menggunakan algoritma penyulitan simetri, seperti Standard Penyulitan Data (DES), Standard Penyulitan Lanjutan (AES) atau Algoritma Penyulitan Data Antarabangsa (IDEA).

Sekatan

Pautan paling lemah dalam jenis penyulitan ini ialah keselamatan kunci, baik dari segi penyimpanan dan penghantaran kepada pengguna yang disahkan. Jika penggodam dapat memperoleh kunci ini, dia boleh menyahsulit data yang disulitkan dengan mudah, mengalahkan keseluruhan tujuan penyulitan.

Kelemahan lain ialah perisian yang memproses data tidak boleh berfungsi dengan data yang disulitkan. Oleh itu, untuk dapat menggunakan perisian ini, data mesti dinyahkod terlebih dahulu. Jika perisian itu sendiri terjejas, maka penyerang boleh mendapatkan data dengan mudah.

Penyulitan asimetri

Penyulitan kunci asimetri berfungsi sama dengan kunci simetri kerana ia menggunakan kunci untuk menyulitkan mesej yang dihantar. Walau bagaimanapun, daripada menggunakan kunci yang sama, dia menggunakan kunci yang sama sekali berbeza untuk menyahsulit mesej ini.

Kunci yang digunakan untuk pengekodan tersedia kepada mana-mana dan semua pengguna rangkaian. Oleh itu ia dikenali sebagai kunci "awam". Sebaliknya, kunci yang digunakan untuk penyahsulitan dirahsiakan dan bertujuan untuk kegunaan peribadi oleh pengguna sendiri. Oleh itu, ia dikenali sebagai kunci "peribadi". Penyulitan asimetri juga dikenali sebagai penyulitan kunci awam.

Oleh kerana, dengan kaedah ini, kunci rahsia yang diperlukan untuk menyahsulit mesej tidak perlu dihantar setiap kali, dan ia biasanya hanya diketahui oleh pengguna (penerima), kemungkinan penggodam akan dapat menyahsulit mesej adalah banyak. lebih rendah.

Diffie-Hellman dan RSA ialah contoh algoritma yang menggunakan penyulitan kunci awam.

Sekatan

Ramai penggodam menggunakan man-in-the-middle sebagai satu bentuk serangan untuk memintas jenis penyulitan ini. Dalam penyulitan asimetri, anda diberi kunci awam yang digunakan untuk menukar data dengan selamat dengan orang atau perkhidmatan lain. Walau bagaimanapun, penggodam menggunakan penipuan rangkaian untuk menipu anda supaya berkomunikasi dengan mereka semasa anda dibimbing untuk mempercayai bahawa anda berada di talian selamat.

Untuk lebih memahami jenis penggodaman ini, pertimbangkan dua pihak yang berinteraksi, Sasha dan Natasha, dan seorang penggodam, Sergei, dengan niat untuk memintas perbualan mereka. Mula-mula, Sasha menghantar mesej melalui rangkaian yang dimaksudkan untuk Natasha, meminta kunci awamnya. Sergei memintas mesej ini dan mendapatkan kunci awam yang dikaitkan dengannya dan menggunakannya untuk menyulitkan dan menghantar mesej palsu kepada Natasha yang mengandungi kunci awamnya dan bukannya Sasha.

Natasha, memikirkan bahawa mesej ini datang dari Sasha, kini menyulitkannya dengan kunci awam Sergei, dan menghantarnya kembali. Mesej ini sekali lagi dipintas oleh Sergei, dinyahsulit, diubah suai (jika mahu), disulitkan semula menggunakan kunci awam yang asalnya dihantar Sasha, dan dihantar semula kepada Sasha.

Oleh itu, apabila Sasha menerima mesej ini, dia telah dibimbing untuk mempercayai bahawa ia datang daripada Natasha dan tetap tidak menyedari tentang permainan busuk.

Hashing

Teknik pencincangan menggunakan algoritma yang dikenali sebagai fungsi cincang untuk menjana rentetan khas daripada data yang diberikan, yang dikenali sebagai cincang. Hash ini mempunyai sifat berikut:

  • data yang sama sentiasa menghasilkan cincang yang sama.
  • Tidak mungkin untuk menjana data mentah daripada cincang sahaja.
  • Tidak praktikal untuk mencuba kombinasi input yang berbeza untuk cuba menjana cincang yang sama.

Oleh itu, perbezaan utama antara pencincangan dan dua bentuk penyulitan data yang lain ialah apabila data disulitkan (dicincang), ia tidak boleh diambil semula dalam bentuk asalnya (dinyahsulit). Fakta ini memastikan bahawa walaupun penggodam mendapat hash, ia tidak akan berguna untuknya, kerana dia tidak akan dapat menyahsulit kandungan mesej.

Message Digest 5 (MD5) dan Secure Hashing Algorithm (SHA) ialah dua algoritma pencincangan yang digunakan secara meluas.

Sekatan

Seperti yang dinyatakan sebelum ini, hampir mustahil untuk menyahsulit data daripada cincang yang diberikan. Walau bagaimanapun, ini hanya benar jika pencincangan kuat dilaksanakan. Dalam kes pelaksanaan teknik pencincangan yang lemah, menggunakan sumber yang mencukupi dan serangan kekerasan, penggodam yang berterusan boleh mencari data yang sepadan dengan cincangan.

Gabungan kaedah penyulitan

Seperti yang dibincangkan di atas, setiap tiga kaedah penyulitan ini mengalami beberapa kelemahan. Walau bagaimanapun, apabila gabungan kaedah ini digunakan, ia membentuk sistem penyulitan yang selamat dan sangat berkesan.

Selalunya, teknik kunci peribadi dan awam digabungkan dan digunakan bersama. Kaedah kunci persendirian membolehkan penyahsulitan cepat, manakala kaedah kunci awam menawarkan cara yang lebih selamat dan mudah untuk menghantar kunci rahsia. Gabungan kaedah ini dikenali sebagai "sampul surat digital". Perisian penyulitan e-mel PGP adalah berdasarkan teknik "sampul surat digital".

Hashing digunakan sebagai cara untuk menyemak kekuatan kata laluan. Jika sistem menyimpan cincangan kata laluan dan bukannya kata laluan itu sendiri, ia akan menjadi lebih selamat, kerana walaupun penggodam mendapatkan hash ini, dia tidak akan dapat memahami (membaca)nya. Semasa pengesahan, sistem akan menyemak cincang kata laluan masuk dan melihat sama ada hasilnya sepadan dengan apa yang disimpan. Dengan cara ini, kata laluan sebenar hanya akan kelihatan semasa detik-detik singkat apabila ia perlu ditukar atau disahkan, sekali gus mengurangkan kemungkinan ia jatuh ke tangan yang salah.

Hashing juga digunakan untuk mengesahkan data menggunakan kunci rahsia. Cincang dijana menggunakan data dan kunci ini. Oleh itu, hanya data dan cincang yang kelihatan, dan kunci itu sendiri tidak dihantar. Dengan cara ini, jika perubahan dibuat sama ada pada data atau cincang, ia akan mudah dikesan.

Kesimpulannya, teknik ini boleh digunakan untuk mengekod data dengan cekap ke dalam format yang tidak boleh dibaca yang boleh memastikan ia kekal selamat. Kebanyakan sistem moden biasanya menggunakan gabungan kaedah penyulitan ini bersama-sama dengan pelaksanaan algoritma yang kuat untuk meningkatkan keselamatan. Selain keselamatan, sistem ini juga memberikan banyak faedah tambahan, seperti mengesahkan identiti pengguna dan memastikan data yang diterima tidak boleh diusik.

Anotasi: Kuliah ini mempunyai beberapa matlamat. Tunjukkan perbezaan antara sifir tradisional dan moden dengan kunci simetri. Bawa moden sifir blok dan membincangkan ciri-ciri mereka. Terangkan mengapa sifir blok moden mesti direka bentuk sebagai sifir gantian. Memperkenalkan komponen sifir blok seperti P-boxes dan S-boxes. Bincangkan dan tunjukkan perbezaan antara dua kelas sifir: sifir Feistel dan sifir bukan Feistel. Bincangkan dua jenis serangan yang khusus bertujuan untuk memecahkan sifir blok moden: analisis kriptografi pembezaan dan linear. Perkenalkan konsep "sifir strim" dan tunjukkan perbezaan antara sifir segerak dan tidak segerak. Bincangkan maklum balas daftar anjakan linear dan bukan linear untuk melaksanakan sifir strim.

Sifir tradisional dengan kunci simetri, yang telah kami pelajari setakat ini adalah berorientasikan watak. Dengan kemunculan komputer, sifir berorientasikan bit menjadi perlu. Kerana maklumat yang perlu disulitkan tidak selalunya hanya teks; ia juga mungkin terdiri daripada nombor, grafik, audio dan data video. Adalah mudah untuk menukar jenis data ini kepada aliran bit, untuk menyulitkan aliran itu, dan kemudian menghantar aliran yang disulitkan. Selain itu, apabila teks diproses pada tahap bit, setiap aksara digantikan dengan 8 (atau 16) bit, bermakna bilangan aksara menjadi 8 (atau 16) kali lebih besar. Mencampurkan lebih banyak aksara meningkatkan keselamatan.

Bab ini menyediakan asas yang diperlukan untuk kajian sifir blok dan aliran moden, yang diliputi dalam tiga bab seterusnya. Kebanyakan bab ini dikhaskan untuk membincangkan idea umum sifir blok moden, dan hanya sebahagian kecil dikhaskan kepada prinsip sifir aliran moden.

7.1. Sifir blok moden

Sifir blok kunci simetri moden menyulitkan blok n-bit teks biasa atau menyahsulit blok n-bit teks sifir. Algoritma penyulitan atau penyahsulitan menggunakan kunci k-bit. Algoritma penyahsulitan mestilah songsang daripada algoritma penyulitan, dan kedua-duanya beroperasi menggunakan kunci rahsia yang sama supaya Bob boleh membina semula mesej yang dihantar oleh Alice. Rajah 7.1 menunjukkan idea umum penyulitan dan penyahsulitan dalam sifir blok moden.


nasi. 7.1.

Jika mesej lebih kecil daripada saiz n bit, padding mesti ditambah untuk mencipta blok n-bit itu; jika mesej mempunyai lebih daripada n bit, ia mesti dibahagikan kepada blok n-bit, dan padding yang sesuai mesti ditambah pada blok terakhir jika perlu. Nilai biasa untuk n biasanya 64, 128, 256, atau 512 bit.

Contoh 7.1

Berapa banyak bit tambahan mesti ditambah pada mesej 100 aksara jika pengekodan ialah ASCII 8-bit dan sifir blok menerima blok 64-bit?

Penyelesaian

Kodkan 100 aksara menggunakan ASCII 8-bit. Mesej ini mengandungi 800 bit. Teks sumber mesti boleh dibahagikan dengan 64. Jika | M | dan | Pad |- panjang mesej dan panjang padding, kemudian

| M | + | Pad | == 0 mod 64 -> | Pad | = -800 mod 64->32 mod 64

Ini bermakna 32 bit padding (seperti sifar) mesti ditambahkan pada mesej. Teks kemudiannya akan terdiri daripada 832 bit, atau tiga belas blok 64-bit. Ambil perhatian bahawa hanya blok terakhir mengandungi padding. Penyulit menggunakan algoritma penyulitan tiga belas kali untuk mencipta tiga belas blok siferteks.

Penggantian atau transposisi

Sifir blok moden boleh direka bentuk untuk bertindak sama ada sebagai sifir penggantian atau sebagai sifir transposisi. Ini adalah idea yang sama yang digunakan dalam sifir tradisional, kecuali aksara yang akan diganti atau dialihkan mengandungi bit dan bukannya aksara.

Jika sifir direka bentuk sebagai sifir gantian, nilai bit 1 atau 0 dalam teks sumber boleh digantikan dengan sama ada 0 atau 1 . Ini bermakna bahawa teks asal dan teks sifir boleh mempunyai nombor yang berbeza unit. Blok teks biasa 64-bit yang mengandungi 12 sifar dan 52 satu boleh diwakili dalam teks sifir dengan 34 sifar dan 30 satu. Jika sifir direka bentuk sebagai sifir permutasi (transposisi), bit hanya menukar susunannya (bergerak), mengekalkan bilangan aksara yang sama dalam teks asal dan sifir. Dalam kedua-dua kes, bilangan teks biasa atau sifir n-bit yang mungkin ialah 2n, kerana setiap bit n yang digunakan dalam blok boleh mempunyai satu daripada dua nilai - 0 atau 1.2 64 blok 64 bit untuk mencari satu , yang menjadikan rasa. Jika Hawa boleh mencuba 1 bilion blok sesaat, maka ia akan mengambil masa ratusan tahun sebelum kerja ini berjaya.

b. Dalam kes kedua (transposisi), Hawa mengetahui bahawa terdapat tepat 10 yang dalam teks asal kerana transposisi tidak mengubah bilangan satu (atau sifar) dalam teks sifir. Hawa boleh melancarkan serangan carian menyeluruh menggunakan hanya blok 64-bit yang mempunyai tepat 10 blok. Ada sahaja (64!) / [(10!) (54!)] = 151 473 214 816 daripada 2 64 perkataan 64 bit, yang mempunyai tepat 10 unit. Hawa boleh menguji kesemuanya dalam masa kurang daripada 3 minit jika dia boleh melakukan 1 bilion ujian sesaat.

Tahan terhadap serangan carian yang menyeluruh, sifir blok moden mesti direka bentuk sebagai sifir penggantian.

Keperluan untuk menyulitkan surat-menyurat timbul di dunia purba, dan sifir pengganti mudah muncul. Mesej yang disulitkan menentukan nasib banyak pertempuran dan mempengaruhi perjalanan sejarah. Dari masa ke masa, orang mencipta lebih banyak lagi cara yang sempurna penyulitan.

Kod dan sifir adalah, dengan cara, konsep yang berbeza. Yang pertama bermaksud menggantikan setiap perkataan dalam mesej dengan perkataan kod. Yang kedua ialah menyulitkan setiap simbol maklumat menggunakan algoritma tertentu.

Selepas matematik mula mengekod maklumat dan teori kriptografi dibangunkan, saintis menemui banyak sifat berguna sains gunaan ini. Sebagai contoh, algoritma penyahkodan telah membantu menguraikan bahasa mati seperti Mesir kuno atau Latin.

Steganografi

Steganografi lebih lama daripada pengekodan dan penyulitan. Seni ini muncul lama dahulu. Ia secara harfiah bermaksud " surat tersembunyi"atau "tulisan rahsia". Walaupun steganografi tidak betul-betul sepadan dengan takrifan kod atau sifir, ia bertujuan untuk menyembunyikan maklumat daripada mengintip.

Steganografi ialah sifir yang paling mudah. Contoh biasa ialah nota tertelan yang ditutup dengan lilin, atau mesej pada kepala yang dicukur yang tersembunyi di bawah pertumbuhan rambut. Contoh paling jelas Steganografi ialah kaedah yang diterangkan dalam banyak buku detektif bahasa Inggeris (dan bukan sahaja), apabila mesej dihantar melalui akhbar, di mana huruf ditanda dengan cara yang tidak mencolok.

Kelemahan utama steganografi ialah berhati-hati orang asing mungkin perasan dia. Oleh itu, mengikut urutan mesej rahsia tidak mudah dibaca, kaedah penyulitan dan pengekodan digunakan bersama dengan steganografi.

ROT1 dan sifir Caesar

Nama sifir ini ialah ROTate 1 huruf ke hadapan, dan ia diketahui oleh ramai pelajar sekolah. Ia adalah sifir penggantian mudah. Intipatinya ialah setiap huruf disulitkan dengan mengalihkan abjad 1 huruf ke hadapan. A -> B, B -> B, ..., I -> A. Sebagai contoh, mari kita menyulitkan frasa "Nastya kami menangis dengan kuat" dan dapatkan "obshb Obtua dspnlp rmbsheu".

Sifir ROT1 boleh digeneralisasikan kepada nombor sewenang-wenangnya mengimbangi, maka ia dipanggil ROTN, di mana N ialah nombor yang mana penyulitan huruf harus diimbangi. Dalam bentuk ini, sifir telah diketahui sejak zaman purba dan dipanggil "sifir Caesar."

Sifir Caesar adalah sangat mudah dan pantas, tetapi ia adalah sifir pilih atur tunggal yang mudah dan oleh itu mudah dipecahkan. Mempunyai kelemahan yang sama, ia hanya sesuai untuk gurauan kanak-kanak.

Sifir transposisi atau pilih atur

Jenis sifir pilih atur mudah ini lebih serius dan telah digunakan secara aktif tidak lama dahulu. Semasa Perang Saudara Amerika dan Perang Dunia I ia digunakan untuk menghantar mesej. Algoritmanya terdiri daripada menyusun semula huruf - menulis mesej dalam susunan terbalik atau menyusun semula huruf secara berpasangan. Sebagai contoh, mari kita menyulitkan frasa "Kod Morse juga sifir" -> "Akubza ezrom - ezhot rfish".

Dengan algoritma yang baik yang menentukan pilih atur sewenang-wenangnya untuk setiap simbol atau kumpulannya, sifir menjadi tahan terhadap keretakan mudah. Tetapi! Hanya pada masa yang ditetapkan. Memandangkan sifir boleh dipecahkan dengan mudah dengan kekerasan mudah atau padanan kamus, hari ini mana-mana telefon pintar boleh menguraikannya. Oleh itu, dengan kemunculan komputer, sifir ini juga menjadi kod kanak-kanak.

Kod Morse

Abjad adalah satu cara untuk bertukar-tukar maklumat dan tugas utamanya adalah untuk menjadikan mesej lebih mudah dan lebih mudah difahami untuk penghantaran. Walaupun ini bertentangan dengan tujuan penyulitan. Walau bagaimanapun, ia berfungsi seperti sifir yang paling mudah. Dalam sistem Morse, setiap huruf, nombor dan tanda baca mempunyai kodnya sendiri, terdiri daripada sekumpulan sengkang dan titik. Apabila menghantar mesej menggunakan telegraf, sempang dan titik menunjukkan panjang dan isyarat pendek.

Telegraf dan abjad adalah yang pertama mempatenkan ciptaan "nya" pada tahun 1840, walaupun peranti serupa telah dicipta sebelum beliau di Rusia dan England. Tetapi siapa peduli sekarang... Telegraf dan kod Morse mempunyai pengaruh yang sangat besar pada dunia, membolehkan penghantaran mesej hampir serta-merta melalui jarak benua.

Penggantian monoalfabetik

Kod ROTN dan Morse yang diterangkan di atas ialah wakil fon gantian monoalfabetik. Awalan "mono" bermaksud bahawa semasa penyulitan, setiap huruf mesej asal digantikan dengan huruf atau kod lain daripada abjad penyulitan tunggal.

Mentafsir sifir penggantian mudah tidak sukar, dan ini adalah kelemahan utama mereka. Mereka boleh diselesaikan dengan hanya mencari atau Sebagai contoh, diketahui bahawa huruf yang paling banyak digunakan dalam bahasa Rusia adalah "o", "a", "i". Oleh itu, kita boleh menganggap bahawa dalam teks sifir, huruf yang paling kerap muncul bermaksud sama ada "o", "a", atau "i". Berdasarkan pertimbangan ini, mesej boleh ditafsirkan walaupun tanpa carian komputer.

Mary I, Ratu Scots dari 1561 hingga 1567, diketahui telah menggunakan sifir penggantian monoalfabetik yang sangat kompleks dengan pelbagai kombinasi. Namun musuh-musuhnya dapat menguraikan mesej itu, dan maklumat itu cukup untuk menjatuhkan hukuman mati kepada permaisuri.

Sifir Gronsfeld, atau penggantian polialfabetik

Sifir mudah dianggap tidak berguna oleh kriptografi. Oleh itu, banyak daripada mereka telah diubah suai. Sifir Gronsfeld ialah pengubahsuaian sifir Caesar. Kaedah ini adalah lebih tahan terhadap penggodaman dan terdiri daripada fakta bahawa setiap aksara maklumat yang dikodkan disulitkan menggunakan salah satu abjad yang berbeza, yang diulang secara kitaran. Kita boleh mengatakan bahawa ini adalah aplikasi multidimensi bagi sifir penggantian yang paling mudah. Sebenarnya, sifir Gronsfeld sangat serupa dengan yang dibincangkan di bawah.

Algoritma penyulitan ADFGX

Ini adalah sifir Perang Dunia I yang paling terkenal yang digunakan oleh orang Jerman. Sifir mendapat namanya kerana ia mengurangkan semua ciphergram kepada menyelang-seli huruf ini. Pilihan huruf itu sendiri ditentukan oleh kemudahan mereka apabila dihantar melalui talian telegraf. Setiap huruf dalam sifir diwakili oleh dua. Mari kita pertimbangkan lebih lanjut versi yang menarik ADFGX segi empat sama, yang merangkumi nombor dan dipanggil ADFGVX.

A D F G V X
A J Q A 5 H D
D 2 E R V 9 Z
F 8 Y saya N K V
G U P B F 6 O
V 4 G X S 3 T
X W L Q 7 C 0

Algoritma untuk menyusun segi empat sama ADFGX adalah seperti berikut:

  1. Kami mengambil huruf n rawak untuk menandakan lajur dan baris.
  2. Kami membina matriks N x N.
  3. Kami masukkan ke dalam matriks abjad, nombor, tanda, secara rawak bertaburan di seluruh sel.

Mari kita buat segi empat sama untuk bahasa Rusia. Sebagai contoh, mari kita buat segi empat sama ABCD:

A B DALAM G D
A DIA N b/b A Saya/Y
B H V/F H/C Z D
DALAM Sh/Shch B L X saya
G R M TENTANG YU P
D DAN T C Y U

Matriks ini kelihatan pelik, kerana beberapa sel mengandungi dua huruf. Ini boleh diterima; makna mesej tidak hilang. Ia boleh dipulihkan dengan mudah. Mari kita menyulitkan frasa "Sifir Padat" menggunakan jadual ini:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Frasa KEPADA TENTANG M P A KEPADA T N Y Y Sh DAN F R
Sifir bv pengawal GB gd ah bv db ab dg neraka va neraka bb ha

Oleh itu, mesej yang disulitkan terakhir kelihatan seperti ini: "bvgvgbgdagbvdbabdgvdvaadbbga." Sudah tentu, orang Jerman menjalankan baris yang sama melalui beberapa sifir lagi. Dan hasilnya ialah mesej disulitkan yang sangat tahan godam.

Sifir Vigenère

Sifir ini adalah susunan magnitud yang lebih tahan retak daripada sifir monoalfabetik, walaupun ia adalah sifir pengganti teks yang mudah. Walau bagaimanapun, terima kasih kepada algoritma yang mantap, ia dianggap mustahil untuk menggodam untuk masa yang lama. Sebutan pertamanya bermula pada abad ke-16. Vigenère (seorang diplomat Perancis) tersilap dianggap sebagai penciptanya. Untuk lebih memahami apa kita bercakap tentang, pertimbangkan jadual Vigenère (persegi Vigenère, tabula recta) untuk bahasa Rusia.

Mari mulakan menyulitkan frasa "Kasperovich ketawa." Tetapi untuk penyulitan berjaya, anda memerlukan kata kunci - biarkan ia menjadi "kata laluan". Sekarang mari kita mulakan penyulitan. Untuk melakukan ini, kami menulis kunci berkali-kali sehingga bilangan huruf daripadanya sepadan dengan bilangan huruf dalam frasa yang disulitkan, dengan mengulangi kunci atau memotongnya:

Sekarang, menggunakan satah koordinat, kita mencari sel yang merupakan persilangan pasangan huruf, dan kita dapat: K + P = b, A + A = B, C + P = B, dsb.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Sifir: Kommersant B DALAM YU DENGAN N YU G SCH DAN E Y X DAN G A L

Kami mendapat bahawa "Kasperovich ketawa" = "abvyusnyugshch eykhzhgal."

Memecahkan sifir Vigenère sangat sukar kerana analisis kekerapan memerlukan mengetahui panjangnya kata kunci. Oleh itu, penggodaman melibatkan melontar secara rawak ke dalam panjang kata kunci dan cuba memecahkan mesej rahsia.

Ia juga harus dinyatakan bahawa sebagai tambahan kepada kunci rawak sepenuhnya, jadual Vigenère yang sama sekali berbeza boleh digunakan. Dalam kes ini, petak Vigenère terdiri daripada abjad Rusia yang ditulis baris demi baris dengan offset satu. Yang membawa kita kepada sifir ROT1. Dan sama seperti dalam sifir Caesar, ofset boleh jadi apa sahaja. Selain itu, susunan huruf tidak semestinya mengikut abjad. Dalam kes ini, jadual itu sendiri mungkin menjadi kunci, tanpa mengetahui yang mana mustahil untuk membaca mesej, walaupun mengetahui kuncinya.

Kod

Kod sebenar terdiri daripada padanan untuk setiap perkataan kod berasingan. Untuk bekerja dengan mereka, anda memerlukan apa yang dipanggil buku kod. Sebenarnya, ini adalah kamus yang sama, hanya mengandungi terjemahan perkataan ke dalam kod. Contoh kod biasa dan ringkas ialah Jadual ASCII- sifir antarabangsa bagi aksara mudah.

Kelebihan utama kod ialah ia sangat sukar untuk dihuraikan. Analisis kekerapan hampir tidak berfungsi apabila menggodamnya. Kelemahan kod itu, sebenarnya, buku itu sendiri. Pertama, penyediaan mereka adalah proses yang kompleks dan mahal. Kedua, untuk musuh mereka bertukar menjadi objek yang diingini, dan memintas walaupun sebahagian daripada buku memaksa mereka menukar semua kod sepenuhnya.

Pada abad ke-20, banyak negeri menggunakan kod untuk menghantar data rahsia, menukar buku kod dari semasa ke semasa. tempoh tertentu. Dan mereka secara aktif memburu buku jiran dan lawan mereka.

"Enigma"

Semua orang tahu bahawa Enigma adalah mesin penyulitan Nazi utama semasa Perang Dunia II. Struktur Enigma termasuk gabungan litar elektrik dan mekanikal. Bagaimana sifir berubah bergantung pada konfigurasi awal Enigma. Pada masa yang sama, Enigma menukar konfigurasinya secara automatik semasa operasi, menyulitkan satu mesej dalam beberapa cara sepanjang keseluruhannya.

Berbeza dengan kebanyakan sifir mudah Enigma menyediakan trilion kemungkinan kombinasi, menjadikannya hampir mustahil untuk memecahkan maklumat yang disulitkan. Sebaliknya, Nazi mempunyai kombinasi khusus yang disediakan untuk setiap hari, yang mereka gunakan pada hari tertentu untuk menghantar mesej. Oleh itu, walaupun Enigma jatuh ke tangan musuh, ia tidak menyumbang dalam apa-apa cara untuk mentafsir mesej tanpa memperkenalkan konfigurasi yang diperlukan setiap hari.

Mereka secara aktif cuba memecahkan Enigma sepanjang kempen ketenteraan Hitler. Di England pada tahun 1936, salah satu peranti pengkomputeran pertama (Mesin Turing) dibina untuk tujuan ini, yang menjadi prototaip komputer pada masa hadapan. Tugasnya adalah untuk mensimulasikan operasi beberapa dozen Enigmas secara serentak dan menjalankan mesej Nazi yang dipintas melaluinya. Tetapi walaupun mesin Turing hanya sekali-sekala dapat memecahkan mesej.

Penyulitan kunci awam

Algoritma penyulitan yang paling popular, yang digunakan di mana-mana dalam teknologi dan sistem komputer. Intipatinya terletak, sebagai peraturan, dengan kehadiran dua kunci, salah satunya dihantar secara terbuka, dan yang kedua adalah rahsia (peribadi). Kunci awam digunakan untuk menyulitkan mesej, dan kunci rahsia digunakan untuk menyahsulitnya.

Peranan kunci awam paling kerap dimainkan oleh sangat nombor besar, yang hanya mempunyai dua pembahagi, tidak mengira satu dan nombor itu sendiri. Bersama-sama, kedua-dua pembahagi ini membentuk kunci rahsia.

Mari kita lihat contoh mudah. Biarkan kunci awam ialah 905. Pembahaginya ialah nombor 1, 5, 181 dan 905. Kemudian kunci rahsia ialah, sebagai contoh, nombor 5*181. Adakah anda akan mengatakan ia terlalu mudah? Bagaimana jika nombor awam ialah nombor dengan 60 digit? Sukar secara matematik untuk mengira pembahagi nombor yang besar.

Untuk contoh yang lebih realistik, bayangkan anda mengeluarkan wang dari ATM. Apabila kad dibaca, data peribadi disulitkan dengan kunci awam tertentu, dan di pihak bank maklumat itu dinyahsulit dengan kunci rahsia. Dan kunci awam ini boleh ditukar untuk setiap operasi. Tetapi tidak ada cara untuk mencari pembahagi utama dengan cepat apabila memintasnya.

Ketahanan fon

Kekuatan kriptografi algoritma penyulitan adalah keupayaannya untuk menentang penggodaman. Parameter ini adalah yang paling penting untuk sebarang penyulitan. Jelas sekali bahawa sifir penggantian mudah yang boleh ditafsirkan oleh sesiapa sahaja peranti elektronik, adalah salah satu yang paling tidak stabil.

Tidak wujud hari ini piawaian biasa, yang mana kekuatan sifir boleh dinilai. Ia intensif buruh dan proses yang panjang. Walau bagaimanapun, terdapat beberapa komisen yang telah menghasilkan piawaian dalam bidang ini. Sebagai contoh, keperluan minimum kepada Piawaian Penyulitan Lanjutan atau algoritma penyulitan AES, yang dibangunkan oleh NIST USA.

Untuk rujukan: sifir Vernam diiktiraf sebagai sifir yang paling tahan retak. Pada masa yang sama, kelebihannya ialah, mengikut algoritmanya, ia adalah sifir yang paling mudah.

Kali terakhir anda berkenalan dengan sifir domestik yang hebat dan dahsyat. Ini adalah pelajaran yang sangat sukar, kerana sistem kripto ini menjaga rahsia negara. Bolehkah anda memberitahu saya apa yang lebih canggih? Tetapi di sini, sila! Sebenarnya, anda tidak perlu takut, kali ini kami tidak akan mendalami matematik dan mempertimbangkan mod penyulitan - anda telah mempelajari prinsipnya (atau tidak). Mari kita lihat sifir asing teratas dan lihat cara ia digunakan dalam amalan.

Pelan hala tuju

Ini adalah pelajaran keempat dalam siri "Selam ke dalam Kripto". Semua pelajaran dalam siri ini dalam susunan kronologi:

  • Asas dan pengekod sejarah. Cara mesin peralihan, penggantian, Richard Sorge, Vernam dan sifir berfungsi (dan dianalisis)
  • Apakah itu, bagaimana pengagihan kunci dilakukan dan cara memilih kunci yang kuat
  • Apakah rangkaian Feistel dan apakah sifir blok domestik yang digunakan dalam protokol moden - GOST 28147-89, "Grassnechik"
  • Pelajaran 4. Sifir asing moden. Apakah perbezaan antara 3DES, AES, Blowfish, IDEA, Threefish oleh Bruce Schneier dan cara ia berfungsi (Adakah awak di sini)
  • Jenis tandatangan elektronik bagaimana ia berfungsi dan cara menggunakannya
  • Pelajaran 6. Kriptografi kuantum. Apakah itu, di mana ia digunakan dan bagaimana ia membantu dalam pengedaran kunci rahsia, generasi nombor rawak dan tandatangan elektronik

3DES

Jadi, mula-mula dalam siri sifir asing, mari kita pertimbangkan 3DES, atau lebih tepatnya DES relatif terdekatnya (Standard Penyulitan Data), yang, walaupun tidak lagi digunakan sedemikian, adalah nenek moyang 3DES.

DES telah dibangunkan oleh pasukan ahli matematik di Makmal Penyelidikan IBM, yang termasuk Feistel yang sudah biasa. Versi pertama sifir dinamakan "Lucifer", tetapi ia kemudiannya diubah suai dan akhirnya diterima pakai sebagai Algoritma Penyulitan Data (DEA) rasmi. Ia kekal sebagai standard dunia selama lebih dua puluh tahun sebelum digantikan oleh Triple DES.

Mari lihat bagaimana algoritma penyulitan DES berfungsi. Untuk melakukan ini, anda perlu mengingati operasi rangkaian Feistel. DES ialah rangkaian Feistel 16 pusingan dengan kunci penyulitan simetri. Panjang blok teks ialah 64 bit, panjang kunci bulat ialah 48 bit. Jadi, mari kita ikuti langkah utama penyulitan DES, meninggalkan bahagian matematik yang keras:

  1. Teks, seperti mana-mana penyulitan lain, dibahagikan kepada blok 64 bit.
  2. Daripada kekunci 56-bit, 16 kekunci bulat 48-bit dijana.
  3. Setiap blok mengalami pilih atur, iaitu, semua bit blok input dikocok mengikut jadual tertentu.
  4. Blok itu dibahagikan kepada separuh dan memasuki rangkaian Feistel yang biasa, di mana 16 pusingan ditatal.
  5. Kami menyambung separuh.
  6. Dan satu lagi perubahan.

Pilih atur permulaan dan akhir tidak mempunyai makna untuk kriptografi dalam DES. Kedua-dua pilih atur adalah tanpa kunci, dan jadual untuknya telah dipratakrifkan. Sebab mereka dimasukkan ke dalam DES tidak jelas, dan pereka DES tidak mengatakan apa-apa mengenainya. Ia boleh diandaikan bahawa algoritma telah dirancang untuk dilaksanakan dalam perkakasan (pada cip) dan kedua-dua pilih atur kompleks ini sepatutnya menyukarkannya. pemodelan perisian mekanisme penyulitan.

Di sini, sebenarnya, adalah semua yang anda perlu tahu tentang operasi algoritma DES. Jika kita mendalami cara fungsi yang ditakrifkan dalam rangkaian Feistel berfungsi, maka segala-galanya adalah baik. Ia melakukan kedua-dua pilih atur dan penggantian (kotak-S, seperti yang anda ingat dari artikel sebelumnya), dan penambahan dengan kunci bulat.

Tetapi mari kembali kepada triple DES, atau Triple DES. Ia menjadi perlu kerana kunci DES 56-bit terdedah kepada kekerasan dan dengan pertumbuhan kuasa pengkomputeran masalah ini menjadi semakin meruncing. Menggunakan teknologi yang tersedia hari ini, satu juta kunci boleh disahkan sesaat. Ini bermakna bahawa ia akan mengambil masa lebih daripada dua ribu tahun untuk menyahsulit DES secara kasar menggunakan komputer dengan hanya satu pemproses.

Tetapi jika anda mengambil komputer dengan satu juta teras pemproses, yang akan memproses kunci secara selari, kami boleh menyemak keseluruhan set kunci dalam kira-kira 20 jam. Apabila DES diperkenalkan, kos komputer sedemikian adalah beberapa juta dolar, tetapi ia cepat menurun. Komputer khas telah dicipta pada tahun 1998 - dan menemui kunci dalam 112 jam.

Untuk menyelesaikan masalah pencarian pantas kunci, kriptografi asing pintar mencadangkan menggunakan dua kekunci dan menggunakan DES dua kali. Walau bagaimanapun, DES berganda terdedah kepada serangan bertemu di tengah. Untuk melakukan serangan ini, penyerang perlu mempunyai teks biasa dan teks sifir yang sepadan. Penyerang menyulitkan teks biasa dengan semua kunci yang mungkin, merekodkan keputusan dalam Jadual 1. Kemudian menyahsulit teks sifir dengan semua kunci yang mungkin dan menulis keputusan ke jadual 2. Seterusnya, penyerang mencari padanan dalam jadual 1 dan 2.

Serang jenis ini terdiri daripada menyenaraikan kekunci pada bahagian teks sifir dan teks biasa dan memerlukan kira-kira empat kali lebih pengiraan daripada menghitung kunci DES biasa, dan memori yang cukup banyak untuk penyimpanan keputusan pertengahan. Walau bagaimanapun, dalam amalan serangan itu boleh dilaksanakan, menjadikan Double DES tidak boleh digunakan.

Perkara berbeza sama sekali dengan Triple DES. Penggunaan tiga kekunci dan aplikasi algoritma dalam urutan yang ditunjukkan dalam rajah memanjangkan hayat DES selama beberapa tahun lagi.


DES yang hebat

Jadi apa yang hebat tentang DES? Algoritma penyulitan ini telah tertakluk kepada analisis yang meluas. DES mempunyai dua sifat sifir blok yang sangat penting - longsor dan kesempurnaan. Sudah tiba masanya untuk mengembangkan perbendaharaan kata kriptografi anda!
Kesan longsoran bermakna perubahan kecil dalam teks asal (atau kunci) boleh menyebabkan perubahan besar dalam teks sifir.

DES telah terbukti mempunyai semua ciri khas hartanah ini.

Walaupun dua blok plaintext hanya berbeza pada bit paling kanan, blok ciphertext berbeza sebanyak 29 bit. Ini bermakna bahawa perubahan kira-kira 1.5% daripada teks biasa menyebabkan perubahan kira-kira 45% daripada teks sifir.

Kesan kesempurnaan ialah setiap bit teks sifir mesti bergantung pada banyak bit teks biasa. Seperti yang telah kita ketahui, DES menggunakan kedua-dua pilih atur dan penggantian - semua transformasi mewujudkan pergantungan setiap bit teks sifir pada beberapa bit teks asal.

Di manakah DES digunakan? Ya, hampir di mana-mana, pelaksanaannya terdapat dalam kebanyakan perpustakaan perisian. Namun, siapa tahu betapa selamatnya menggunakan DES pada masa kini? Walaupun IBM mendakwa bahawa algoritma itu adalah hasil daripada kriptanalisis intensif selama 17 tahun, sesetengah orang bimbang bahawa NSA telah memasukkan celah ke dalam algoritma yang membolehkan agensi menyahsulit mesej yang dipintas dengan mudah. Jawatankuasa Perisikan Senat AS mengkaji dengan teliti isu ini dan, sudah tentu, tidak menemui apa-apa, pertuduhan terhadap NSA telah digugurkan, dan hasil kajian itu bagaimanapun diklasifikasikan. Pendek kata, khabar angin dan spekulasi telah lama bertiup di Amerika mengenai sama ada DES patut dipercayai atau tidak. Tetapi, seperti yang saya percaya, situasi di sini digambarkan oleh pepatah "Orang pintar tidak akan memberitahu, orang bodoh tidak akan faham." Akhirnya, NSA mengakui bahawa ia tidak boleh mempercayai IBM dengan misi yang begitu penting dan membuat beberapa pelarasan, seperti menentukan kotak-S.

Sepanjang kewujudan DES, beliau telah menjadi sasaran pelbagai kaedah kriptanalisis. Penganalisis kriptografi tidak pernah berhenti menguji mesin pemecah DES untuk melihat berapa lama masa yang diperlukan untuk mentafsir teks. Dalam hal ini, banyak pengubahsuaian berbeza bagi algoritma ini telah muncul, dan 3DES jauh daripada yang paling canggih daripadanya.