Pengenalan kepada asas sifir kekunci simetri moden. Mod penggantian mudah. Apakah penyulitan

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 tentang keselamatan maklumat ia sering dipanggil " teks asal");
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 tertentu bagi 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 kuat secara kriptografi 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 kerumitan mendapatkan yang asal teks daripada teks yang disulitkan tanpa kunci k2.

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 kunci sesaat, akan menyemak 256 varian kunci DES dalam hampir 20 jam. Dan oleh kerana, mengikut piawaian hari ini, seperti kuasa pengkomputeran adalah agak nyata, 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, iaitu logik Operasi 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 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 teks sifir dan bit gamma sekali lagi di-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, agak rumit. masalah matematik. 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 ialah 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 menggunakan 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 sistem komputer moden."
  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 mencapai 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 diganggu.

Seperti yang anda ingat, anjakan, penggantian, sifir pilih atur dan sifir Vernam menggunakan operasi untuk setiap aksara khusus teks. Kita perlu beralih - kita mengalihkan watak, menggunakan kekunci - menerapkannya pada watak, kemudian ke aksara seterusnya, dan seterusnya, sehingga kita menyulitkan semua aksara plaintext. Kaedah penyulitan ini dipanggil penyulitan aliran - kami menyulitkan setiap aksara secara berasingan. Pendekatan lain adalah untuk memisahkan plaintext asal kepada kumpulan beberapa aksara (blok) dan melaksanakan operasi penyulitan pada setiap blok. Ini ialah kaedah penyulitan blok.

Untuk membuat perbezaan antara sifir blok dan strim lebih jelas, kami akan memberikan contoh menggunakan sifir penggantian mudah.

Penyulitan strim

Mari kita menyulitkan perkataan CIPHER dengan cipher strim gantian:

Kami menyulitkan setiap aksara dan memperoleh teks sifir. Semudah pai.

ENCRIPSI BLOK

Mari kita menyulitkan perkataan AVADAKEDAVRA. Oleh kerana sifir ialah blok satu, kami akan membahagikan teks biasa kepada blok empat aksara: AVAD | AKED | AVRA (dalam amalan, blok teks terdiri daripada 64-256 bit). Untuk setiap blok kami akan menghasilkan jadual ganti kami sendiri:

Sekarang kita menyulitkan setiap blok dengan abjad yang sepadan:
Ternyata sedikit lebih baik daripada pendekatan dalam talian, jika kita bercakap tentang ketahanan. Lagipun, kami belajar untuk menguraikan sifir penggantian biasa dengan sebelah tangan kiri. Dan dengan pendekatan blok sedemikian, penyerang perlu memerah otaknya sebelum dia boleh memilih panjang blok dan kemudian menggunakan analisis kriptografi untuk sifir gantian bagi setiap blok.

RANGKAIAN FEISTEL

Kini kami bersedia untuk beralih kepada topik yang sangat penting yang membuka pintu kepada dunia sistem penyulitan moden yang tidak berkesudahan. Rangkaian Feistel ialah kaedah penyulitan blok yang dibangunkan oleh Horst Feistel di makmal IBM pada tahun 1971. Hari ini, rangkaian Feistel mendasari sejumlah besar protokol kriptografi. Mari cuba fikirkan "pada jari" apa itu.

Rangkaian Feistel beroperasi pada blok plaintext, jadi kita akan melihat mekanisme operasinya pada salah satu blok. Tindakan untuk blok yang tinggal akan serupa.

  • Blok dibahagikan kepada dua bahagian yang sama - kiri (L) dan kanan (R).
  • Selepas pembahagian, subblok kiri diubah suai oleh fungsi f menggunakan kekunci K: x = f(L, K). Sebagai fungsi, anda boleh bayangkan sebarang transformasi yang anda suka - contohnya, sifir anjakan lama yang baik dengan kunci K.
  • Subblok yang terhasil ditambah modulo 2 dengan subblok kanan R, yang tidak digunakan sebelum ini: x=x+R
  • Seterusnya, bahagian yang terhasil ditukar dan dilekatkan bersama.

Seperti yang anda lihat, semuanya agak mudah. Untuk memahami cara ini berfungsi, lihat rajah:

Susunan ini dipanggil sel Feistel. Rangkaian Feistel sendiri terdiri daripada beberapa sel. Subblok yang diperoleh pada output sel pertama pergi ke input sel kedua, subblok yang terhasil dari sel kedua pergi ke input sel ketiga, dan seterusnya, bergantung pada bilangan pusingan rangkaian Feistel. Dalam setiap pusingan sedemikian, kunci pusingan yang telah ditetapkan digunakan. Selalunya, kekunci bulat dijana daripada kunci rahsia utama K. Apabila semua pusingan telah selesai, subblok teks dilekatkan bersama, dan teks sifir biasa diperoleh.

Sekarang mari kita lihat operasi rangkaian Feistel menggunakan contoh. Mari kita ambil perkataan AVADAKEDAVRA dan bahagikan kepada dua blok enam aksara - AVADAK | EDAVRA. Untuk fungsi kami mengambil sifir anjakan dengan bilangan kedudukan yang ditentukan oleh kekunci bulat. Biarkan kunci rahsia K = . Sebagai kekunci bulat, kami mengambil K = 1, K = 2. Untuk tambahan modulo 2, kami menukar teks kepada kod binari mengikut abjad telegraf, yang hampir tidak digunakan oleh orang lain sama sekali.

Inilah yang berlaku:

Sekarang mari jalankan blok pertama melalui rangkaian Feistel dalam dua pusingan:

Cuba untuk menyulitkan blok kedua sendiri, saya mendapat MOSSTR.

Penyahsulitan dijalankan dengan cara yang sama: teks sifir dibahagikan kepada blok dan kemudian subblok, subblok kiri memasuki fungsi, ditambah modulo 2 dengan yang betul, dan kemudian subblok ditukar. Perbezaannya ialah kunci pusingan diserahkan dalam susunan terbalik, iaitu, dalam kes kami, pada pusingan pertama kami akan menggunakan kunci K = 2, dan kemudian pada pusingan kedua K = 1.

Penyelidikan mengenai rangkaian Feistel telah menunjukkan bahawa dengan kunci pusingan bebas dan fungsi rawak semu f yang tahan kripto, tiga pusingan rangkaian Feistel akan mencukupi untuk teks sifir menjadi rawak semu. Ini menunjukkan bahawa sifir berdasarkan rangkaian Feistel pada masa ini agak selamat.

GOST 28147-89 (MAGMA)

Kami sudah mempunyai hampir semua konsep yang diperlukan dalam senjata kami, jadi kami bersedia untuk beralih ke topik penting pertama kriptografi domestik - GOST 28147-89. Perlu dikatakan bahawa hanya mereka yang malas tidak menulis tentang piawaian ini, jadi saya akan cuba buat kali kejuta dan kali pertama untuk secara ringkas dan tanpa awan formula menggariskan intipati mod penyulitan Magma yang hebat dan dahsyat. Sekiranya anda memutuskan untuk membaca standard itu sendiri, maka anda harus menyimpan masa, tenaga, kesabaran dan makanan, kerana, seperti yang anda ketahui, standard penulisan dalam bahasa manusia adalah dilarang sama sekali.

Ciri-ciri utama: kunci 256 bit, blok 64 bit.

Sebelum menganalisis Magma, anda perlu mempelajari konsep baharu - jadual penggantian, atau kotak-S. Ini adalah jenis jadual yang sama seperti jadual dalam sifir penggantian. Direka bentuk untuk menggantikan simbol subblock dengan simbol yang direkodkan dalam jadual. Jangan fikir bahawa kotak-S ialah nombor rawak yang dijana oleh fungsi rand(). S-kotak adalah hasil daripada jujukan yang dijana dengan teliti, kerana kekuatan kriptografi keseluruhan sifir terletak padanya.

GOST 28147 menerangkan jadual penggantiannya dengan sangat jarang. Ia hanya mengatakan bahawa ia adalah elemen rahsia tambahan (bersama dengan kunci rahsia) dan "diserahkan mengikut cara yang ditetapkan." Tiada lagi. Sejak penggunaan GOST 28147, ketidakpastian saintifik dan teknikal yang berkaitan dengan pilihan kotak-S telah menimbulkan khabar angin dan spekulasi. Terdapat perbincangan mengenai kriteria rahsia yang hanya diketahui oleh pemaju GOST. Sememangnya, ketidakpastian ini mengurangkan keyakinan terhadap sistem kripto.

Kelemahan ini memberikan alasan yang sangat baik untuk kritikan terhadap standard. Pakar kriptografi Perancis Nicolas Courtois menerbitkan beberapa artikel yang mengandungi beberapa peruntukan kontroversi mengenai kekuatan GOST. Courtois percaya bahawa piawaian Rusia mudah diserang dan tidak boleh dianggap antarabangsa. Walau bagaimanapun, Courtois menjalankan analisisnya untuk kotak-S selain daripada yang sebenar, jadi anda tidak seharusnya bergantung pada pendapatnya.

Sekarang mari kita lihat apa yang mereka buat di dalam dinding Lubyanka yang suram.

Mod penggantian mudah

Dalam mod penggantian mudah untuk 32 pusingan, mengikut standard, kita memerlukan 32 kekunci pusingan. Untuk menjana kekunci bulat, kunci 256-bit asal dibahagikan kepada lapan blok 32-bit: K1...K8. Kekunci K9...K24 ialah pengulangan kitaran bagi kekunci K1...K8. Kekunci K25…K32 ialah kunci K8…K1.

  1. Setiap blok 64-bit dibahagikan kepada dua subblok - Ai dan Bi.
  2. Subblok kiri Ai ditambah modulo 232 dengan kekunci bulat K1: Ai+1 = Ai + Ki mod 232.
  3. Subblok kiri melepasi kotak-S.
  4. Bit subblok kiri dianjak sebanyak 11 kedudukan (anjakan kitaran).
  5. Subblok kiri menambah sehingga modulo 2 kanan: A = A ⊕ B . iii
  6. Subblok kanan mengambil nilai awal subblok kiri: Bi+1 = Ai.
  7. Subblok ditukar.

Hanya contoh satu pusingan. Kekunci 256 bit:

arvadek adava arvadek adava arvadek adava arvadek adava arva

00011 01010 11110 00011 01001 00001 01111 00011 01001 00011 11110

00011... . . . 00011 01010 11110 0

Kemudian kunci bulat

K1 = 00011 01010 11110 00011 01001 00001 01

K2 = 111 00011 01001 00011 11110 00011 0001

K3 = . . .

S - kotak= [ 1 , 15 , 13 , 0 , 5 , 7 , 10 , 4 , 9 , 2 , 3 , 14 , 6 , 11 , 8 , 12 ]

Bagaimana untuk menggunakan S-box ini? Sangat ringkas! Jika input S-box ialah 0, maka output akan menjadi 1 (ambil simbol ke-0 S-box), jika 4, maka output akan menjadi 5 (ambil simbol ke-4), jika input ialah 7 , maka output akan menjadi 4, dan seterusnya.

Teks kosong:

Terbahagi kepada dua blok 32-bit bit tinggi dan rendah:

Contoh itu, tentu saja, ternyata liar, kerana GOST masih bukan standard yang semua orang boleh melaluinya dengan tangan mereka sendiri.

Mod penggantian mudah adalah terlalu mudah dan mempunyai kelemahan yang ketara:

  • satu ralat dalam blok yang disulitkan merosakkan semua bit blok itu;
  • apabila menyulitkan blok teks biasa yang serupa, blok teks sifir yang sama diperoleh, yang boleh memberikan maklumat tertentu kepada penganalisis kriptografi.

Oleh itu, adalah dinasihatkan untuk menggunakan GOST 28147-89 dalam mod penggantian mudah hanya untuk menyulitkan data utama.

MOD PERMAINAN

Mod ini tidak mempunyai kelemahan mod penggantian mudah. Mod gamma dipanggil sedemikian kerana ia menggunakan gamma, urutan pseudo-rawak yang ditambah modulo 2 kepada plaintext dalam setiap pusingan. Gamma terbentuk daripada mesej penyegerakan S - urutan pseudo-rawak yang berubah dengan setiap lelaran dan disulitkan dalam mod gantian mudah, selepas itu ia bertukar menjadi gamma dan ditindih pada teks biasa.

Dan kini semuanya teratur.

Langkah 3–5 diulang untuk setiap blok. Semua manipulasi ini boleh dilihat dalam rajah.

Penyahsulitan dilakukan dengan cara yang sama; bukannya blok teks biasa, blok teks sifir dibekalkan.

Mod gamma dengan maklum balas

Mari menjadi lebih rumit. Algoritma adalah serupa dengan mod gamma, tetapi gamma dibentuk berdasarkan blok data yang disulitkan sebelumnya, jadi hasil penyulitan blok semasa juga bergantung pada blok sebelumnya. 1. Mesej penyegerakan S - jujukan pseudo-rawak 64-bit.

2. S disulitkan dalam mod gantian mudah.
3. Teks biasa ditambah modulo 2 kepada gamma yang terhasil.
4. Teks sifir yang terhasil dihantar sebagai mesej penyegerakan untuk blok seterusnya, dan juga dihantar ke output. Anda boleh melihat rupanya dalam rajah.

Mod sisipan simulasi

Dalam mod ini, sisipan simulasi dijana - blok tambahan dengan panjang tetap, bergantung pada teks sumber dan kekunci. Blok sekecil itu diperlukan untuk mengesahkan bahawa tiada herotan secara tidak sengaja atau sengaja dimasukkan ke dalam teks sifir - iaitu, untuk menyemak integriti. Mod ini berfungsi seperti ini:

1. Satu blok teks biasa melalui 16 pusingan dalam mod gantian mudah.
2. Satu lagi blok plaintext ditambahkan pada blok modulo 2 yang terhasil.
3. Jumlahnya melalui 16 pusingan lagi dalam mod gantian mudah.
4. Blok plaintext seterusnya ditambah dan sekali lagi penggantian mudah, dan seterusnya sehingga tiada lagi blok plaintext.

Untuk mengesahkan, penerima, selepas menyahsulit teks, menjalankan prosedur yang serupa dengan yang diterangkan. Jika hasilnya tidak sepadan dengan sisipan tiruan yang dihantar, semua blok M yang sepadan dianggap palsu.

GOST 34.12-2015 (BELALANG)

Ramai yang menganggap GOST 28147-89 sudah lapuk dan tidak cukup teguh berbanding dengan algoritma asing. Untuk menggantikannya, kriptografi domestik mengeluarkan standard penyulitan baharu. Mereka mengatakan bahawa ini berlaku sama ada kerana bilangan besar serangan pada GOST lama, atau kerana panjang blok ini sudah lapuk dan terlalu kecil untuk set data moden. Tiada siapa yang mengiklankan sebab sebenar. Sudah tentu, terdapat beberapa perubahan pada ciri utama.

Ciri-ciri utama: kunci 256 bit, blok 128 bit.

Perlu juga dikatakan bahawa dalam standard baharu, kotak-S adalah tetap dan bertimbang rasa, jadi tidak perlu mencipta penggantian rawak ajaib anda sendiri. GOST baharu mempunyai lebih banyak mod penyulitan:
mod gantian mudah (Buku Kod Elektronik, ECB);
mod gamma (Kaunter, CTR);
mod gamma dengan maklum balas output (Maklum Balas Output, OFB);
mod penggantian mudah dengan penglibatan (Cipher Block Chaining, SBC);
mod gamma dengan maklum balas teks sifir (Maklum Balas Sifir, CFB);
mod penjanaan sisipan simulasi (algoritma Kod Pengesahan Mesej).

Mari lihat mod baharu.

Mod penggantian mudah dengan penglibatan

Seperti yang dilihat dalam standard sebelumnya, mod penggantian mudah adalah mod yang paling lemah, jadi dalam standard baharu ia kini menonjol dengan penglibatan dan menjadi tidak begitu mudah sama sekali.

  1. Vektor permulaan kedengaran menakutkan, tetapi sebenarnya ia hanyalah urutan bit yang memasuki input.
  2. Vektor dibahagikan kepada dua bahagian - L dan R, satu daripadanya ditambah modulo 2 dengan plaintext, dan satu lagi menjadi separuh daripada vektor permulaan untuk blok seterusnya.
  3. Jumlah teks biasa dan sekeping vektor pemulaan disalurkan melalui sifir penggantian mudah.
  4. Blok siferteks yang terhasil dilekatkan bersama.

Sebaik sahaja anda melihat gambar rajah, segala-galanya serta-merta menjadi jelas.

Sudah tentu, vektor permulaan tidak semudah itu: ia melalui satu siri transformasi linear (menggunakan daftar anjakan linear) sebelum ia mula menyulitkan blok baharu. Tetapi untuk berkenalan dengan sifir, sudah cukup untuk membayangkan skema sedemikian. Penyahsulitan dalam mod ini juga tidak jelas sepenuhnya, jadi lebih baik untuk melihat gambar rajah.

Untuk kelebihan - Penyulitan. Antara perkembangan domestik ialah penyedia kripto CryptoPro CSP.

Beberapa perkataan tentang kekuatan mod penyulitan. Ramai pakar kriptografi asing telah cuba mengangkat tangan mereka terhadap standard kami, tetapi pada masa ini tidak ada satu serangan pun diketahui yang boleh dilaksanakan pada tahap pembangunan teknologi semasa. Untuk masa yang lama, piawaian ini tidak begitu popular di kalangan pengaturcara, kerana sukar untuk memahami algoritma operasi dari teksnya, dan tidak ada penerangan yang lebih jelas. Tetapi kini sudah terdapat banyak pelaksanaan dalam banyak bahasa pengaturcaraan. Jadi sekarang penggunaan GOST agak mungkin, dan dalam banyak aspek ia melepasi piawaian asing. Akhirnya, di manakah patriotisme?!

pengenalan

Masalah melindungi maklumat dengan mengubahnya untuk mengelakkannya daripada dibaca oleh orang luar telah membimbangkan minda manusia sejak zaman dahulu. Sejarah kriptografi adalah sama dengan sejarah bahasa manusia. Lebih-lebih lagi, penulisan itu sendiri pada asalnya adalah sistem kriptografi, kerana dalam masyarakat purba hanya segelintir orang terpilih yang menguasainya.

Kitab suci Mesir Purba dan India Purba adalah contoh perkara ini.

Dengan penggunaan tulisan yang meluas, kriptografi mula muncul sebagai sains bebas. Sistem kriptografi pertama sudah ditemui pada permulaan era kita. Oleh itu, Caesar dalam surat-menyuratnya menggunakan sifir yang lebih kurang sistematik, yang menerima namanya.

Sistem kriptografi berkembang pesat semasa Perang Dunia Pertama dan Kedua. Dari tempoh selepas perang hingga ke hari ini, kemunculan pengkomputeran telah mempercepatkan pembangunan dan penambahbaikan kaedah kriptografi.

Mengapakah masalah menggunakan kaedah kriptografi dalam sistem maklumat (IS) menjadi sangat relevan pada masa ini?

Di satu pihak, penggunaan rangkaian komputer telah berkembang, khususnya Internet global, yang melaluinya sejumlah besar maklumat negara, ketenteraan, komersial dan peribadi dihantar, menghalang orang yang tidak dibenarkan daripada mengaksesnya.

Sebaliknya, kemunculan komputer baru yang berkuasa, teknologi rangkaian dan pengkomputeran saraf telah memungkinkan untuk mendiskreditkan sistem kriptografi yang sehingga baru-baru ini dianggap hampir tidak boleh dipecahkan.

Dalam bab pertama kerja ini, anda boleh membiasakan diri dengan konsep asas kriptografi moden, keperluan untuknya, dan kemungkinan aplikasi praktikalnya.

Dalam bab kedua, kami bekerja dengan protokol pengedaran kunci kriptografi, konsep tandatangan elektronik dan protokol tandatangan elektronik.

Bab ketiga kerja ini bercakap tentang fungsi cincang dan (kaedah) algoritma untuk pembinaannya.

Bab keempat akan membincangkan tentang pemodenan tandatangan elektronik El Gamal dan masalah logaritma diskret.

Bab 1. Konsep asas kriptografi moden

Kriptologi (kryptos - rahsia, logo - sains) menangani masalah melindungi maklumat dengan mengubahnya. Kriptologi terbahagi kepada dua bidang - kriptografi dan kriptanalisis. Matlamat arah ini adalah bertentangan.

Kriptografi berurusan dengan carian dan kajian kaedah matematik untuk menukar maklumat.

Bidang kepentingan kriptanalisis adalah kajian tentang kemungkinan menyahsulit maklumat tanpa mengetahui kuncinya.

Kerja ini akan memberi tumpuan kepada kaedah kriptografi.

Kriptografi moden merangkumi empat bahagian utama:

Sistem kriptografi simetri.

Sistem kriptografi kunci awam.

Sistem tandatangan elektronik.

Pengurusan utama.

Bidang utama penggunaan kaedah kriptografi ialah pemindahan maklumat sulit melalui saluran komunikasi (contohnya, e-mel), mewujudkan ketulenan mesej yang dihantar, menyimpan maklumat (dokumen, pangkalan data) pada media dalam bentuk yang disulitkan.

Kriptografi memungkinkan untuk mengubah maklumat sedemikian rupa sehingga pembacaannya (pemulihan) hanya mungkin jika kuncinya diketahui.

Teks berdasarkan abjad tertentu akan dianggap sebagai maklumat untuk disulitkan dan dinyahsulit. Istilah-istilah ini bermaksud yang berikut.

Abjad ialah set tanda terhingga yang digunakan untuk mengekod maklumat.

Teks ialah set tertib unsur abjad.

Berikut adalah contoh abjad yang digunakan dalam sistem maklumat moden:

abjad Z33 - 32 huruf abjad Rusia dan ruang;

abjad Z256 - aksara yang disertakan dalam kod ASCII dan KOI-8 standard;

abjad binari - Z2 = (0,1);

abjad oktal atau abjad heksadesimal;

Penyulitan ialah proses transformasi: teks asal, juga dipanggil plaintext, digantikan dengan ciphertext.

Penyahsulitan ialah proses terbalik penyulitan. Berdasarkan kunci, teks sifir ditukar kepada yang asal.

Kuncinya ialah maklumat yang diperlukan untuk kelancaran penyulitan dan penyahsulitan teks.

Sistem kriptografi ialah keluarga transformasi teks biasa T. Ahli keluarga ini diindeks, atau ditetapkan dengan simbol k; parameter k ialah kuncinya. Ruang kekunci K ialah set nilai kunci yang mungkin. Biasanya kuncinya ialah siri huruf abjad yang berurutan.

Cryptosystems dibahagikan kepada kunci simetri dan awam.

Dalam sistem kripto simetri, kunci yang sama digunakan untuk kedua-dua penyulitan dan penyahsulitan.

Sistem kunci awam menggunakan dua kunci, kunci awam dan kunci persendirian, yang berkaitan secara matematik antara satu sama lain. Maklumat disulitkan menggunakan kunci awam, yang tersedia untuk semua orang, dan dinyahsulit menggunakan kunci persendirian, yang hanya diketahui oleh penerima mesej. Istilah pengedaran kunci dan pengurusan kunci merujuk kepada proses sistem pemprosesan maklumat, yang kandungannya ialah penyusunan dan pengedaran kunci antara pengguna.

Tandatangan elektronik (digital) ialah transformasi kriptografi yang dilampirkan pada teks, yang membolehkan, apabila teks diterima oleh pengguna lain, untuk mengesahkan kepengarangan dan ketulenan mesej.

Kekuatan kriptografi ialah ciri sifir yang menentukan rintangannya terhadap penyahsulitan tanpa mengetahui kuncinya (iaitu, analisis kriptografi). Terdapat beberapa petunjuk kekuatan kriptografi, termasuk:

bilangan semua kunci yang mungkin;

purata masa yang diperlukan untuk kriptanalisis.

Transformasi Tk ditentukan oleh algoritma yang sepadan dan nilai parameter k. Keberkesanan penyulitan untuk melindungi maklumat bergantung pada mengekalkan kerahsiaan kunci dan kekuatan kriptografi sifir.

Proses penutupan data kriptografi boleh dijalankan sama ada dalam perisian atau perkakasan. Pelaksanaan perkakasan jauh lebih mahal, tetapi ia juga mempunyai kelebihan: prestasi tinggi, kesederhanaan, keselamatan, dll. Pelaksanaan perisian lebih praktikal dan membolehkan fleksibiliti tertentu digunakan.

Keperluan yang diterima umum berikut dirumuskan untuk sistem keselamatan maklumat kriptografi moden:

mesej yang disulitkan mesti boleh dibaca hanya jika kunci tersedia;

bilangan operasi yang diperlukan untuk menentukan kunci penyulitan yang digunakan daripada serpihan mesej yang disulitkan dan teks biasa yang sepadan mestilah tidak kurang daripada jumlah bilangan kunci yang mungkin;

bilangan operasi yang diperlukan untuk menyahsulit maklumat dengan mencari melalui semua kekunci yang mungkin mesti mempunyai batas bawah yang ketat dan melangkaui keupayaan komputer moden (dengan mengambil kira kemungkinan menggunakan pengkomputeran rangkaian);

pengetahuan tentang algoritma penyulitan seharusnya tidak menjejaskan kebolehpercayaan perlindungan;

sedikit perubahan dalam kunci harus membawa kepada perubahan ketara dalam penampilan mesej yang disulitkan, walaupun menggunakan kunci yang sama;

elemen struktur algoritma penyulitan mestilah tidak berubah;

bit tambahan yang dimasukkan ke dalam mesej semasa proses penyulitan mesti disembunyikan sepenuhnya dan selamat dalam teks sifir;

panjang teks sifir mestilah sama dengan panjang teks asal;

tidak seharusnya ada kebergantungan yang mudah dan mudah diwujudkan antara kunci yang digunakan secara berurutan dalam proses penyulitan;

mana-mana daripada banyak kunci yang mungkin mesti menyediakan perlindungan maklumat yang boleh dipercayai;

algoritma mesti membenarkan pelaksanaan kedua-dua perisian dan perkakasan, manakala menukar panjang kunci tidak seharusnya membawa kepada kemerosotan kualitatif algoritma penyulitan.

Bab 2. Protokol pengedaran kunci kriptografi dan protokol tandatangan elektronik.

Tidak kira betapa kompleks dan boleh dipercayai sistem kriptografi, titik lemah mereka dalam pelaksanaan praktikal ialah masalah pengedaran kunci. Agar pertukaran maklumat sulit antara dua subjek IP dapat dilakukan, kunci mesti dijana oleh salah seorang daripada mereka, dan kemudian entah bagaimana, sekali lagi secara sulit, dipindahkan kepada yang lain. Itu. secara umum, pemindahan kunci sekali lagi memerlukan penggunaan beberapa jenis sistem kripto.

Untuk menyelesaikan masalah ini, sistem kunci awam telah dicadangkan berdasarkan keputusan yang diperoleh daripada algebra klasik dan moden.

Intipatinya ialah setiap penerima IP menjana dua kunci yang disambungkan antara satu sama lain mengikut peraturan tertentu. Satu kunci diisytiharkan awam dan satu lagi peribadi. Kunci awam diterbitkan dan tersedia kepada sesiapa sahaja yang ingin menghantar mesej kepada penerima. Kunci rahsia dirahsiakan.

Teks asal disulitkan dengan kunci awam penerima dan dihantar kepadanya. Teks yang disulitkan tidak boleh, pada dasarnya, dinyahsulit oleh teks biasa yang sama.


kunci. Penyahsulitan mesej hanya boleh dilakukan menggunakan kunci peribadi, yang hanya diketahui oleh penerima.

Sistem kriptografi kunci awam menggunakan apa yang dipanggil fungsi tak boleh balik atau sehala, yang mempunyai sifat berikut: diberi nilai x, adalah agak mudah untuk mengira nilai f(x), tetapi jika y=f(x), maka tiada cara mudah untuk mengira nilai x.

Set kelas fungsi tak boleh balik menimbulkan semua kepelbagaian sistem kunci awam. Walau bagaimanapun, bukan setiap fungsi tidak boleh balik sesuai untuk digunakan dalam IC sebenar.

09.07.2003

Apakah penyulitan?

Penyulitan telah digunakan oleh manusia sejak saat maklumat rahsia pertama muncul, iaitu, maklumat sedemikian yang aksesnya harus dihadkan. Ini adalah masa yang lama dahulu - sebagai contoh, salah satu kaedah penyulitan yang paling terkenal dinamakan sempena Caesar, yang, jika dia tidak menciptanya sendiri, maka secara aktif menggunakannya (lihat bar sisi).

Kriptografi memastikan bahawa makna mesej disembunyikan dan didedahkan melalui penyahsulitan menggunakan algoritma dan kekunci khas. Kami memahami kunci sebagai keadaan rahsia khusus bagi parameter algoritma penyulitan dan penyahsulitan. Mengetahui kunci membolehkan anda membaca mesej rahsia. Walau bagaimanapun, seperti yang anda akan lihat di bawah, ketidaktahuan tentang kunci tidak selalu menjamin bahawa mesej itu tidak boleh dibaca oleh orang yang tidak dikenali.

Proses memecahkan sifir tanpa mengetahui kunci dipanggil cryptanalysis. Masa yang diperlukan untuk memecahkan sifir ditentukan oleh kekuatan kriptografinya. Lebih besar ia, lebih "kuat" algoritma penyulitan. Ia lebih baik jika pada mulanya mustahil untuk mengetahui sama ada hasil penggodaman itu boleh dicapai.

Kaedah penyulitan moden asas

Di antara pelbagai kaedah penyulitan, kaedah utama berikut boleh dibezakan:

  • Algoritma penggantian atau penggantian - aksara teks sumber digantikan dengan aksara abjad lain (atau yang sama) mengikut skema yang telah ditetapkan, yang akan menjadi kunci sifir ini. Secara berasingan, kaedah ini boleh dikatakan tidak digunakan dalam sistem kriptografi moden kerana kekuatan kriptografinya yang sangat rendah.
  • Algoritma penyusunan semula - aksara teks asal ditukar mengikut prinsip tertentu, iaitu kunci rahsia. Algoritma pilihatur itu sendiri mempunyai kekuatan kriptografi yang rendah, tetapi disertakan sebagai elemen dalam banyak sistem kriptografi moden.
  • Algoritma gamma - aksara teks sumber ditambah pada aksara urutan rawak tertentu. Contoh yang paling biasa ialah penyulitan fail "nama pengguna.pwl", di mana sistem pengendalian Microsoft Windows 95 menyimpan kata laluan kepada sumber rangkaian pengguna tertentu (kata laluan untuk log masuk ke pelayan NT, kata laluan untuk akses Internet DialUp, dsb.) .

Apabila pengguna memasukkan kata laluan mereka semasa log masuk ke Windows 95, gamma (sentiasa sama) dihasilkan daripadanya menggunakan algoritma penyulitan RC4, yang digunakan untuk menyulitkan kata laluan rangkaian. Kesederhanaan pemilihan kata laluan dalam kes ini adalah disebabkan oleh fakta bahawa Windows sentiasa lebih suka skema warna yang sama.

  • Algoritma berdasarkan transformasi matematik kompleks teks sumber mengikut formula tertentu. Ramai daripada mereka menggunakan masalah matematik yang tidak dapat diselesaikan. Sebagai contoh, algoritma penyulitan RSA yang digunakan secara meluas di Internet adalah berdasarkan sifat nombor perdana.

Sistem kripto simetri dan tidak simetri

Sebelum beralih kepada algoritma individu, mari kita pertimbangkan secara ringkas konsep sistem kriptografi simetri dan asimetri. Menjana kunci rahsia dan menyulitkan mesej dengannya hanyalah separuh daripada perjuangan. Tetapi bagaimanakah kunci sedemikian boleh dihantar kepada seseorang yang mesti menggunakannya untuk menyahsulit mesej asal? Penghantaran kunci penyulitan dianggap sebagai salah satu masalah utama kriptografi.

Walaupun kekal dalam rangka sistem simetri (dinamakan sedemikian kerana kunci yang sama digunakan untuk penyulitan dan penyahsulitan), adalah perlu untuk mempunyai saluran komunikasi yang boleh dipercayai untuk menghantar kunci rahsia. Tetapi saluran sedemikian tidak selalu tersedia, dan oleh itu ahli matematik Amerika Diffie, Hellman dan Merkle membangunkan konsep kunci awam dan penyulitan asimetri pada tahun 1976. Dalam sistem kripto sedemikian, hanya kunci untuk proses penyulitan tersedia secara umum, dan prosedur penyahsulitan hanya diketahui oleh pemilik kunci rahsia.

Sebagai contoh, apabila saya mahu mesej dihantar kepada saya, saya menjana kunci awam dan peribadi. Saya menghantarnya kepada anda, anda menyulitkan mesej dan menghantarnya kepada saya. Hanya saya yang boleh menyahsulit mesej itu, kerana saya tidak memberikan kunci rahsia kepada sesiapa. Sudah tentu, kedua-dua kunci dikaitkan dengan cara yang istimewa (dengan cara yang berbeza dalam setiap sistem kripto), dan pengedaran kunci awam tidak memusnahkan kekuatan kriptografi sistem.

Dalam sistem asimetri, keperluan berikut mesti dipenuhi: tiada algoritma (atau ia belum diketahui) yang akan memperoleh teks asal daripada teks kripto dan kunci awam. Contoh sistem sedemikian ialah sistem kripto RSA yang terkenal.

Algoritma RSA

Algoritma RSA (selepas huruf pertama nama akhir penciptanya Rivest-Shamir-Adleman) adalah berdasarkan sifat nombor perdana (dan yang sangat besar). Nombor perdana ialah nombor yang tidak mempunyai pembahagi selain daripada dirinya dan satu. Dan nombor koprima ialah nombor yang tidak mempunyai pembahagi sepunya selain 1.

Mula-mula, mari kita pilih dua nombor perdana yang sangat besar (prima besar diperlukan untuk membina kunci yang besar dan kuat. Contohnya, program Unix ssh-keygen menjana kunci sepanjang 1024 bit secara lalai).

Mari kita tentukan parameter n akibat daripada pendaraban hlm Dan q. Mari pilih nombor rawak yang besar dan hubunginya d, dan ia mesti bersamaan dengan hasil pendaraban (p -1)*(q -1).

Mari kita cari nombor e yang perkaitannya adalah benar

(e*d) mod ((p -1)*(q -1)) = 1

(mod- baki pembahagian, iaitu jika e didarab dengan d dibahagi dengan ((p -1)*(q -1)), maka bakinya ialah 1).

Kunci awam ialah sepasang nombor e dan n, dan ditutup - d dan n.

Apabila menyulitkan, teks sumber dianggap sebagai siri nombor, dan kami melakukan operasi pada setiap nombor

C(i)= (M(i) e) mod n.

Hasilnya ialah urutan C(i), yang akan membentuk teks kripto. Penyahkodan maklumat berlaku mengikut formula

M(i) = (C(i) d) mod n.

Seperti yang anda lihat, penyahsulitan memerlukan pengetahuan tentang kunci rahsia.

Mari cuba pada nombor kecil.

Jom pasang p=3, q=7. Kemudian n=p*q=21. pilih d sebagai 5. Daripada formula (e*5) mod 12=1 mengira e=17. Kunci awam 17, 21 , rahsia - 5, 21 .

Mari kita menyulitkan urutan "12345":

C(1)= 1 17 mod 21= 1

C(2)= 2 17 mod 21 =11

C(3)= 3 17 mod 21= 12

C(4)= 4 17 mod 21= 16

C(5)= 5 17 mod 21= 17

Teks Kripto - 1 11 12 16 17.

Mari kita semak penyahsulitan:

M(1)= 1 5 mod 21= 1

M(2)= 11 5 mod 21= 2

M(3)= 12 5 mod 21= 3

M(4)= 16 5 mod 21= 4

M(5)= 17 5 mod 21= 5

Seperti yang anda lihat, hasilnya bertepatan.

Sistem kriptografi RSA digunakan secara meluas di Internet. Apabila anda menyambung ke pelayan selamat melalui SSL, pasang sijil WebMoney pada PC anda atau sambung ke pelayan jauh menggunakan Open SSH atau SecureShell, semua program ini menggunakan penyulitan kunci awam menggunakan idea daripada algoritma RSA. Adakah sistem ini benar-benar boleh dipercayai?

Pertandingan penggodaman RSA

Sejak penciptaannya, RSA sentiasa tertakluk kepada serangan Brute-force. Pada tahun 1978, pengarang algoritma menerbitkan artikel di mana mereka membentangkan rentetan yang disulitkan menggunakan kaedah yang baru mereka cipta. Orang pertama yang menguraikan mesej itu diberi ganjaran sebanyak $100, tetapi ini memerlukan membahagikan nombor 129 digit kepada dua faktor. Ini adalah pertandingan pertama yang memecahkan RSA. Masalahnya diselesaikan hanya 17 tahun selepas penerbitan artikel itu.

Kekuatan kriptografi RSA adalah berdasarkan andaian bahawa adalah amat sukar, jika tidak mustahil, untuk menentukan kunci persendirian daripada kunci awam. Untuk melakukan ini, adalah perlu untuk menyelesaikan masalah kewujudan pembahagi integer yang besar. Sehingga kini, tiada siapa yang menyelesaikannya menggunakan kaedah analisis, dan algoritma RSA hanya boleh dipecahkan melalui kekerasan. Tegasnya, dakwaan bahawa masalah pemfaktoran adalah sukar dan sukar untuk memecahkan sistem RSA juga tidak terbukti.

Nombor yang diperoleh hasil pemprosesan teks mesej oleh fungsi cincang disulitkan menggunakan algoritma RSA pada kunci peribadi pengguna dan dihantar kepada penerima bersama-sama surat dan salinan kunci awam. Penerima, menggunakan kunci awam penghantar, melaksanakan fungsi cincang yang sama pada mesej masuk. Jika kedua-dua nombor adalah sama, ini bermakna mesej itu tulen, tetapi jika sekurang-kurangnya satu aksara telah ditukar, maka nombor itu tidak akan sepadan.

Salah satu pelanggan e-mel yang paling biasa di Rusia, program The Bat!, mempunyai keupayaan terbina dalam untuk menambah tandatangan digital pada surat (perhatikan item menu Privasi semasa mengedit surat). Baca lebih lanjut mengenai teknik ini dalam artikel (lihat “PC World”, No. 3/02).

nasi. 3

Kriptografi

Kriptografi ialah sains prinsip, cara dan kaedah mengubah maklumat untuk melindunginya daripada akses dan herotan yang tidak dibenarkan. Kebelakangan ini ia telah berkembang dengan sangat, sangat pesat. Ia adalah perlumbaan yang tidak berkesudahan dan menarik yang memerlukan banyak masa dan usaha: cryptanalysts memecahkan algoritma yang sehingga baru-baru ini adalah standard dan digunakan secara meluas. Ngomong-ngomong, baru-baru ini ahli matematik Dan Goldston (AS) dan Kem Ildirim (Turki) membuktikan keteraturan pertama dalam pengagihan nombor perdana (ketetapan sedemikian tidak disedari sehingga kini). Nombor perdana terletak pada paksi nombor dalam kelompok tertentu, yang menjadikannya lebih mudah dicari.

Penyelidikan matematik yang dijalankan di seluruh dunia sentiasa membawa kepada penemuan baru. Siapa tahu, mungkin kita berada di ambang memecahkan algoritma RSA atau sistem kripto lain berdasarkan masalah matematik yang tidak diselesaikan.

Oleg Bunin- pakar dalam pembangunan perisian untuk projek Internet yang besar, pekerja syarikat Rambler, http://www..htm).

  • Pengenalan kepada kriptografi / Ed. V.V. Yashchenko. M.: MTsNMO, 2000.
  • Nosov V. A. Garis besar sejarah ringkas perkembangan kriptografi // Prosiding persidangan "Universiti Moscow dan pembangunan kriptografi di Rusia", MSU, 17-18 Oktober 2002.
  • Salomaa A. Kriptografi kunci awam. M., 1996.
  • Zimmerman F. PGP - penyulitan kunci awam untuk semua orang.
  • Sistem Sifir Caesar

    Contoh algoritma penggantian ialah sistem penyulitan Caesar. Kaedah ini adalah berdasarkan menggantikan setiap huruf mesej dengan yang lain dengan beralih daripada yang asal dengan bilangan aksara yang tetap. Cuba tafsirkan kuatrain Omar Khayyam (masa siap - 10 minit).

    RLZ YOMEYZ AVBZHU IZAVLU, BZHSCHLU ZHSHCHEZZHZ ZHUOSCHZ, EYSH YSHCHAZhFO IYSHCHYVESH BSHCHIZHV EESH ZHSCHRSCH: LF EMRSYU ЪZEZESCHG, RYYO RLZ IZISHYOHRYUKYUKLU, UYSHYOHRYUKYUKLU DUYO IZISHCHEZ.

    Adakah anda berjaya? Inilah jawapannya:

    Untuk menjalani hidup anda dengan bijak, anda perlu tahu banyak,

    Ingat dua peraturan penting untuk bermula:

    Anda lebih suka kelaparan daripada makan apa-apa

    Dan lebih baik bersendirian daripada dengan sesiapa sahaja.

    Kunci penyahsulitan: beralih sebanyak tujuh aksara (ambil yang ketujuh) ke kiri mengikut abjad. Abjad digelung. Kes aksara tidak sensitif.

    Windows dan kata laluan

    Bagaimanakah Windows menyulitkan kata laluan?

    Sistem mengambil kata laluan, menukarnya kepada huruf besar, memangkasnya kepada 14 aksara, kemudian membahagikannya kepada dua bahagian daripada 7, menyulitkan setiap satu secara berasingan dan menyimpannya dengan cara itu, yang menjadikan penggodaman sedikit lebih mudah. Ngomong-ngomong, apabila anda membuat kata laluan, perlu diingat bahawa gabungan yang lebih panjang daripada 14 aksara mempunyai sedikit makna.

    Pertandingan AES (Advanced Encryption Standard).

    Pada tahun 80-an di Amerika Syarikat mereka mengguna pakai piawai penyulitan simetri untuk kegunaan dalaman - DES ((Standard Penyulitan Data, terdapat piawaian yang sama di Rusia). Tetapi pada tahun 1997, apabila menjadi jelas bahawa kunci DES 56-bit tidak mencukupi untuk sistem kripto, Institut Piawaian Amerika mengumumkan persaingan untuk algoritma standard baharu. Daripada 15 pilihan, yang terbaik dipilih: algoritma Belgium Rijndael (namanya terdiri daripada nama pengarang - Rijmen dan Daemen, dibaca sebagai "Rijndael" Algoritma ini telah dibina ke dalam pelbagai alat kriptografi yang dibekalkan kepada pasaran). Finalis lain Pemenang pertandingan ialah MARS, RC6, Serpent, TwoFish. Kesemua algoritma ini didapati agak teguh dan berjaya menentang semua kaedah yang terkenal kriptanalisis.

    Fungsi cincang kriptografi

    Fungsi cincang kriptografi menukar data input dari sebarang saiz kepada rentetan saiz tetap. Ia amat sukar untuk dicari untuk mereka:

    • dua set data berbeza dengan hasil transformasi yang sama (rintangan perlanggaran); sebagai contoh, bilangan operasi aritmetik yang diperlukan untuk mencari blok data yang juga mempunyai mesej ringkas untuk fungsi cincang MD5 adalah lebih kurang 2 64;
    • nilai input berdasarkan hasil pencincangan yang diketahui (ketidakbolehbalikan); untuk MD5, anggaran bilangan operasi yang diperlukan untuk mengira mesej asal ialah 2,128.