Kriptografi. Sistem kriptografi simetri

Sistem kriptografi simetri

Sistem kriptografi simetri (juga penyulitan simetri, sifir simetri) ialah kaedah penyulitan di mana kunci kriptografi yang sama digunakan untuk penyulitan dan penyahsulitan. Sebelum penciptaan skema penyulitan asimetri, satu-satunya kaedah yang wujud ialah penyulitan simetri. Kunci algoritma mesti dirahsiakan oleh kedua-dua pihak. Kunci algoritma dipilih oleh pihak sebelum pertukaran mesej bermula.

Pada masa ini, sifir simetri ialah:

1. Sekat sifir - memproses maklumat dalam blok dengan panjang tertentu (biasanya 64, 128 bit), menggunakan kunci pada blok dalam susunan yang ditetapkan, biasanya melalui beberapa kitaran pencampuran dan penggantian, dipanggil pusingan. Hasil daripada pusingan berulang ialah kesan longsoran - kehilangan korespondensi bit yang semakin meningkat antara blok data terbuka dan yang disulitkan.

2. Sifir strim - di mana penyulitan dijalankan pada setiap bit atau bait teks asal (biasa) menggunakan gamma. Sifir strim boleh dibuat dengan mudah berdasarkan sifir blok (contohnya, GOST 28147-89 dalam mod gamma), dilancarkan dalam mod khas.

Sistem kriptografi kunci awam

Sistem kriptografi kunci awam (atau penyulitan Asymmetric, Cipher Asymmetric) ialah sistem penyulitan maklumat di mana kunci yang digunakan untuk mesej disulitkan dan mesej yang disulitkan itu sendiri dihantar melalui saluran terbuka (iaitu, tidak dilindungi, boleh diperhatikan). Penerima menggunakan kunci persendirian untuk menjana kunci awam dan membaca mesej yang disulitkan. Sistem kriptografi kunci awam kini digunakan secara meluas dalam pelbagai protokol rangkaian, khususnya dalam protokol SSL dan protokol peringkat aplikasi HTTPS, SSH, dsb. berdasarkannya.

nasi. 7.

1. Penerima menjana kunci. Kunci dibahagikan kepada bahagian terbuka dan tertutup. Dalam kes ini, kunci awam tidak boleh dihantar melalui saluran terbuka. Atau kesahihannya mesti dijamin oleh pihak berkuasa yang mengesahkan.

2. Pengirim menyulitkan mesej menggunakan kunci awam.

3. Penerima menyahsulit mesej menggunakan kunci persendirian.

Kelemahan kaedah: Walaupun mesej disulitkan dengan selamat, penerima dan pengirim terdedah dengan fakta menghantar mesej yang disulitkan.

Idea umum sistem kriptografi kunci awam adalah untuk menggunakan, apabila menyulitkan mesej, fungsi sedemikian dari kunci awam dan mesej (fungsi sifir), yang secara algoritma sangat sukar untuk diterbalikkan, iaitu, untuk mengira hujahnya daripada nilai fungsi, malah mengetahui nilai kunci.

Ciri Sistem

Kelebihan Kelebihan sifir asimetri berbanding sifir simetri ialah tidak perlu menghantar kunci rahsia. Pihak yang ingin menerima teks sifir, mengikut algoritma yang digunakan, menghasilkan pasangan "kunci awam - kunci persendirian". Nilai utama adalah berkaitan, tetapi pengiraan satu nilai dari yang lain sepatutnya mustahil dari sudut pandangan praktikal. Kunci awam diterbitkan dalam direktori terbuka dan digunakan untuk menyulitkan maklumat oleh rakan niaga. Kunci persendirian dirahsiakan dan digunakan untuk menyahsulit mesej yang dihantar kepada pemilik pasangan kunci. Sifir asimetri telah dipelopori pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman, Arah Baru dalam Kriptografi Moden. Mereka mencadangkan sistem pertukaran kunci rahsia yang dikongsi berdasarkan masalah logaritma diskret. Secara umum, asas sistem kripto asimetri yang diketahui adalah salah satu masalah matematik yang kompleks, yang membolehkan pembinaan fungsi sehala dan fungsi perangkap. Sebagai contoh, sistem kriptografi Rivest-Shamir-Adelman menggunakan masalah pemfaktoran bilangan yang besar, dan sistem kripto Merkle-Hellman dan Hoare-Rivest bergantung pada apa yang dipanggil masalah ransel.

Kecacatan- sistem kripto asimetri memerlukan sumber pengkomputeran yang jauh lebih besar. Di samping itu, adalah perlu untuk memastikan ketulenan (keaslian) kunci awam itu sendiri, yang mana sijil biasanya digunakan.

Sistem kripto hibrid (atau gabungan) ialah sistem penyulitan yang mempunyai semua kelebihan sistem kripto kunci awam, tetapi tanpa kelemahan utamanya - kelajuan penyulitan yang rendah.

Prinsip: Sistem kriptografi mengambil kesempatan daripada dua sistem kriptografi utama: kriptografi simetri dan asimetrik. Program seperti PGP dan GnuPG dibina berdasarkan prinsip ini.

Kelemahan utama Kriptografi asimetri dicirikan oleh kelajuan rendah disebabkan oleh pengiraan kompleks yang diperlukan oleh algoritmanya, manakala kriptografi simetri secara tradisinya menunjukkan prestasi cemerlang. Walau bagaimanapun, sistem kriptografi simetri mempunyai satu kelemahan yang ketara - penggunaannya memerlukan kehadiran saluran selamat untuk menghantar kunci. Untuk mengatasi kelemahan ini, mereka menggunakan sistem kriptografi asimetri yang menggunakan sepasang kunci: awam dan peribadi.

Penyulitan: Kebanyakan sistem penyulitan berfungsi seperti berikut. Untuk algoritma simetri (3DES, IDEA, AES atau mana-mana yang lain), kunci rawak dijana. Kunci sedemikian biasanya mempunyai saiz dari 128 hingga 512 bit (bergantung pada algoritma). Algoritma simetri kemudian digunakan untuk menyulitkan mesej. Dalam kes sifir blok, perlu menggunakan mod penyulitan (contohnya, CBC), yang akan membolehkan mesej disulitkan dengan panjang lebih besar daripada panjang blok. Bagi kunci rawak itu sendiri, ia mesti disulitkan dengan kunci awam penerima mesej, dan pada peringkat ini sistem kripto kunci awam (RSA atau Algoritma Diffie-Hellman) digunakan. Memandangkan kunci rawak pendek, penyulitan memerlukan sedikit masa. Menyulitkan set mesej menggunakan algoritma asimetri adalah tugas yang lebih kompleks dari segi pengiraan, jadi adalah lebih baik untuk menggunakan penyulitan simetri. Kemudian sudah cukup untuk menghantar mesej yang disulitkan dengan algoritma simetri, serta kunci yang sepadan dalam bentuk yang disulitkan. Penerima mula-mula menyahsulit kunci menggunakan kunci peribadinya, dan kemudian menggunakan kunci yang terhasil untuk menerima keseluruhan mesej.

Tandatangan digital menyediakan:

* Pengenalpastian sumber dokumen. Bergantung pada butiran definisi dokumen, medan seperti "pengarang", "perubahan dibuat", "cap masa", dll. boleh ditandatangani.

* Perlindungan terhadap perubahan dokumen. Sebarang perubahan yang tidak disengajakan atau disengajakan pada dokumen (atau tandatangan) akan menukar sifir, oleh itu, tandatangan akan menjadi tidak sah.

Ancaman tandatangan digital berikut adalah mungkin:

*Penyerang boleh cuba memalsukan tandatangan untuk dokumen pilihannya.

*Penyerang boleh cuba memadankan dokumen dengan tandatangan tertentu supaya tandatangan itu sepadan dengannya.

Apabila menggunakan fungsi sifir yang kuat, adalah sukar dari segi pengiraan untuk mencipta dokumen palsu dengan sifir yang sama dengan yang tulen. Walau bagaimanapun, ancaman ini boleh direalisasikan disebabkan oleh kelemahan dalam algoritma caching tertentu, tandatangan atau ralat dalam pelaksanaannya. Walau bagaimanapun, ancaman berikut kepada sistem tandatangan digital juga mungkin:

*Penyerang yang mencuri kunci persendirian boleh menandatangani sebarang dokumen bagi pihak pemilik kunci.

*Penyerang boleh menipu pemilik untuk menandatangani dokumen, contohnya menggunakan protokol tandatangan buta.

*Penyerang boleh menggantikan kunci awam pemilik dengan kunci miliknya, menyamar sebagai dia.

pengenalan

Masalah melindungi maklumat dengan mengubahnya supaya tidak boleh dibaca oleh orang luar telah membimbangkan fikiran 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.

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.

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 terlibat dalam pencarian dan penyelidikan kaedah matematik untuk menukar maklumat.

Analisis kriptografi- meneroka kemungkinan menyahsulit maklumat tanpa mengetahui kuncinya.

Kaedah kriptografi perlindungan maklumat- ini adalah kaedah khas penyulitan, pengekodan atau transformasi maklumat lain, akibatnya kandungannya menjadi tidak boleh diakses tanpa pembentangan kunci kriptogram dan transformasi terbalik. Kaedah perlindungan kriptografi, sudah tentu, kaedah perlindungan yang paling boleh dipercayai, kerana maklumat itu sendiri dilindungi, dan bukan akses kepadanya. Kaedah perlindungan ini dilaksanakan dalam bentuk program atau pakej perisian.


Kriptografi

Kriptografi moden merangkumi empat bahagian utama:

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

2. Sistem kriptografi kunci awam. 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;

3. Tandatangan elektronik. Sistem tandatangan elektronik ialah transformasi kriptografi yang dilampirkan pada teks, yang membolehkan, apabila pengguna lain menerima teks, untuk mengesahkan kepengarangan dan ketulenan mesej.

4. Pengurusan utama. Ini adalah proses sistem pemprosesan maklumat, yang kandungannya adalah penyusunan dan pengedaran kunci antara pengguna.

Bidang utama penggunaan kaedah kriptografi ialah pemindahan maklumat sulit melalui saluran komunikasi, mewujudkan ketulenan mesej yang dihantar, menyimpan maklumat pada media dalam bentuk yang disulitkan.

Jadi, kriptografi memungkinkan untuk mengubah maklumat sedemikian rupa sehingga pembacaannya (pemulihan) hanya mungkin jika kunci diketahui.

Maklumat yang akan disulitkan dan dinyahsulitkan akan menjadi teks yang dibina pada beberapa abjad. Istilah-istilah ini bermaksud yang berikut.

Abjad- set aksara terhingga yang digunakan untuk mengekod maklumat.

Teks- set tersusun unsur abjad.

Penyulitan- proses transformasi: teks asal, yang juga dipanggil teks kosong, diganti teks yang disulitkan.

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

kunci - maklumat yang diperlukan untuk penyulitan lancar dan penyahsulitan teks.

Cryptosystems dibahagikan kepada simetri Dan dengan kunci awam.

DALAM sistem kriptografi simetri digunakan untuk kedua-dua penyulitan dan penyahsulitan kunci yang sama.

DALAM sistem kunci awam dua kekunci digunakan - buka Dan tertutup, 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.

Syarat pengedaran kunci Dan pengurusan utama merujuk kepada proses sistem pemprosesan maklumat, yang kandungannya adalah penyusunan dan pengedaran kunci antara pengguna.

Tandatangan elektronik (digital). dipanggil 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. Terdapat beberapa petunjuk kekuatan kriptografi, termasuk:

· bilangan semua kekunci yang mungkin;

· purata masa yang diperlukan untuk kriptanalisis.

Sistem kriptografi simetri

Keseluruhan pelbagai kaedah kriptografi sedia ada boleh dikurangkan kepada kelas transformasi berikut:

Jenis transformasi yang paling mudah terdiri daripada menggantikan aksara dalam teks sumber dengan yang lain (daripada abjad yang sama) mengikut peraturan yang lebih atau kurang kompleks. Untuk memastikan kekuatan kriptografi yang tinggi, penggunaan kunci besar diperlukan.

· Penyusunan semula.

Juga kaedah penukaran kriptografi yang mudah. Ia biasanya digunakan dalam kombinasi dengan kaedah lain.

Penyusunan Semula - aksara teks yang disulitkan disusun semula mengikut peraturan tertentu dalam blok teks yang dihantar.

· Bergetah.

Kaedah ini terdiri daripada menindih pada teks sumber beberapa urutan pseudo-rawak yang dijana berdasarkan kekunci.

Transformasi analitikal - teks yang disulitkan diubah mengikut beberapa peraturan analitikal, contohnya gamma - terdiri daripada mengenakan pada teks sumber beberapa urutan rawak pseudo yang dijana berdasarkan kekunci.

· Sekat sifir.

Penjelmaan gabungan - mewakili urutan kaedah penjelmaan asas yang digunakan pada blok teks sifir. Dalam amalan, sifir blok adalah lebih biasa daripada transformasi "tulen" satu kelas atau yang lain kerana kekuatan kriptografinya yang lebih tinggi. Piawaian penyulitan Rusia dan Amerika adalah berdasarkan kelas ini.

· Penggantian.

Penggantian - aksara dalam teks sifir digantikan dengan aksara daripada abjad yang sama atau lain mengikut peraturan yang telah ditetapkan.


Maklumat berkaitan.


¦ Algoritma dan piawaian penyulitan

¦ Tandatangan digital elektronik

¦ Teknologi pengesahan moden. Kad pintar

Kriptografi ialah sains kaedah matematik untuk memastikan kerahsiaan (kemustahilan membaca maklumat oleh orang yang tidak dikenali) dan ketulenan (integriti dan keaslian kepengarangan) maklumat. Dalam erti kata lain, kriptografi mengkaji kaedah penyulitan maklumat, iaitu kaedah perlindungan data yang digunakan untuk menyimpan maklumat kritikal dalam sumber yang tidak dipercayai atau menghantarnya melalui saluran komunikasi yang tidak selamat.

Penyulitan sebagai proses berlaku berabad-abad lamanya. Jadi, sifir penggantian telah wujud selama kira-kira 2500 tahun. Contoh yang menarik ialah sifir Atbash, yang timbul sekitar 600 SM. Intipati kerjanya ialah menggunakan abjad Ibrani dalam susunan terbalik. Julius Caesar juga menggunakan sifir penggantian, yang dinamakan sempena namanya - sifir Caesar. Intipati sifir Caesar adalah untuk menggantikan setiap huruf dengan satu lagi dalam abjad, tiga tempat lebih jauh daripada yang asal. Jadi, huruf A bertukar menjadi D, B bertukar menjadi E, saya bertukar menjadi G, dll.

Tidak dinafikan, penyulitan boleh dipanggil salah satu alat keselamatan yang paling penting. Walau bagaimanapun, kita tidak boleh lupa bahawa penyulitan itu sendiri bukanlah ubat penawar untuk semua masalah. Mekanisme penyulitan boleh dan harus menjadi sebahagian daripada program keselamatan yang komprehensif.

Menurut kanun klasik keselamatan maklumat, penyulitan memastikan tiga keadaan asas keselamatan maklumat.

¦ Kerahsiaan. Penyulitan digunakan untuk menyembunyikan maklumat daripada pengguna yang tidak dibenarkan semasa penghantaran atau penyimpanan.

¦ Integriti. Penyulitan digunakan untuk menghalang maklumat daripada ditukar semasa penghantaran atau penyimpanan. Contoh yang menarik ialah checksum yang diperoleh menggunakan fungsi cincang (apa yang boleh dilihat pada pelayan FTP di sebelah fail (sesuatu seperti ini - dpofgj 0 93utm34tdfgb45ygf) yang akan kami muat turun).

¦ Kebolehcaman. Penyulitan digunakan untuk mengesahkan sumber maklumat dan menghalang pengirim maklumat daripada menafikan fakta bahawa data telah dihantar oleh mereka.

Adalah diketahui bahawa mana-mana sistem penyulitan boleh digodam. Satu-satunya perkara ialah mendapatkan akses kepada maklumat yang dilindungi oleh penyulitan mungkin memerlukan jumlah masa dan sumber yang tidak boleh diterima.

Apakah maksud ini dan bagaimana rupanya dalam kehidupan sebenar? Bayangkan situasi ini: penyerang entah bagaimana berjaya memintas maklumat yang disulitkan. Tindakan lanjut penggodam boleh dikurangkan kepada dua pilihan penggodaman (satu pertiga juga mungkin, yang bermuara kepada mengeksploitasi kelemahan dalam persekitaran kerja):

¦ serangan "brute force", atau Brute Force ("brute force" serangan membayangkan pemilihan semua pilihan utama yang mungkin);

¦ cari kelemahan dalam algoritma.

Memandangkan fakta bahawa algoritma penyulitan yang digunakan pada masa ini telah diuji oleh api dan masa, agak jelas bahawa penyerang akan menggunakan Brute Force. Menggodam maklumat sulit yang disulitkan dengan algoritma yang kuat dan kunci yang cukup panjang (contohnya, 512 bit) akan memerlukan penggodam untuk menggunakan "tentera" superkomputer atau rangkaian pengedaran beberapa ratus ribu mesin, serta banyak masa dan wang. Tetapi jika anda mempunyai wang, maka mengapa tidak! Jadi, pada tahun 1997, Electronic Frontier Foundation (EFF) mengumumkan sistem komputer yang boleh mencari kunci DES dalam masa empat hari. Sistem ini menelan belanja syarikat $250,000 untuk mencipta. Dengan peralatan moden, kunci DES boleh ditentukan melalui serangan kekerasan dalam masa 35 minit.

2.1. Algoritma dan piawaian penyulitan

Bergantung pada kunci yang digunakan, penyulitan boleh dibahagikan kepada jenis berikut.

¦ Penyulitan simetri, di mana kunci untuk penyulitan dan penyahsulitan adalah kunci yang sama (pada tahap biasa - hanya kata laluan).

¦ Penyulitan asimetri: melibatkan penggunaan dua kekunci berbeza - awam dan peribadi. Kunci awam biasanya dihantar dalam teks yang jelas, manakala kunci peribadi sentiasa dirahsiakan.

Jenis penyulitan lain juga diketahui, seperti penulisan rahsia. Atas sebab yang diketahui, algoritma penulisan rahsia tidak terbuka: algoritma penyulitan itu sendiri tidak diketahui oleh orang luar; Undang-undang transformasi hanya diketahui oleh pengirim dan penerima mesej. Pad satu kali boleh dianggap sebagai salah satu contoh yang menarik bagi sistem sedemikian. Pad satu kali (Pad Satu kali, atau OTP) boleh dipanggil satu-satunya sistem penyulitan yang tidak boleh dipecahkan secara teori. Pad sekali ialah senarai nombor dalam susunan rawak yang digunakan untuk mengekod mesej. Seperti namanya, OTP hanya boleh digunakan sekali sahaja. Pad satu kali digunakan secara meluas dalam persekitaran maklumat dengan tahap keselamatan yang sangat tinggi (tetapi hanya untuk mesej ringkas). Oleh itu, di Kesatuan Soviet, OTP digunakan untuk menghubungkan pegawai perisikan dengan Moscow.

Penyulitan simetri

Seperti yang dinyatakan di atas, dengan penyulitan simetri, kunci yang sama digunakan untuk menyulitkan dan menyahsulit data. Jelas bahawa kunci algoritma mesti dirahsiakan oleh kedua-dua pihak. Secara ringkas, dalam kes ini kunci bermaksud kata laluan, yang, tentu saja, mesti dirahsiakan.

Algoritma penyulitan simetri yang popular ialah:

¦ DES (ketara ketinggalan zaman) dan TripleDES (3DES);

¦ AES (Rijndael);

¦ GOST 28147-89;

Parameter utama algoritma penyulitan simetri boleh dipertimbangkan:

¦ ketahanan;

¦ panjang kunci;

¦ bilangan pusingan;

¦ panjang blok yang diproses;

¦ kerumitan pelaksanaan perkakasan/perisian.

Jadi, mari kita mulakan.

Standard Penyulitan Data (DES). Algoritma Data Encryption Standard (DES) telah dibangunkan oleh IBM pada awal 1970-an. Institut Piawaian dan Teknologi Kebangsaan AS (NIST) menggunakan algoritma (penerbitan FIPS 46) untuk DES pada tahun 1977. Algoritma ini telah diubah suai lagi pada tahun 1983, 1988, 1993 dan 1999.

Sehingga baru-baru ini, DES ialah "standard AS" kerana kerajaan negara itu mengesyorkan penggunaannya untuk pelbagai sistem penyulitan data. Walau bagaimanapun, walaupun DES pada asalnya dirancang untuk digunakan tidak lebih daripada 10-15 tahun, percubaan untuk menggantikannya hanya bermula pada tahun 1997.

DES menggunakan kunci 56-bit. Mengikut piawaian hari ini, panjang kunci sedemikian tidak boleh diterima. DES ialah algoritma penyulitan blok yang memproses satu blok 64-bit plaintext pada satu masa. Algoritma DES melaksanakan 16 kitaran penyulitan dengan subkunci yang berbeza dalam setiap kitaran. Kekunci tertakluk kepada algoritmanya sendiri untuk membentuk 16 subkunci (Rajah 2.1).

nasi. 2.1. Skim operasi DES

Mari kita pertimbangkan operasi algoritma dengan lebih terperinci. Blok data input, yang terdiri daripada 64 bit, ditukar menjadi blok keluaran yang sama panjang. Kunci penyulitan mesti diketahui oleh kedua-dua pihak yang menghantar dan menerima. Algoritma ini banyak menggunakan pilih atur bit teks.

Fungsi F diperkenalkan yang beroperasi pada perkataan sumber 32-bit ® dan menggunakan kunci 48-bit (J) sebagai parameter. Rajah operasi bagi fungsi F ditunjukkan dalam Rajah. 2.1. Pertama, 32 bit input dikembangkan kepada 48, dengan beberapa bit diulang.

Untuk kod dan kunci 48-bit yang terhasil, operasi penambahan modulo-2 dilakukan. Kod 48-bit yang terhasil ditukar kepada 32-bit menggunakan matriks S.

Kod 48-bit asal dibahagikan kepada lapan kumpulan enam bit. Digit pertama dan terakhir dalam kumpulan digunakan sebagai alamat baris, dan empat digit tengah digunakan sebagai alamat lajur. Akibatnya, setiap enam bit kod ditukar kepada empat bit, dan keseluruhan kod 48-bit ditukar kepada 32-bit (ini memerlukan lapan S-matriks). Terdapat perkembangan yang memungkinkan untuk melakukan penyulitan dalam piawaian DES dalam perkakasan, yang memberikan prestasi yang agak tinggi.

Untuk masih memahami semua selok-belok algoritma DES, adalah agak sesuai untuk memberikan penerangan tentang rangkaian Feishtel yang dipanggil (kadang-kadang dipanggil rangkaian Feistel), yang merupakan asas DES.

Pada tahun 1973, Horst Feistel menerbitkan artikel dalam Scientific American bertajuk "Cryptography and Computer Privacy," di mana beliau mendedahkan beberapa aspek penting penyulitan dan juga memperkenalkan reka bentuk yang kemudiannya dipanggil rangkaian Feistel. Litar ini digunakan dalam projek Lucifer IBM, yang diusahakan oleh Feistel dan Don Coppersmith. Projek ini agak eksperimen, tetapi menjadi asas untuk Standard Penyulitan Data (DES). Struktur lelaran algoritma memungkinkan untuk memudahkan pelaksanaannya dalam persekitaran perkakasan.

Adalah wajar untuk ambil perhatian bahawa sifir blok berikut menggunakan rangkaian Feishtel klasik atau diubah suai sebagai asasnya: Blowfish, Camellia, CAST, DES, FEAL, GOST 28147-89, KASUMI, LOKI97, Lucifer, MacGuffin, MARS, MAGENTA, MISTY1, RC2 , RC5, RC6, Skipjack, TEA, Triple DES, Twofish, XTEA.

TripleDES (3DES). Ketidakstabilan DES yang jelas menyebabkan pencarian alternatif. Pada tahun 1992, penyelidikan menunjukkan bahawa DES boleh digunakan tiga kali untuk menyediakan penyulitan yang lebih kukuh. Beginilah cara triple DES (3DES) dilahirkan. Triple DES digunakan dengan sama ada dua atau tiga kekunci. Kunci yang digunakan dalam kes ini memberikan kuasa yang lebih besar berbanding DES konvensional.

Standard Penyulitan Lanjutan (AES). Tidak lama selepas keluaran DES, kelemahan jelas algoritma telah ditemui. Keperluan untuk standard baharu adalah lebih jelas: panjang kecil kekunci DES (56 bit) memungkinkan untuk menggunakan kaedah kekerasan terhadap algoritma ini. Di samping itu, seni bina DES tertumpu pada pelaksanaan perkakasan, dan pelaksanaan perisian algoritma pada platform dengan sumber terhad tidak memberikan prestasi yang diperlukan. Pengubahsuaian TDES mempunyai panjang kunci yang mencukupi, tetapi lebih perlahan. TDES belum wujud cukup lama untuk mengatakan bahawa algoritma itu teguh dan boleh dipercayai. Ia telah digantikan, seperti yang dijangkakan, dengan algoritma yang lebih stabil dan boleh dipercayai - AES, yang, dengan cara itu, telah dipilih sebagai hasil pertandingan dan diterima pakai sebagai standard penyulitan Amerika oleh kerajaan AS. Sedikit tentang pertandingan itu sendiri.

Pada 2 Januari 1997, NIST (Institut Piawaian dan Teknologi Kebangsaan) mengumumkan hasratnya untuk mencari pengganti DES, yang telah menjadi piawaian Amerika sejak 1977. NIST telah menerima cukup banyak input daripada pihak yang berminat tentang cara algoritma harus dipilih. Sambutan aktif daripada komuniti kriptografi terbuka membawa kepada pengumuman pertandingan pada 12 September 1997. Algoritma ini boleh dicadangkan oleh hampir mana-mana organisasi atau kumpulan penyelidik. Keperluan minimum untuk standard baharu adalah seperti berikut:

¦ ia mestilah sifir blok;

¦ panjang blok mestilah 128 bit;

¦ algoritma mesti berfungsi dengan kunci panjang 128, 192 dan 256 bit;

¦ gunakan operasi yang mudah dilaksanakan dalam perkakasan (dalam mikrocip) dan perisian (pada komputer peribadi dan pelayan);

¦ fokus pada pemproses 32-bit;

¦ jangan terlalu merumitkan struktur sifir, supaya semua pihak yang berminat dapat menjalankan analisis kriptografi bebas algoritma dan memastikan ia tidak mengandungi sebarang keupayaan yang tidak didokumenkan.

Sebagai tambahan kepada semua di atas, algoritma yang mendakwa sebagai standard mesti diedarkan ke seluruh dunia tanpa membayar untuk penggunaan paten.

Pada 20 Ogos 1998, pada persidangan AES yang pertama, senarai 15 calon telah diumumkan, iaitu: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Ular dan Twofish.

Adalah jelas bahawa dalam perbincangan seterusnya algoritma ini tertakluk kepada analisis yang paling teliti, dan bukan sahaja sifat kriptografi telah diperiksa, seperti rintangan terhadap serangan yang diketahui dan ketiadaan kunci yang lemah, tetapi juga aspek praktikal pelaksanaan. Oleh itu, apabila memilih algoritma, perhatian khusus tertumpu pada mengoptimumkan kelajuan pelaksanaan kod pada pelbagai seni bina (daripada PC hingga kad pintar dan pelaksanaan perkakasan), keupayaan untuk mengoptimumkan saiz kod, dan kemungkinan penyejajaran.

Pada Mac 1999, persidangan AES kedua telah diadakan, dan pada Ogos 1999, lima finalis telah diumumkan, termasuk: MARS, RC6, Rijndael, Serpent dan Twofish. Kesemuanya telah dibangunkan oleh pakar kriptografi terkemuka dengan pengiktirafan di seluruh dunia. Pada persidangan AES ke-3 pada April 2000, semua pengarang membentangkan algoritma mereka.

Persidangan AES ketiga telah diadakan di New York pada 13 dan 14 April 2000, sejurus sebelum tamat fasa kedua. Persidangan dua hari itu dibahagikan kepada lapan sesi, empat sesi setiap hari. Sesi hari pertama membincangkan isu berkaitan tatasusunan boleh atur cara lapangan (FGPA), menilai pelaksanaan algoritma pada pelbagai platform, termasuk PA-RISC, IA-64, Alpha, kad pintar peringkat tinggi dan pemproses isyarat, berbanding prestasi pemohon standard , bilangan pusingan dalam algoritma calon telah dianalisis. Pada hari kedua, Rijndael dianalisis dengan pengurangan bilangan pusingan dan kelemahannya dalam kes ini ditunjukkan, isu penyepaduan semua lima algoritma calon ke dalam piawaian akhir telah dibincangkan, dan semua algoritma diuji semula. Pada penghujung hari kedua, satu pembentangan telah diadakan di mana pemohon bercakap tentang algoritma mereka, kelebihan dan kekurangan mereka. Vincent Rijmen bercakap tentang Rijndael sebagai pemimpin, menyatakan kebolehpercayaan perlindungan, prestasi keseluruhan yang tinggi dan kesederhanaan seni bina calonnya.

Pada 2 Oktober 2000, algoritma Rijndael diumumkan sebagai pemenang pertandingan, dan prosedur penyeragaman bermula. Pada 28 Februari 2001, draf itu diterbitkan, dan pada 26 November 2001, AES telah diterima pakai sebagai FIPS 197.

Tegasnya, AES dan Rijndael bukanlah perkara yang sama, kerana Rijndael menyokong pelbagai panjang kunci dan blok.

Terutama yang patut diberi perhatian ialah hakikat bahawa algoritma Rijndael tidak serupa dengan kebanyakan algoritma penyulitan simetri yang diketahui, yang berdasarkan rangkaian Feishtel. Marilah kita mengingatkan pembaca kami bahawa keistimewaan rangkaian Feishtel ialah nilai input dibahagikan kepada dua atau lebih subblok, sebahagian daripadanya diproses dalam setiap pusingan mengikut undang-undang tertentu, selepas itu ia ditindih pada subblok yang tidak diproses.

Tidak seperti GOST 28147, yang akan dibincangkan di bawah, algoritma Rijndael mewakili blok data dalam bentuk tatasusunan bait dua dimensi bersaiz 4 x 4, 4 x 6 atau 4 x 8 (beberapa saiz tetap blok maklumat yang disulitkan adalah dibenarkan). Semua operasi dilakukan pada bait individu tatasusunan, serta pada lajur dan baris bebas.

Algoritma Rijndael melibatkan melakukan empat transformasi berurutan.

1. BS (ByteSub) – penggantian jadual bagi setiap bait tatasusunan (Rajah 2.2).


nasi. 2.2. Penggantian jadual bagi setiap bait tatasusunan

2. SR (ShiftRow) – anjakan baris tatasusunan. 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. Contohnya, untuk tatasusunan 4 x 4, baris 2, 3 dan 4 dianjakkan masing-masing sebanyak 1, 2 dan 3 bait (Rajah 2.3).

3. Seterusnya datang MC (MixColumn) - operasi pada lajur bebas tatasusunan, apabila setiap lajur didarab dengan matriks tetap C(X) mengikut peraturan tertentu (Rajah 2.4).

4. Peringkat akhir ialah 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. 2.5).


nasi. 2.3. Anjakan baris tatasusunan


nasi. 2.4. Lajur Campuran Operasi


nasi. 2.5. Tambah operasi kunci

Transformasi data yang disulitkan di atas dilakukan secara bergilir-gilir dalam setiap pusingan (Rajah 2.6).

nasi. 2.6. Urutan pusingan Rijndael

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

Mengapakah Rijndael menjadi standard penyulitan baharu, mendahului algoritma lain? Pertama sekali, ia menyediakan kelajuan penyulitan yang tinggi, dan pada semua platform: kedua-dua dalam pelaksanaan perisian dan perkakasan. Algoritma ini dibezakan oleh mekanisme yang berjaya untuk menyelaraskan 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.

Dengan semua kelebihan dan keaslian algoritma AES, ia boleh dianggap sebagai mutlak kebolehpercayaan dan ketahanan, tetapi, seperti yang selalu berlaku, tidak ada produk yang sempurna.

Pada 26 Mei 2006, di persidangan Quo Vadis IV, Nicolas Tadeusz Courtois (ahli kriptografi Poland yang tinggal di Perancis) membentangkan bukti praktikal kewujudan serangan algebra yang dioptimumkan terhadap sifir AES-Rijndael. Dalam satu setengah jam pada komputer ribanya, dia melakukan penggodaman demo menggunakan hanya beberapa teks sifir analog rapat Rijndael. Walaupun ia hanya sifir model, ia sama kuatnya, tiada kelemahan ketara ditambahkan padanya, ia mempunyai ciri resapan yang baik dan rintangan yang sama terhadap semua jenis kriptanalisis yang diketahui sebelum ini. Satu-satunya perbezaan ialah parameter S-box telah diubah dalam model serangan algebra dan bilangan pusingan dikurangkan untuk kejelasan. Walau bagaimanapun, ini sudah cukup untuk meyakinkan orang yang ragu-ragu tentang realiti serangan algebra dan ketidaksempurnaan walaupun kaedah penyulitan yang kelihatan sempurna.

GOST 28147. Algoritma penyulitan simetri seterusnya yang akan kami pertimbangkan ialah GOST 28147-89. Ini ialah piawaian penyulitan simetri Soviet dan Rusia yang diperkenalkan pada 1 Julai 1990. Piawaian ini wajib bagi organisasi, perusahaan dan institusi yang menggunakan perlindungan kriptografi data yang disimpan dan dihantar dalam rangkaian komputer, dalam sistem komputer atau komputer yang berasingan.

Algoritma ini dibangunkan di bekas Direktorat Utama KGB USSR atau di salah satu institut penyelidikan rahsia dalam sistemnya. Pada mulanya ia mempunyai penarafan (OB atau SS - ia tidak diketahui dengan tepat), kemudian penarafan itu diturunkan berturut-turut dan pada masa algoritma itu secara rasmi dijalankan melalui Standard Negeri USSR pada tahun 1989 ia telah dikeluarkan. Algoritma kekal papan serpai (seperti yang anda tahu, papan serpai tidak dianggap sebagai papan jari). Pada tahun 1989 ia menjadi standard rasmi USSR, dan kemudian, selepas kejatuhan USSR, standard persekutuan Persekutuan Rusia.

Sejak penerbitan GOST, ia ditandakan dengan setem sekatan "Untuk kegunaan rasmi", dan secara rasmi sifir diisytiharkan "terbuka sepenuhnya" hanya pada Mei 1994. Atas sebab yang diketahui, sejarah penciptaan sifir dan kriteria reka bentuknya masih tidak diketahui.

GOST 28147-89 ialah sifir blok dengan kunci 256-bit dan 32 kitaran penukaran, beroperasi pada blok 64-bit. Asas algoritma adalah rangkaian Feishtel yang telah kami ketahui. Mod penyulitan utama mengikut GOST 28147-89 ialah mod penggantian mudah (mod gamma yang lebih kompleks dan mod gamma maklum balas juga ditakrifkan). Mari kita pertimbangkan mekanisme operasi algoritma dengan lebih terperinci.

Apabila GOST 28147-89 berfungsi, maklumat disulitkan dalam blok 64 bit (algoritma sedemikian dipanggil algoritma blok), yang kemudiannya dibahagikan kepada dua subblok 32 bit (N1 dan N2). Selepas pemprosesan subblok N1 selesai, nilainya ditambah kepada nilai subblok N2 (penambahan dilakukan modulo 2, iaitu, operasi logik XOR digunakan - eksklusif OR), dan kemudian subblok ditukar. Transformasi ini dilakukan beberapa kali (pusingan): 16 atau 32, bergantung pada mod operasi algoritma. Dalam setiap pusingan, dua operasi dilakukan (Rajah 2.7).

nasi. 2.7. Penukaran dilakukan beberapa kali

Operasi pertama melibatkan penggunaan kunci. Kandungan subblok N1 ditambah modulo 2 dengan bahagian 32-bit kunci Kx. Kunci penyulitan penuh diwakili sebagai gabungan subkunci 32-bit: K0, K1, K2, K3, K4, K5, K6, K7. Proses penyulitan menggunakan salah satu subkunci ini, bergantung pada nombor bulat dan mod operasi algoritma.

Operasi kedua melakukan penggantian meja. Selepas mengekunci, subblok N1 dibahagikan kepada lapan bahagian daripada empat bit, nilai setiap satunya diganti mengikut jadual penggantian untuk bahagian subblok ini. Selepas ini, anjakan kitaran bit mengikut subblok dilakukan ke kiri sebanyak 11 bit.

Algoritma, yang ditakrifkan oleh GOST 28147-89, boleh beroperasi dalam empat mod:

¦ penggantian mudah;

¦ permainan;

¦ permainan dengan maklum balas;

¦ penjanaan awalan tiruan.

Dalam menjana awalan tiruan, transformasi penyulitan yang sama yang diterangkan di atas digunakan, tetapi kerana tujuan mod adalah berbeza, transformasi ini dijalankan secara berbeza dalam setiap mod.

Dalam mod gantian mudah, 32 pusingan yang diterangkan di atas dilakukan untuk menyulitkan setiap blok maklumat 64-bit. Setiap blok disulitkan secara berasingan daripada yang lain, iaitu, hasil penyulitan setiap blok hanya bergantung pada kandungannya (blok teks sumber yang sepadan). Jika terdapat beberapa blok yang sama bagi teks asal (biasa), blok teks sifir yang sepadan juga akan sama, yang memberikan maklumat berguna tambahan untuk juruanalisis 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 plaintext ditambah sedikit demi sedikit modulo 2 kepada blok gamma sifir 64-bit. Gamma sifir ialah jujukan khas yang diperoleh hasil daripada operasi tertentu dengan daftar N1 dan N2.

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

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

3. Kandungan daftar N1 ditambah modulo (2 32 – 1) dengan pemalar C1 sama dengan 2 24 + 2 16 + 2 8 + 2 4, dan hasil penambahan ditulis untuk mendaftar N1.

4. Kandungan daftar N2 ditambah modulo 2 32 dengan pemalar C2 sama dengan 2 24 + 2 16 + 2 8 + 1, dan hasil penambahan ditulis untuk mendaftar N2.

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

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

Untuk penyahsulitan, gamma dijana dengan cara yang sama, dan kemudian teks sifir dan bit gamma sekali lagi di-XOR.

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 tidak diklasifikasikan, tetapi 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 gelung tertutup, untuk mengisi daftar N1 dan N2, bermula dari blok kedua, bukan blok gamma sebelumnya yang digunakan, tetapi hasil penyulitan blok plaintext sebelumnya. Blok pertama dalam mod ini dijana sepenuhnya sama dengan yang sebelumnya.

Apabila mempertimbangkan mod penjanaan awalan tiruan, adalah perlu untuk mentakrifkan konsep subjek penjanaan. Awalan ialah jumlah semak kriptografi yang 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 tidak disedari adalah sama dengan 2^. Selalunya, 32 -bit awalan tiruan 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, kaedah kriptografi lain digunakan - terutamanya tandatangan digital elektronik.

Apabila bertukar maklumat, awalan tiruan berfungsi sebagai sejenis cara kawalan tambahan. 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 kekunci yang salah telah digunakan semasa penyahsulitan. Awalan tiruan amat berguna untuk menyemak penyahkodan maklumat utama yang betul apabila menggunakan skema berbilang kunci.

Algoritma GOST 28147-89 dianggap agak kuat - pada masa ini tiada kaedah yang lebih berkesan untuk pendedahannya daripada Brute Force yang disebutkan di atas. Kekuatan tinggi algoritma dicapai terutamanya disebabkan oleh panjang kunci yang besar, sama dengan 256 bit. Di samping itu, apabila menggunakan mesej penyegerakan rahsia, panjang kunci berkesan meningkat kepada 320 bit, dan kerahsiaan jadual gantian menambah bit tambahan. Di samping itu, kekuatan kriptografi GOST 28147-89 walaupun selepas 32 pusingan boleh dianggap lebih daripada mencukupi, dan ini walaupun pada hakikatnya kesan penuh penyebaran data input dicapai selepas lapan pusingan.

Hari ini, algoritma GOST 28147-89 memenuhi sepenuhnya semua keperluan kriptografi dan mempunyai kelebihan yang sama seperti algoritma lain, tetapi tanpa kelemahannya. Kelebihan jelas algoritma ini termasuk:

¦ pelaksanaan yang cekap dan, oleh itu, prestasi tinggi pada komputer moden;

¦ kesia-siaan serangan paksa (serangan XSL tidak diambil kira, kerana keberkesanannya masih belum terbukti sepenuhnya).

Walau bagaimanapun, seperti yang selalu berlaku, algoritma itu bukan tanpa kelemahannya: ia terbukti secara remeh bahawa GOST mempunyai kunci "lemah" dan kotak S, tetapi piawaian tidak menerangkan kriteria untuk memilih dan menghapuskan yang "lemah". Di samping itu, piawaian tidak menyatakan algoritma untuk menjana kotak-S (jadual penggantian). Di satu pihak, ini mungkin maklumat rahsia tambahan (sebagai tambahan kepada kunci), dan sebaliknya, ia menimbulkan beberapa masalah: adalah mustahil untuk menentukan kekuatan kriptografi algoritma tanpa mengetahui jadual penggantian terlebih dahulu. ; pelaksanaan algoritma daripada pengeluar yang berbeza mungkin menggunakan jadual gantian yang berbeza dan mungkin tidak serasi antara satu sama lain.

Mari kita lihat secara ringkas beberapa algoritma penyulitan simetri lain.

Blowfish. Blowfish ialah sifir blok 64-bit yang dibangunkan oleh Schneier pada tahun 1993. Sifir ini, seperti kebanyakan orang lain, adalah berdasarkan algoritma rangkaian Feishtel. Pusingan penyulitan berasingan bagi algoritma ini terdiri daripada pilih atur bergantung kepada kunci dan penggantian bergantung kepada kunci dengan data. Semua operasi adalah berdasarkan XOR dan penambahan pada perkataan 32-bit. Kekunci mempunyai panjang berubah (panjang maksimum 448 bit) dan digunakan untuk menjana beberapa tatasusunan subkunci. Sifir dicipta khusus untuk mesin 32-bit dan jauh lebih pantas daripada algoritma DES yang kami pertimbangkan sebelum ini.

IDEA(Algoritma Penyulitan Data Antarabangsa) telah dibangunkan oleh K. Lai dan D. Massey pada akhir 1980-an. Ia adalah sifir yang terdiri daripada blok berulang 64-bit dengan kunci 128-bit dan lapan pusingan. Perlu diingatkan bahawa, tidak seperti algoritma penyulitan yang kami bincangkan sebelum ini, IDEA tidak berdasarkan rangkaian Feishtel, walaupun proses penyahsulitan adalah serupa dengan proses penyulitan. IDEA direka bentuk agar mudah dilaksanakan dalam kedua-dua perisian dan perkakasan. Selain itu, keselamatan IDEA adalah berdasarkan penggunaan tiga jenis operasi aritmetik yang tidak serasi pada perkataan 16-bit.

Salah satu prinsip di sebalik penciptaan IDEA adalah untuk menjadikan kriptanalisis pembezaannya sesukar mungkin, yang pada masa ini dinyatakan dengan ketiadaan titik lemah secara algebra dalam algoritma. Walaupun kelas besar (2,51) kunci lemah yang ditemui oleh "Daemen" tertentu secara teori boleh menjejaskan algoritma, IDEA kekal sebagai algoritma yang agak boleh dipercayai, kerana terdapat 2,128 kunci yang mungkin, yang menjadikannya sukar untuk dipecahkan.

RC5 ialah sifir blok yang agak pantas dibangunkan oleh Ronald Linn Rivest khusus untuk Keselamatan Data RSA. Algoritma ini adalah parametrik, iaitu bloknya, panjang kunci dan bilangan hantaran (pusingan) adalah berubah-ubah.

Saiz blok boleh menjadi 32, 64 atau 128 bit. Bilangan pas boleh berbeza dari 0 hingga 2048 bit. Parametrik jenis ini menjadikan RC5 algoritma yang luar biasa fleksibel dan cekap dalam kelasnya.

Kesederhanaan luar biasa RC5 menjadikannya mudah digunakan. RC5, dengan saiz blok 64 bit dan 12 atau lebih pas, memberikan rintangan yang baik terhadap analisis kriptografi pembezaan dan linear.

Penyulitan asimetri

Tidak seperti algoritma penyulitan simetri, yang menggunakan kunci yang sama untuk kedua-dua penyahsulitan dan penyulitan, algoritma penyulitan asimetri menggunakan kunci awam (untuk penyulitan) dan peribadi atau rahsia (untuk penyahsulitan).

Dalam amalan, satu kunci dipanggil rahsia dan satu lagi dipanggil awam. Kunci persendirian dirahsiakan oleh pemilik pasangan kunci. Kunci awam dihantar secara terbuka dalam teks yang jelas. Perlu diingatkan bahawa jika pelanggan mempunyai satu daripada sepasang kunci, maka kunci lain tidak boleh dikira.

Kunci awam dikira daripada rahsia: kl = f(k2). Algoritma penyulitan asimetri adalah berdasarkan penggunaan fungsi sehala. Secara takrif, fungsi y = f(x) adalah satu arah jika ia boleh dikira dengan mudah untuk semua nilai yang mungkin bagi x, dan untuk kebanyakan nilai yang mungkin bagi y adalah agak sukar untuk mengira nilai x yang mana y = f(x) .

Contoh fungsi sehala ialah pendaraban dua nombor besar: N = S x G. Dengan sendirinya, dari sudut matematik, pendaraban sedemikian adalah operasi mudah. Walau bagaimanapun, operasi songsang (penguraian N kepada dua faktor besar), juga dipanggil pemfaktoran, mengikut anggaran masa moden, adalah masalah matematik yang agak kompleks.

Baiklah, mari kita lihat beberapa algoritma penyulitan asimetri.

Algoritma Diffie-Hellman. Pada tahun 1976, Whitfield Diffie dan Martin Hellman membangunkan sistem penyulitan kunci awam mereka. Sistem Diffie-Hellman dibangunkan untuk menyelesaikan masalah pengagihan kunci apabila menggunakan sistem penyulitan kunci rahsia. Ideanya adalah untuk menggunakan kaedah selamat untuk bersetuju dengan kunci rahsia tanpa berkongsi kunci dengan cara lain. Oleh itu, adalah perlu untuk mencari cara selamat untuk mendapatkan kunci persendirian menggunakan kaedah komunikasi yang sama yang mana keselamatan itu direka bentuk. Intipati algoritma Diffie-Hellman adalah seperti berikut. Mari kita anggap bahawa dua titik (S1 dan S2) perlu mewujudkan sambungan selamat antara mereka sendiri, yang mana perlu untuk bersetuju dengan kunci penyulitan.

¦ S1 dan S2 menerima dua integer besar a dan b, dan 1< a < b.

¦ S1 memilih nombor rawak i dan mengira I = ai? mod b. S1 menghantar I kepada pelanggan S2.

¦ S2 memilih nombor rawak j dan mengira J = aj? mod b. S2 menghantar J kepada pelanggan S1.

¦ S1 mengira k1 = Ji? mod b.

¦ S2 mengira k2 = Ij? mod b.

Kita ada k1 = k2 = ai ? j x mod b, oleh itu k1 dan k2 adalah kunci rahsia yang bertujuan untuk digunakan dalam penghantaran data lain.

Walaupun kita menganggap bahawa penyerang entah bagaimana berjaya mendengar trafik yang dihantar, dia akan mengetahui a, b, I dan J. Walau bagaimanapun, i dan j kekal rahsia. Tahap keselamatan sistem bergantung kepada kesukaran mencari i untuk I = ai yang diketahui? mod b. Masalah ini dipanggil masalah logaritma diskret dan dianggap sangat sukar (iaitu, hampir mustahil untuk diselesaikan menggunakan peralatan pengkomputeran moden) jika bilangannya sangat besar. Oleh itu, a dan b mesti dipilih dengan teliti. Sebagai contoh, kedua-dua b dan (b – 1)/2 mestilah perdana dan sekurang-kurangnya 512 bit panjang. Panjang nombor yang disyorkan ialah 1024 bit.

Algoritma RSA dibangunkan pada tahun 1978 oleh tiga pengarang bersama dan mendapat namanya daripada huruf pertama nama keluarga pemaju (Rivest, Shamir, Adleman). Kekuatan algoritma adalah berdasarkan kesukaran memfaktorkan nombor besar dan mengira logaritma diskret. Parameter utama algoritma RSA ialah modul sistem N, yang digunakan untuk menjalankan semua pengiraan dalam sistem, dan N = R x S (R dan S ialah nombor besar perdana rawak rahsia, biasanya daripada dimensi yang sama).

Kunci rahsia k2 dipilih secara rawak dan mesti memenuhi syarat berikut: 1< k2 < F(N) и НОД (k2, F(N))= 1, где НОД – наибольший общий делитель. Иными словами, k1 должен быть взаимно простым со значением функции Эйлера F(N) , причем последнее равно количеству положительных целых чисел в диапазоне от 1 до N, взаимно простых с N, и вычисляется как F(N) = (R – 1) ? (S – 1) .

Kunci awam kl dikira daripada hubungan (k2 x kl) = 1? mod F(N). Untuk tujuan ini, algoritma Euclidean umum (algoritma untuk mengira pembahagi sepunya terbesar) digunakan. Penyulitan blok data M menggunakan algoritma RSA dilakukan seperti berikut: C = Mkl? mod N. Memandangkan dalam sistem kripto sebenar menggunakan RSA nombor k1 adalah sangat besar (pada masa ini dimensinya boleh mencapai sehingga 2048 bit), pengiraan langsung Mk1 adalah tidak realistik. 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 kl yang diketahui. Walau bagaimanapun, mempunyai kunci rahsia k2, menggunakan transformasi mudah anda boleh mengira M = Ck2? mod N. Jelas sekali, sebagai tambahan kepada kunci rahsia itu sendiri, adalah perlu untuk memastikan kerahsiaan parameter R dan S. Jika penyerang memperoleh nilainya, dia akan dapat mengira kunci rahsia k2.

Sistem kripto RSA kini digunakan dalam pelbagai jenis produk, platform dan industri. Ia cukup untuk mengingati penggunaannya dalam sistem pengendalian Microsoft, Apple, Sun dan Novell untuk membayangkan "skala besar" RSA. Dalam perkakasan, algoritma RSA digunakan secara meluas dalam telefon selamat, pada kad rangkaian Ethernet, pada kad pintar dan dalam peralatan kriptografi Zaxus (Racal). Di samping itu, algoritma disertakan dalam semua protokol utama untuk komunikasi Internet selamat, termasuk S/MIME, SSL dan S/WAN, dan juga digunakan di banyak agensi kerajaan, makmal kerajaan dan universiti. Pada musim luruh tahun 2000, teknologi yang menggunakan algoritma RSA telah dilesenkan oleh lebih daripada 700 syarikat.

Algoritma ElGamal. ElGamal membangunkan versi sistem Diffie-Hellman. Dia memperhalusi algoritma ini dan menghasilkan satu algoritma untuk penyulitan dan satu untuk pengesahan. Algoritma ElGamal tidak dipatenkan (tidak seperti RSA) dan dengan itu menjadi alternatif yang lebih murah kerana tiada yuran pelesenan diperlukan. Memandangkan algoritma ini berdasarkan sistem Diffie-Hellman, keteguhannya dipastikan oleh kerumitan menyelesaikan masalah logaritma diskret yang sama.

Algoritma Tandatangan Digital. Algoritma DSA telah dibangunkan oleh kerajaan AS sebagai algoritma standard untuk tandatangan digital (lihat Bahagian 2.3). Algoritma ini berdasarkan sistem ElGamal, tetapi hanya membenarkan pengesahan. Kerahsiaan tidak dipastikan oleh algoritma ini.

Penyulitan menggunakan lengkung elips. Lengkung eliptik telah dicadangkan untuk digunakan dalam sistem penyulitan pada tahun 1985. Sistem penyulitan lengkung eliptik (ECC) bergantung pada masalah matematik yang berbeza daripada pemfaktoran atau logaritma diskret. Masalah ini adalah seperti berikut: diberi dua titik A dan B pada lengkung elips, sehingga A = kB, adalah sangat sukar untuk menentukan integer k. Walaupun agak "eksotik", menggunakan ECC berbanding algoritma RSA atau Diffie-Hellman dalam beberapa kes memberikan kelebihan yang ketara. Kelebihan terbesar ini ialah kunci boleh menjadi lebih pendek (disebabkan oleh kerumitan tugas). Dan ini tanpa kehilangan stamina! Akibatnya, pengiraan dilakukan dengan lebih pantas sambil mengekalkan tahap keselamatan yang sama. Oleh itu, keselamatan yang disediakan oleh kunci ECC 160-bit boleh bersamaan dengan kunci RSA 1024-bit.

Kebaikan dan keburukan kaedah penyulitan simetri dan asimetri

Hari ini, dalam bidang keselamatan maklumat, sistem dengan kedua-dua penyulitan simetri dan asimetri diwakili secara meluas. Setiap algoritma mempunyai kelebihan dan kekurangannya sendiri, yang tidak boleh diabaikan.

Kelemahan utama penyulitan simetri ialah keperluan untuk pemindahan kunci awam - "dari tangan ke tangan". Kelemahan ini tidak boleh diabaikan, kerana dengan sistem sedemikian hampir mustahil untuk menggunakan penyulitan simetri dengan bilangan peserta yang tidak terhad. Jika tidak, algoritma penyulitan simetri boleh dianggap agak canggih dan berkesan, dengan bilangan keburukan yang minimum, terutamanya dengan latar belakang penyulitan asimetri. Kelemahan yang terakhir tidak begitu ketara untuk mengatakan bahawa algoritma itu entah bagaimana buruk, tetapi bagaimanapun.

Kelemahan pertama penyulitan asimetri ialah kelajuan rendah penyulitan dan operasi penyahsulitan, yang disebabkan oleh keperluan untuk memproses operasi intensif sumber. Akibatnya, keperluan untuk komponen perkakasan sistem sedemikian selalunya tidak boleh diterima.

Kelemahan lain adalah teori semata-mata, dan ia terletak pada fakta bahawa kekuatan matematik algoritma penyulitan asimetri masih belum terbukti.

Masalah tambahan timbul apabila melindungi kunci awam daripada penggantian, kerana ia cukup untuk menggantikan kunci awam pengguna sah untuk menyahsulitnya dengan mudah dengan kunci peribadi anda.

Walau apa pun kelemahan dan kelebihan penyulitan asimetri dan simetri, hanya perlu ambil perhatian bahawa penyelesaian yang paling maju ialah penyelesaian yang berjaya menggabungkan algoritma kedua-dua jenis penyulitan.

2.2. Tandatangan digital elektronik

Terima kasih kepada perkembangan pesat bidang teknologi maklumat, teknologi telah memasuki kehidupan kita dan menjadi biasa, tanpanya dunia moden sudah sukar dibayangkan. Salah satu teknologi ini, yang, dengan cara ini, menjaga keselamatan transaksi yang dilakukan dalam talian, ialah tandatangan digital elektronik (EDS). Penggunaannya sebagai cara untuk mengenal pasti dan mengesahkan kepentingan undang-undang dokumen menjadi standard dalam dunia digital.

Tandatangan digital elektronik (EDS) ialah keperluan dokumen elektronik yang bertujuan untuk mengesahkan sumber data dan melindungi dokumen elektronik ini daripada pemalsuan. Tandatangan digital elektronik ialah jujukan aksara yang diperoleh hasil daripada transformasi kriptografi data elektronik. Tandatangan digital elektronik ditambahkan pada blok data, membolehkan penerima blok mengesahkan sumber dan integriti data dan melindungi daripada pemalsuan. EDS digunakan sebagai analog tandatangan tulisan tangan.

Terima kasih kepada tandatangan digital, banyak dokumen - pasport, undi, wasiat, perjanjian pajakan - kini boleh wujud dalam bentuk elektronik, dan mana-mana versi kertas hanya akan menjadi salinan asal elektronik.

Istilah asas yang digunakan apabila bekerja dengan tandatangan digital

Kunci peribadi– ini adalah beberapa maklumat sepanjang 256 bit, yang disimpan di tempat yang tidak boleh diakses oleh orang lain pada cakera liut, kad pintar, memori sentuh. Kunci persendirian hanya berfungsi seiring dengan kunci awam.

Kunci awam digunakan untuk mengesahkan tandatangan digital fail dokumen yang diterima; secara teknikal ini adalah beberapa maklumat yang panjangnya 1024 bit. Kunci awam hanya berfungsi apabila dipasangkan dengan kunci persendirian.

Kod pengesahan– kod panjang tetap yang dijana daripada data menggunakan kunci rahsia dan ditambah pada data untuk mengesan fakta perubahan dalam data yang disimpan atau dihantar melalui saluran komunikasi.

Alat tandatangan digital elektronik– perkakasan dan/atau perisian yang menyediakan:

¦ penciptaan tandatangan digital elektronik dalam dokumen elektronik menggunakan kunci persendirian tandatangan digital elektronik;

¦ pengesahan menggunakan kunci awam tandatangan digital elektronik tentang ketulenan tandatangan digital dalam dokumen elektronik;

¦ penciptaan kunci peribadi dan awam tandatangan digital elektronik.

EDS adalah mudah

Mari kita mulakan dengan fakta bahawa tandatangan digital bukanlah "binatang" sama sekali, dan tiada pengetahuan, kemahiran atau kebolehan khusus diperlukan untuk menggunakannya.

Kunci kriptografi awam dan peribadi (rahsia) yang unik dijana untuk setiap pengguna tandatangan digital yang mengambil bahagian dalam pertukaran dokumen elektronik.

Elemen utama ialah kunci rahsia, yang digunakan untuk menyulitkan dokumen elektronik dan menjana tandatangan digital elektronik. Kunci rahsia kekal dengan pengguna dan dikeluarkan kepadanya pada medium yang berasingan: ia boleh menjadi cakera liut, kad pintar atau medium lain. Ia mesti dirahsiakan daripada pengguna rangkaian lain.

Pihak Berkuasa Pensijilan (pihak ketiga, atau apa yang dipanggil "arbiter") mengandungi pendua kunci awam dan perpustakaan sijil kunci awam telah dibuat. Pihak Berkuasa Pensijilan memastikan pendaftaran dan penyimpanan selamat kunci awam untuk mengelakkan herotan atau percubaan pemalsuan.

Apabila pengguna memasang tandatangan digital elektroniknya di bawah dokumen elektronik, berdasarkan kunci rahsia tandatangan digital dan kandungan dokumen, sejumlah besar tertentu dijana melalui transformasi kriptografi, yang merupakan tandatangan digital elektronik pengguna ini di bawah ini dokumen tertentu. Nombor ini ditambah pada penghujung dokumen elektronik atau disimpan dalam fail berasingan. Maklumat berikut disertakan dalam tandatangan:

¦ nama fail kunci awam tandatangan;

¦ maklumat tentang orang yang membentuk tandatangan;

¦ tarikh pembentukan tandatangan.

Pengguna yang telah menerima dokumen yang ditandatangani dan mempunyai kunci awam tandatangan digital pengirim, berdasarkannya, melakukan transformasi kriptografi terbalik, yang memastikan pengesahan tandatangan digital elektronik pengirim. Jika tandatangan digital di bawah dokumen adalah betul, ini bermakna dokumen itu sebenarnya telah ditandatangani oleh pengirim dan tiada perubahan telah dibuat pada teks dokumen tersebut. Jika tidak, mesej akan dikeluarkan bahawa sijil penghantar tidak sah.

Pengurusan utama

Masalah penting dalam semua kriptografi kunci awam, termasuk sistem tandatangan digital, ialah pengurusan kunci awam. Adalah perlu untuk memastikan bahawa mana-mana pengguna mempunyai akses kepada kunci awam sebenar mana-mana pengguna lain, melindungi kunci ini daripada digantikan oleh penyerang, dan juga mengatur pembatalan kunci jika ia terjejas.

Masalah melindungi kunci daripada penggantian diselesaikan dengan bantuan sijil. Sijil tersebut membolehkan anda mengesahkan data yang terkandung di dalamnya mengenai pemilik dan kunci awamnya dengan tandatangan mana-mana orang yang dipercayai. Sistem sijil berpusat (contohnya, PKI - Infrastruktur Kunci Awam) menggunakan pihak berkuasa sijil yang diselenggara oleh organisasi yang dipercayai. Dalam sistem terdesentralisasi (contohnya, PGP - Pretty Good Privacy), rangkaian kepercayaan dibina oleh setiap pengguna dengan menandatangani silang sijil orang yang dikenali dan dipercayai.

Pengurusan utama dikendalikan oleh pusat pengedaran sijil. Dengan menghubungi pusat sedemikian, pengguna boleh mendapatkan sijil untuk pengguna, dan juga menyemak sama ada kunci awam tertentu masih belum dibatalkan.

EDS di bawah mikroskop

Mari kita lihat lebih dekat prinsip operasi tandatangan digital. Skim tandatangan elektronik biasanya mengandungi komponen berikut:

¦ algoritma untuk menjana pasangan kunci pengguna;

¦ fungsi pengiraan tandatangan;

¦ fungsi pengesahan tandatangan.

Fungsi mengira tandatangan berdasarkan dokumen dan kunci rahsia pengguna mengira tandatangan itu sendiri. Bergantung pada algoritma, fungsi pengiraan tandatangan boleh menjadi deterministik atau kebarangkalian. Fungsi deterministik sentiasa mengira tandatangan yang sama daripada data input yang sama. Fungsi kebarangkalian memperkenalkan unsur rawak ke dalam tandatangan, yang meningkatkan kekuatan kriptografi algoritma tandatangan digital. Walau bagaimanapun, litar kebarangkalian memerlukan sumber rawak yang boleh dipercayai (sama ada penjana hingar perkakasan atau penjana bit pseudorandom selamat secara kriptografi), yang merumitkan pelaksanaan.

Pada masa ini, skema deterministik praktikalnya tidak digunakan. Malahan pada mulanya algoritma deterministik kini telah mengalami pengubahsuaian yang mengubahnya menjadi probabilistik (contohnya, dalam algoritma tandatangan RSA, versi kedua PKCS#1 standard tambah data pra-transformasi (OAEP), yang termasuk, antara lain, hingar. ).

Fungsi pengesahan tandatangan menyemak sama ada ia sepadan dengan dokumen yang diberikan dan kunci awam pengguna. Kunci awam pengguna tersedia secara terbuka, jadi sesiapa sahaja boleh mengesahkan tandatangan pada dokumen tertentu.

Memandangkan dokumen yang ditandatangani adalah panjang berubah-ubah (dan agak besar), dalam skim tandatangan digital tandatangan selalunya diletakkan bukan pada dokumen itu sendiri, tetapi pada cincangnya. Fungsi cincang kriptografi digunakan untuk mengira cincang, yang memastikan perubahan pada dokumen dikesan apabila tandatangan disahkan. Fungsi cincang bukan sebahagian daripada algoritma tandatangan digital, jadi sebarang fungsi cincang yang boleh dipercayai boleh digunakan dalam skema. Apakah hash?

Hashing ialah transformasi tatasusunan data input kepada nombor pendek dengan panjang tetap (dipanggil cincang atau kod cincang), supaya, di satu pihak, nombor ini jauh lebih pendek daripada data asal, tetapi, sebaliknya , berkemungkinan besar sepadan secara unik dengannya .

Jom sambung. Algoritma tandatangan digital dibahagikan kepada dua kelas besar:

¦ tandatangan digital biasa;

¦ tandatangan digital dengan pemulihan dokumen.

Tandatangan digital biasa mesti dilampirkan pada dokumen yang ditandatangani. Kelas ini termasuk, sebagai contoh, algoritma berdasarkan lengkung eliptik (ECDSA, GOST R34.10-2001, DSTU 4145-2002). Tandatangan digital dengan pemulihan dokumen mengandungi dokumen yang ditandatangani: semasa proses pengesahan tandatangan, badan dokumen dikira secara automatik. Kelas ini termasuk salah satu algoritma yang paling popular, RSA, yang akan kami pertimbangkan di penghujung bahagian.

Adalah perlu untuk membezakan antara tandatangan digital elektronik dan kod pengesahan mesej, walaupun terdapat persamaan tugas yang diselesaikan (memastikan integriti dokumen dan kemustahilan untuk menolak pengarang). Algoritma tandatangan digital tergolong dalam kelas algoritma asimetri, manakala kod ketulenan dikira menggunakan skema simetri.

Kita boleh mengatakan bahawa tandatangan digital menyediakan jenis perlindungan berikut.

¦ Pengenalpastian sumber dokumen. Bergantung pada butiran definisi dokumen, medan seperti "pengarang", "perubahan dibuat", "cap masa", dll. boleh ditandatangani.

¦ Perlindungan terhadap perubahan dokumen. Sebarang perubahan yang tidak disengajakan atau disengajakan pada dokumen (atau tandatangan) akan menukar cincang dan oleh itu membatalkan tandatangan.

Agak jelas bahawa tandatangan digital itu tidak sempurna sama sekali. Ancaman tandatangan digital berikut adalah mungkin, di mana penyerang boleh:

¦ memalsukan tandatangan untuk dokumen yang dipilih olehnya;

¦ pilih dokumen untuk tandatangan yang diberikan supaya tandatangan itu sepadan dengannya;

¦ memalsukan tandatangan untuk sekurang-kurangnya beberapa dokumen;

¦ gantikan kunci awam (lihat subseksyen “Pengurusan Kunci” bahagian 2.2) dengan kunci anda sendiri, menyamar sebagai pemilik;

¦ menipu pemilik untuk menandatangani dokumen, contohnya, menggunakan protokol tandatangan buta;

¦ menandatangani mana-mana dokumen bagi pihak pemilik kunci jika kunci persendirian telah dicuri.

Dengan menggunakan fungsi cincang yang kuat, adalah sukar dari segi pengiraan untuk mencipta dokumen palsu dengan cincang yang sama seperti yang tulen. Walau bagaimanapun, ancaman ini mungkin berlaku disebabkan oleh kelemahan dalam pencincangan atau algoritma tandatangan tertentu atau ralat dalam pelaksanaannya.

RSA sebagai asas tandatangan digital

Bukan rahsia lagi bahawa RSA (digunakan untuk mencipta tandatangan digital dengan pemulihan dokumen) telah mendapat populariti yang paling popular dalam kalangan algoritma kriptografi tandatangan digital.

Pada awal tahun 2001, sistem kriptografi RSA adalah sistem kriptografi asimetri yang paling banyak digunakan (sistem kriptografi kunci awam) dan sering dipanggil piawaian de facto. Tanpa mengira piawaian rasmi, kewujudan piawaian tersebut amat penting untuk pembangunan e-dagang dan ekonomi secara amnya. Sistem kunci awam bersatu membolehkan pertukaran dokumen dengan tandatangan digital elektronik antara pengguna di negara yang berbeza menggunakan perisian yang berbeza pada platform yang berbeza; Keupayaan ini penting untuk pembangunan e-dagang.

Penyebaran sistem RSA telah mencapai tahap sehingga ia diambil kira semasa membuat piawaian baharu. Yang pertama dalam pembangunan piawaian tandatangan digital ialah piawaian ANSI X9.30, yang menyokong Piawaian Tandatangan Digital pada tahun 1997. Setahun kemudian, ANSI X9.31 telah diperkenalkan, yang memberi penekanan pada tandatangan digital RSA, yang bertindak balas kepada situasi sebenar, khususnya untuk institusi kewangan.

Sehingga baru-baru ini, halangan utama untuk menggantikan aliran kerja kertas dengan yang elektronik ialah kelemahan pengesahan selamat; hampir di mana-mana kontrak, cek, surat rasmi, dokumen undang-undang masih dilaksanakan di atas kertas.

Kemunculan tandatangan digital berasaskan RSA telah menjadikan transaksi elektronik agak selamat dan boleh dipercayai.

Algoritma RSA mengandaikan bahawa mesej yang disulitkan yang dihantar boleh dibaca oleh penerima dan hanya olehnya. Seperti yang dinyatakan di atas, algoritma ini menggunakan dua kunci - awam dan rahsia. Algoritma ini juga menarik dalam kes di mana sebilangan besar subjek (N) mesti berkomunikasi dengan cara semua-ke-semua. Dalam kes skim penyulitan simetri, setiap subjek mesti menghantar kunci mereka kepada semua peserta lain dalam pertukaran, dan jumlah bilangan kunci yang digunakan akan agak besar untuk nilai N yang besar. Penggunaan algoritma asimetri hanya memerlukan pengagihan kunci awam oleh semua peserta, jumlah bilangan kunci adalah sama dengan N.

Mesej diwakili sebagai nombor M. Penyulitan dilakukan menggunakan fungsi awam f(M) dan hanya penerima tahu cara melaksanakan operasi f-1. Penerima memilih dua nombor perdana besar p dan q, yang dirahsiakannya. Dia mengisytiharkan n = pq dan nombor d, c (d, p – 1) = (d, q – 1) = 1 (satu cara yang mungkin untuk memenuhi syarat ini ialah memilih d lebih besar daripada p/2 dan q/2) . Penyulitan dilakukan menggunakan formula: f(M) = Md x mod n, di mana M dan f(M) adalah kedua-duanya< n – 1 . Оно может быть вычислено за разумное время, даже если M, d и n содержат весьма большое количество знаков. Адресат вычисляет M на основе M d , используя свое знание p и q. Если dc ? (p _ 1) 1, тогда (M d) e? p 1.

Teks asal M diperolehi oleh penerima daripada F(M) yang disulitkan melalui transformasi: M = (F(M)) e(mod pq). Di sini, kedua-dua teks asal dan teks yang disulitkan dianggap sebagai nombor binari yang panjang.

Begitu juga (Md) e? q M, jika dc ? (q _ 1) 1. e memenuhi dua syarat ini jika cd ? (p _ 1)(q _ 1) 1 . Kita boleh biarkan e = x apabila x ialah penyelesaian kepada persamaan dx + (p – 1)(q – 1)y = 1.

Sejak (M d) e M boleh dibahagi dengan p dan q, dan ia juga boleh dibahagikan dengan pq. Oleh itu, kita boleh menentukan M dengan mengetahui Md, mengira nilainya kepada kuasa e, dan menentukan baki apabila dibahagikan dengan pq. Untuk mengekalkan kerahsiaan, adalah penting bahawa, mengetahui n, adalah mustahil untuk mengira p dan q. Jika n mengandungi 100 digit, mencari sifir melibatkan mencuba kira-kira 1050 kombinasi. Masalah ini telah dikaji selama kira-kira 100 tahun.

Secara teorinya, ia boleh diandaikan bahawa adalah mungkin untuk melaksanakan operasi f-l tanpa mengira p dan q. Tetapi dalam apa jua keadaan, tugas ini tidak mudah, dan pemaju menganggapnya sukar untuk difaktorkan.

Katakan kita mempunyai teks sifir f(M) dan teks biasa M dan ingin mencari nilai p dan q. Adalah mudah untuk menunjukkan bahawa data awal sedemikian tidak mencukupi untuk menyelesaikan masalah - anda perlu mengetahui semua kemungkinan nilai Mi.

Mari kita jelaskan penggunaan algoritma RSA dengan contoh khusus. Mari kita pilih dua nombor perdana p = 7; q = l7 (dalam amalan nombor ini berkali-kali lebih panjang). Dalam kes ini, n = pq akan sama dengan ll9. Sekarang kita perlu memilih e. Mari kita pilih e = 5. Langkah seterusnya melibatkan pembentukan nombor d, supaya de = 1 x mod [(p – 1)(q – 1)]. d = 77 (algoritma Euclidean lanjutan digunakan). d ialah kunci rahsia, dan e dan n mencirikan kunci awam. Biarkan teks yang perlu kita enkripsi diwakili oleh M = 19. C = Me x mod n. Kami mendapat teks sifir C = 66. "Teks" ini boleh dihantar kepada penerima yang sesuai. Penerima menyahsulit mesej yang diterima menggunakan M = Cd x mod n dan C = 66. Hasilnya ialah M = 19.

Dalam amalan, kunci awam boleh diletakkan dalam pangkalan data khas. Jika anda perlu menghantar mesej yang disulitkan kepada pasangan anda, anda boleh meminta kunci awamnya dahulu. Setelah menerimanya, anda boleh menjalankan program penyulitan dan menghantar hasil kerjanya kepada penerima.

Adakah mungkin untuk menggodam tandatangan digital elektronik?

Menggodam tandatangan digital elektronik sebenarnya berpunca daripada menggodam algoritma penyulitan. Dalam kes ini, kami akan mempertimbangkan kemungkinan pilihan penggodaman menggunakan algoritma RSA sebagai contoh.

Terdapat beberapa cara untuk menggodam RSA. Serangan yang paling berkesan ialah mencari kunci persendirian yang sepadan dengan kunci awam yang diperlukan. Ini akan membolehkan penyerang membaca semua mesej yang disulitkan dengan kunci awam dan memalsukan tandatangan. Serangan sedemikian boleh dilakukan dengan mencari faktor utama (faktor) modulus am n – p dan q. Berdasarkan p, q dan e (eksponen am), penyerang boleh mengira dengan mudah eksponen tertentu d. Kesukaran utama adalah mencari faktor utama (pemfaktoran) n. Keselamatan RSA bergantung pada pemfaktoran, yang merupakan masalah sukar tanpa penyelesaian yang cekap.

Sebenarnya, masalah memulihkan kunci rahsia adalah bersamaan dengan masalah pemfaktoran modulus: anda boleh menggunakan d untuk mencari faktor n, dan sebaliknya: anda boleh menggunakan n untuk mencari d. Perlu diingatkan bahawa penambahbaikan dalam peralatan pengkomputeran sahaja tidak akan mengurangkan kekuatan sistem kriptografi RSA jika kunci mempunyai panjang yang mencukupi. Malah, menambah baik peralatan meningkatkan kekuatan sistem kripto.

Satu lagi cara untuk memecahkan RSA ialah mencari kaedah untuk mengira punca e mod n. Oleh kerana C = Me x mod n, maka punca darjah e mod n ialah mesej M. Dengan mengira punca, anda boleh membuka mesej yang disulitkan dan memalsukan tandatangan tanpa mengetahui kunci rahsia. Serangan ini tidak bersamaan dengan pemfaktoran, tetapi pada masa ini tiada kaedah diketahui yang boleh memecahkan RSA dengan cara ini. Walau bagaimanapun, dalam kes khas, apabila agak banyak mesej berkaitan disulitkan berdasarkan penunjuk yang sama dengan nilai yang agak kecil, adalah mungkin untuk membuka mesej. Serangan ini adalah satu-satunya cara untuk menyahsulit semua mesej yang disulitkan dengan kunci RSA yang diberikan.

Terdapat jenis serangan lain yang, bagaimanapun, membenarkan hanya satu mesej untuk dinyahsulit dan tidak membenarkan penyerang membuka mesej lain yang disulitkan dengan kunci yang sama. Di samping itu, kemungkinan menyahsulit sebahagian daripada mesej yang disulitkan telah dikaji.

Serangan paling mudah pada satu mesej ialah serangan ke atas plaintext yang dimaksudkan. Penyerang, yang mempunyai teks yang disulitkan, menganggap bahawa mesej itu mengandungi beberapa teks tertentu (contohnya, "Stirlitz to Playschner"). Ia kemudian menyulitkan teks yang dimaksudkan dengan kunci awam penerima dan membandingkan teks yang terhasil dengan teks sifir sedia ada. Serangan ini boleh dicegah dengan menambahkan beberapa bit rawak pada penghujung mesej. Satu lagi serangan mesej tunggal berlaku apabila pengirim menghantar mesej yang sama M kepada tiga koresponden, setiap satunya menggunakan eksponen biasa e = 3. Mengetahui perkara ini, penyerang boleh memintas mesej ini dan menyahsulit mesej M.

Serangan ini juga boleh dicegah dengan memasukkan beberapa bit rawak ke dalam mesej sebelum setiap penyulitan. Di samping itu, terdapat beberapa jenis serangan teks sifir (atau serangan mesej individu untuk memalsukan tandatangan) di mana penyerang mencipta beberapa teks sifir dan memperoleh plaintext yang sepadan, contohnya dengan menipu pengguna yang log masuk untuk menyahsulit mesej palsu. Sudah tentu, terdapat juga serangan yang tidak ditujukan kepada sistem kripto secara langsung, tetapi pada kelemahan keseluruhan sistem komunikasi secara keseluruhan. Serangan sedemikian tidak boleh dianggap sebagai penggodaman RSA, kerana ia tidak menunjukkan kelemahan algoritma, sebaliknya kelemahan pelaksanaan tertentu. Sebagai contoh, penyerang boleh mendapatkan kunci rahsia jika ia tidak disimpan dengan keselamatan yang betul. Perlu ditekankan bahawa untuk perlindungan lengkap tidak cukup untuk melindungi pelaksanaan algoritma RSA dan mengambil langkah keselamatan matematik, iaitu, menggunakan kunci dengan panjang yang mencukupi, kerana dalam amalan serangan ke atas peringkat pengurusan utama RSA yang tidak dilindungi. sistem mempunyai kejayaan yang paling besar.

2.3. Teknologi pengesahan moden. Kad pintar

Kad pintar, seperti kad memori, ialah kad plastik dengan cip terbina dalam (ICC, kad litar bersepadu). Walau bagaimanapun, kad pintar ialah peranti yang lebih kompleks yang mengandungi mikropemproses dan sistem pengendalian yang mengawal peranti dan akses kepada objek dalam ingatannya. Di samping itu, kad pintar biasanya mempunyai keupayaan untuk melakukan pengiraan kriptografi.

Tujuan kad pintar ialah pengesahan pengguna satu dan dua faktor, menyimpan maklumat dan menjalankan operasi kriptografi dalam persekitaran yang dipercayai.

Izinkan saya mengingatkan pembaca kami bahawa pengesahan dua faktor melibatkan penggunaan dua atribut pengenalan, contohnya: kata laluan dan cap jari, kad pintar dan retina, dsb.

Kad pintar semakin digunakan dalam pelbagai bidang - daripada sistem simpanan kepada kad kredit dan debit, kad pelajar dan telefon GSM.

Bergantung pada cip terbina dalam, semua kad pintar dibahagikan kepada beberapa jenis utama, yang berbeza secara radikal dalam fungsi yang mereka lakukan:

¦ kad memori;

¦ kad mikropemproses;

¦ kad dengan logik kriptografi.

Kad memori direka untuk menyimpan maklumat. Memori pada jenis kad ini mungkin bebas untuk diakses atau mungkin mengandungi logik kawalan akses ke memori kad untuk menyekat data membaca dan menulis.

Kad mikropemproses juga direka untuk menyimpan maklumat, tetapi, tidak seperti yang konvensional, ia mengandungi program khas atau sistem pengendalian kecil yang membolehkan anda menukar data menggunakan algoritma tertentu dan melindungi maklumat yang disimpan pada kad semasa penghantaran, membaca dan menulis.

Kad dengan logik kriptografi digunakan dalam sistem keselamatan maklumat untuk mengambil bahagian secara langsung dalam proses penyulitan data atau penjanaan kunci kriptografi, tandatangan digital elektronik dan maklumat lain yang diperlukan untuk pengendalian sistem.

Pembaca Kad Pintar

Walaupun namanya - pembaca kad pintar - kebanyakan peranti akhir, atau peranti antara muka (IFD, Peranti Antara Muka), mampu membaca dan menulis, jika keupayaan kad pintar dan hak akses membenarkan. Pembaca kad pintar boleh menyambung ke komputer melalui port bersiri, slot PCMCIA atau bas bersiri USB. Mengikut kaedah membaca maklumat, kad dibahagikan kepada yang berikut:

¦ hubungi;

¦ tanpa sentuhan;

- dengan antara muka dwi.

Kad kenalan berinteraksi dengan pembaca dengan menyentuh pad kenalan logam kad dengan kenalan pembaca. Kaedah membaca ini mudah dilaksanakan, tetapi meningkatkan kehausan pada kad dengan penggunaan yang kerap. Kad pintar kenalan terdiri daripada tiga bahagian:

¦ kawasan hubungan:

Enam atau lapan kenalan persegi atau bujur;

Kedudukan hubungan dibuat mengikut piawaian ISO-7816;

¦ cip (kad mikropemproses);

¦ tapak plastik.

Pembaca kad pintar boleh disepadukan ke dalam papan kekunci.

Sesetengah pengeluar menghasilkan jenis peranti perkakasan lain yang menyepadukan kad pintar kenalan dengan pembaca kad pintar. Sifat memori dan keupayaan pengkomputeran mereka sama sekali dengan kad pintar. "dongle" perkakasan yang paling popular ialah yang menggunakan port USB. Kekunci USB menarik kepada sesetengah organisasi kerana USB menjadi standard yang semakin biasa dalam komputer baharu: organisasi tidak perlu membeli sebarang pembaca untuk pengguna.

Menggunakan Peranti Pintar dengan Pengesahan Kunci Awam

Kad pintar, kekunci USB dan peranti pintar lain boleh meningkatkan kebolehpercayaan perkhidmatan PKI: kad pintar boleh digunakan untuk menyimpan kunci peribadi pengguna dengan selamat, serta untuk melaksanakan transformasi kriptografi dengan selamat. Sudah tentu, peranti pengesahan pintar tidak menyediakan keselamatan mutlak, tetapi ia menyediakan keselamatan yang jauh melebihi keupayaan komputer meja biasa.

Kunci persendirian boleh disimpan dan digunakan dengan cara yang berbeza, dan pembangun yang berbeza menggunakan pendekatan yang berbeza. Yang paling mudah ialah menggunakan peranti pintar sebagai cakera liut: kad mengeksport kunci peribadi apabila diperlukan, dan operasi kriptografi dilakukan pada stesen kerja. Pendekatan ini bukanlah yang paling sempurna dari sudut keselamatan, tetapi ia agak mudah untuk dilaksanakan dan meletakkan permintaan yang rendah pada peranti pintar. Dua pendekatan lain adalah lebih selamat kerana ia memerlukan peranti pintar untuk melaksanakan operasi kriptografi. Dengan yang pertama, pengguna menjana kunci pada stesen kerja dan menyimpannya dalam memori peranti. Dalam yang kedua, dia menjana kunci menggunakan peranti itu. Dalam kedua-dua kes, sebaik sahaja kunci peribadi disimpan, ia tidak boleh dialih keluar daripada peranti atau diperoleh dengan cara lain.

Menjana pasangan kunci. Menjana kunci di luar peranti. Dalam kes ini, pengguna boleh membuat salinan sandaran kunci peribadi. Jika peranti gagal, hilang, rosak atau musnah, pengguna akan dapat menyimpan kunci peribadi yang sama pada kad baharu. Ini adalah perlu jika pengguna perlu menyahsulit sebarang data, mesej, dsb. yang disulitkan dengan kunci awam yang sepadan, tetapi ini adalah masalah jangka pendek dalam menyediakan pengesahan. Selain itu, kunci peribadi pengguna berisiko dicuri.

Menjana kunci menggunakan peranti

Dalam kes ini, kunci persendirian tidak muncul dalam bentuk yang jelas dan tiada risiko penyerang akan mencuri salinan sandarannya. Satu-satunya cara untuk menggunakan kunci persendirian adalah melalui pemilikan peranti pintar itu. Sebagai yang paling selamat, penyelesaian ini meletakkan permintaan yang tinggi terhadap keupayaan peranti pintar: ia mesti menjana kunci dan menjalankan transformasi kriptografi. Penyelesaian ini juga menganggap bahawa kunci persendirian tidak boleh dipulihkan jika peranti gagal, dsb. Ini adalah sesuatu yang perlu dibimbangkan apabila menggunakan kunci persendirian untuk penyulitan, tetapi bukan di tempat ia digunakan untuk pengesahan, atau dalam perkhidmatan lain yang mempunyai tandatangan digital. digunakan.

Untuk kad pintar, terdapat beberapa piawaian antarabangsa yang mentakrifkan hampir semua sifat kad, daripada saiz, sifat dan jenis plastik kepada kandungan maklumat pada kad, protokol operasi dan format data.

¦ Piawaian ISO-7816 "Kad pengenalan - kad dengan cip dengan kenalan." Ia terdiri daripada enam bahagian yang mengawal ciri fizikal, saiz dan lokasi kenalan, isyarat dan protokol, struktur fail, pengalamatan dan arahan pertukaran.

¦ Piawaian EMV (Europay, MasterCard & Visa). Bahagian pertama dan kedua adalah berdasarkan ISO-7816, dengan bahagian seterusnya menambah definisi pemprosesan transaksi, spesifikasi terminal, dsb.

"Anatomi menakutkan" pintar - adakah mungkin penggodaman?

Menurut statistik objektif, hampir 2 bilion kad pintar dengan cip mikro terbina dalam telah dijual di seluruh dunia pada tahun 2002, dan jualan peranti sedemikian dijangka berkembang pada tahun-tahun akan datang.

Mengapa kad pintar begitu popular? Mungkin, skop penggunaan "peranti" ini sentiasa berkembang: daripada kad bank dan telefon kepada pengecam pasport digital. Pengembangan besar-besaran kad pintar memerlukan lebih daripada sekadar jaminan daripada pengeluar tentang keselamatan teknologi pintar.

Adakah mungkin untuk menggodam kad pintar, dan jika ya, bagaimana untuk melakukannya?

boleh. Menurut statistik objektif yang mengejutkan, sejak kira-kira 1994, hampir semua (termasuk Eropah, dan kemudian Amerika dan Asia) cip kad pintar yang diketahui pada masa itu digunakan dalam sistem televisyen berbayar telah berjaya digodam menggunakan kaedah kejuruteraan terbalik. Adakah anda fikir di mana sistem untuk menonton saluran TV tertutup muncul di rak pasaran popular? Jika mana-mana pembaca tiba-tiba berfikir bahawa menggodam kad pintar bank adalah serupa dengan fiksyen sains, kami berani memberi jaminan bahawa ini tidak begitu. Intinya ialah mereka hanya cuba untuk tidak mendedahkan maklumat terperingkat seperti ini, supaya tidak melanggar reputasi struktur perbankan perkhidmatan.

Mari kita lihat beberapa kaedah yang digunakan pada masa ini untuk bedah siasat. Perhatikan bahawa penggodaman profesional, sebagai peraturan, melibatkan penggunaan gabungan beberapa teknik.

Analisis maklumat daripada saluran sampingan membayangkan bahawa penyerang, menggunakan peralatan khusus, membuang corak elektromagnet sinaran sisi dalam bekalan kuasa, sambungan antara muka, litar pemproses dan nod lain yang terlibat secara langsung atau tidak langsung dalam penjanaan, penukaran atau penghantaran isyarat operasi.

Serangan perisian membayangkan penggunaan antara muka yang paling biasa untuk berinteraksi dengan pemproses kad pintar. Sebagai peraturan, dalam kes ini, penggodaman mungkin disebabkan oleh kehadiran kelemahan yang jelas dalam langkah keselamatan protokol atau algoritma kriptografi.

Teknologi pelaksanaan, atau penderiaan mikro. Dalam kes ini, mikroskop digunakan, dan dengan bantuan mikromanipulator, penyerang mendapat akses terus ke kawasan kerja cip, di mana laluan maklumat direkodkan langkah demi langkah (sedikit demi sedikit).

Teknologi kegagalan teraruh membayangkan penciptaan keadaan operasi yang tidak normal bagi cip untuk membuka saluran potensi akses kepada maklumat yang dilindungi. Sebagai contoh, pada penghujung September 1996, pasukan penyelidik dari Bellcore (pusat penyelidikan syarikat Amerika Bell) melaporkan bahawa potensi kelemahan serius yang bersifat umum telah ditemui dalam peranti kriptografi yang selamat, khususnya dalam kad pintar untuk elektronik. pembayaran (D. Boneh, R. A. DeMillo, R. J. Lipton "Mengenai Kepentingan Memeriksa Protokol Kriptografi untuk Kesalahan"; www.demiLLo.com/PDF/smart.pdf). Pengarang memanggil kaedah serangan mereka "kriptanalisis dalam Kehadiran Kesalahan Perkakasan." Intipati kaedah adalah bahawa ralat dalam pengendalian litar elektronik yang disebabkan oleh pengionan atau penyinaran gelombang mikro membolehkan seseorang membandingkan nilai yang rosak pada output peranti dengan nilai yang jelas betul, dengan itu memulihkan maklumat kriptografi yang disimpan dalam kad pintar.

Sistem kriptografi simetri

Sistem kriptografi simetri(Juga penyulitan simetri, sifir simetri) - kaedah penyulitan di mana kunci kriptografi yang sama digunakan untuk penyulitan dan penyahsulitan. Sebelum penciptaan skema penyulitan asimetri, satu-satunya kaedah yang wujud ialah penyulitan simetri. Kunci algoritma mesti dirahsiakan oleh kedua-dua pihak. Algoritma penyulitan dipilih oleh pihak sebelum pertukaran mesej bermula.

Maklumat asas

Algoritma penyulitan dan penyahsulitan data digunakan secara meluas dalam teknologi komputer dalam sistem untuk menyembunyikan maklumat sulit dan komersial daripada penggunaan berniat jahat oleh pihak ketiga. Prinsip utama dalam mereka adalah syarat bahawa pemancar dan penerima mengetahui algoritma penyulitan terlebih dahulu, serta kunci kepada mesej, tanpa maklumat itu hanyalah satu set simbol yang tidak mempunyai makna.

Contoh klasik algoritma tersebut ialah algoritma kriptografi simetri disenaraikan di bawah:

  • Penyusunan semula yang mudah
  • Pilih atur tunggal mengikut kekunci
  • Pilih atur berganda
  • Permutasi "Petak Ajaib"

Penyusunan semula yang mudah

Pilih atur tanpa kunci mudah ialah salah satu kaedah penyulitan yang paling mudah. Mesej ditulis ke dalam jadual dalam lajur. Selepas teks biasa ditulis dalam lajur, ia dibaca baris demi baris untuk membentuk penyulitan. Untuk menggunakan sifir ini, pengirim dan penerima perlu bersetuju dengan kunci yang dikongsi dalam bentuk saiz jadual. Menggabungkan huruf ke dalam kumpulan tidak termasuk dalam kekunci sifir dan digunakan hanya untuk kemudahan menulis teks karut.

Pilih atur tunggal mengikut kekunci

Kaedah penyulitan yang lebih praktikal dipanggil pilih atur kekunci tunggal sangat serupa dengan yang sebelumnya. Ia berbeza hanya kerana lajur jadual disusun semula mengikut kata kunci, frasa atau set nombor sepanjang garis jadual.

Pilih atur berganda

Untuk keselamatan tambahan, anda boleh menyulitkan semula mesej yang telah disulitkan. Kaedah ini dikenali sebagai pilih atur berganda. Untuk melakukan ini, saiz jadual kedua dipilih supaya panjang baris dan lajurnya berbeza daripada jadual pertama. Adalah lebih baik jika mereka agak prima. Di samping itu, lajur dalam jadual pertama boleh disusun semula, dan baris dalam jadual kedua. Akhir sekali, anda boleh mengisi jadual secara zigzag, ular, lingkaran atau cara lain. Kaedah mengisi jadual sedemikian, jika mereka tidak meningkatkan kekuatan sifir, maka menjadikan proses penyulitan lebih menghiburkan.

Permutasi "Petak ajaib"

Petak ajaib ialah jadual segi empat sama dengan nombor semula jadi berturut-turut daripada 1 tertulis dalam selnya, yang menjumlahkan sehingga nombor yang sama untuk setiap lajur, setiap baris dan setiap pepenjuru. Petak sedemikian digunakan secara meluas untuk memasukkan teks yang disulitkan mengikut penomboran yang diberikan di dalamnya. Jika anda kemudian menulis kandungan jadual baris demi baris, anda mendapat penyulitan dengan menyusun semula huruf. Pada pandangan pertama, nampaknya terdapat sangat sedikit petak ajaib. Walau bagaimanapun, bilangan mereka meningkat dengan cepat apabila saiz segi empat sama bertambah. Oleh itu, hanya terdapat satu petak ajaib berukuran 3 x 3, jika anda tidak mengambil kira putarannya. Sudah terdapat 880 petak ajaib 4 x 4, dan bilangan petak ajaib bersaiz 5 x 5 adalah kira-kira 250,000. Oleh itu, petak ajaib yang besar boleh menjadi asas yang baik untuk sistem penyulitan yang boleh dipercayai pada masa itu, kerana mencuba semua pilihan utama untuk sifir ini tidak dapat difikirkan.

Nombor dari 1 hingga 16 sesuai dengan petak berukuran 4 kali 4. Keajaibannya ialah jumlah nombor dalam baris, lajur dan pepenjuru penuh adalah sama dengan nombor yang sama - 34. Petak ini mula-mula muncul di China, di mana ia ditetapkan beberapa "kuasa ajaib".

Selepas ini, teks sifir ditulis ke dalam rentetan (pembacaan dilakukan dari kiri ke kanan, baris demi baris):
.irdzegu SzhaoyanP

Apabila menyahsulit, teks dimuatkan ke dalam segi empat sama, dan teks biasa dibaca dalam urutan nombor "petak ajaib". Program mesti menjana "petak ajaib" dan pilih petak yang diperlukan berdasarkan kekunci. Petak itu lebih besar daripada 3x3.

cerita

Keperluan

Kehilangan lengkap semua corak statistik mesej asal adalah keperluan penting untuk sifir simetri. Untuk melakukan ini, sifir mesti mempunyai "kesan longsoran" - perubahan kuat dalam blok penyulitan harus berlaku dengan perubahan 1-bit dalam data input (sebaik-baiknya, nilai 1/2 bit blok penyulitan harus ubah).

Satu lagi keperluan penting ialah ketiadaan lineariti (iaitu, syarat f(a) xor f(b) == f(a xor b)), jika tidak, aplikasi analisis kriptografi pembezaan kepada sifir dipermudahkan.

Skim umum

Pada masa ini, sifir simetri ialah:

  • sifir blok. Mereka memproses maklumat dalam blok dengan panjang tertentu (biasanya 64, 128 bit), menggunakan kunci pada blok dalam susunan yang ditetapkan, biasanya melalui beberapa kitaran shuffling dan penggantian, dipanggil pusingan. Hasil daripada pusingan berulang ialah kesan longsoran - kehilangan korespondensi bit yang semakin meningkat antara blok data terbuka dan yang disulitkan.
  • sifir strim, di mana penyulitan dijalankan ke atas setiap bit atau bait teks asal (biasa) menggunakan gamma. Sifir strim boleh dibuat dengan mudah berdasarkan sifir blok (contohnya, GOST 28147-89 dalam mod gamma), dilancarkan dalam mod khas.

Kebanyakan sifir simetri menggunakan gabungan kompleks sejumlah besar penggantian dan pilih atur. Banyak sifir sedemikian dilaksanakan dalam beberapa pas (kadang-kadang sehingga 80), menggunakan "kunci pas" pada setiap pas. Set "kunci pas" untuk semua pas dipanggil "jadual kunci". Sebagai peraturan, ia dicipta daripada kunci dengan melakukan operasi tertentu padanya, termasuk pilih atur dan penggantian.

Cara biasa untuk membina algoritma penyulitan simetri ialah rangkaian Feistel. Algoritma membina skema penyulitan berdasarkan fungsi F(D, K), di mana D ialah sekeping data separuh saiz blok penyulitan, dan K ialah "kunci laluan" untuk pas yang diberikan. Fungsi ini tidak perlu boleh terbalik - fungsi songsangnya mungkin tidak diketahui. Kelebihan rangkaian Feistel adalah kebetulan hampir lengkap penyahsulitan dengan penyulitan (satu-satunya perbezaan ialah susunan terbalik "kunci pas" dalam jadual), yang sangat memudahkan pelaksanaan perkakasan.

Operasi pilih atur mencampurkan bit mesej mengikut undang-undang tertentu. Dalam pelaksanaan perkakasan, ia dilaksanakan secara remeh sebagai pembalikan wayar. Operasi pilih aturlah yang memungkinkan untuk mencapai "kesan longsoran". Operasi pilihatur adalah linear - f(a) xor f(b) == f(a xor b)

Operasi penggantian dilakukan sebagai menggantikan nilai beberapa bahagian mesej (selalunya 4, 6 atau 8 bit) dengan nombor standard, berwayar keras dalam algoritma dengan mengakses tatasusunan malar. Operasi penggantian memperkenalkan ketaklinearan ke dalam algoritma.

Selalunya kekuatan algoritma, terutamanya terhadap kriptanalisis pembezaan, bergantung pada pilihan nilai dalam jadual carian (kotak-S). Sekurang-kurangnya, dianggap tidak diingini untuk mempunyai elemen tetap S(x) = x, serta ketiadaan pengaruh sedikit bait input pada sedikit hasil - iaitu, kes apabila bit hasil ialah sama untuk semua pasangan kata input yang berbeza hanya dalam bit ini.

Parameter algoritma

Terdapat banyak (sekurang-kurangnya dua dozen) algoritma sifir simetri, parameter pentingnya ialah:

  • panjang kunci
  • bilangan pusingan
  • panjang blok yang diproses
  • kerumitan pelaksanaan perkakasan/perisian
  • kerumitan penukaran

Algoritma Biasa

  • AES (Bahasa Inggeris) Standard Penyulitan Lanjutan) - Standard penyulitan Amerika
  • GOST 28147-89 - standard penyulitan data domestik
  • DES (Bahasa Inggeris) Standard Penyulitan Data) - standard penyulitan data di Amerika Syarikat

Perbandingan dengan sistem kripto asimetri

Kelebihan

  • kelajuan (mengikut Kriptografi Gunaan - 3 susunan magnitud lebih tinggi)
  • kemudahan pelaksanaan (disebabkan oleh operasi yang lebih mudah)
  • panjang kunci yang diperlukan lebih pendek untuk ketahanan yang setanding
  • pengetahuan (kerana usia yang lebih tinggi)

Kecacatan

  • kerumitan pengurusan utama dalam rangkaian yang besar. Ini bermakna peningkatan kuadratik dalam bilangan pasangan kunci yang mesti dijana, dihantar, disimpan dan dimusnahkan pada rangkaian. Untuk rangkaian 10 pelanggan, 45 kunci diperlukan, untuk 100 sudah 4950, untuk 1000 - 499500, dsb.
  • kerumitan pertukaran kunci. Untuk menggunakannya, adalah perlu untuk menyelesaikan masalah pemindahan kunci yang boleh dipercayai kepada setiap pelanggan, kerana saluran rahsia diperlukan untuk memindahkan setiap kunci kepada kedua-dua pihak.

Untuk mengimbangi kekurangan penyulitan simetri, skema kriptografi gabungan (hibrid) kini digunakan secara meluas, di mana kunci sesi yang digunakan oleh pihak-pihak untuk menukar data menggunakan penyulitan simetri dihantar menggunakan penyulitan asimetri.

Sifat penting sifir simetri ialah kemustahilan penggunaannya untuk mengesahkan pengarang, kerana kuncinya diketahui oleh setiap pihak.

kesusasteraan

  • Gatchin Yu.A., Korobeinikov A.G. Asas algoritma kriptografi. Tutorial. - St. Petersburg: SPbGITMO (TU), 2002.
  • Kohn P. Algebra sejagat. - M.: Mir. - 1968.
  • Korobeinikov A. G. Asas matematik kriptografi. Tutorial. St. Petersburg: St. Petersburg GITMO (TU), 2002.

Pautan

  • buku rujukan, termasuk penyulitan simetri
13 Jun 2017 jam 01:37 petang

Penyulitan simetri dan asimetri. Analisis algoritma untuk menghantar data yang disulitkan antara pelayan

  • Algoritma,
  • Keselamatan maklumat ,
  • Kriptografi

Mari kita bersetuju bahawa mesin yang menghantar data yang disulitkan sentiasa mesin A, dan mesin yang menerimanya ditetapkan B.

Perpustakaan menyelesaikan dua kes yang mungkin (jika perlu, saya akan menambah fungsi):


2) Kes apabila terdapat mesin dan ia perlu memindahkan data yang disulitkan ke mesin lain (B). Dalam kes ini, pemula pemindahan ialah mesin pertama (A).

Perpustakaan melaksanakan kedua-dua pilihan, untuk setiap satunya terdapat demo:

Untuk kes pertama dalam folder pelayan_b_1 ada skrip testGetDataFromA.php
Untuk kes kedua dalam folder pelayan_a_1 ada skrip testPushDataToB.php

Pustaka untuk kedua-dua kes adalah Encode.php yang sama, tetapi untuk kes pertama beberapa skrip tambahan diperlukan, untuk kes kedua yang lain, jadi untuk mengelakkan kekeliruan, saya membahagikannya secara fungsional ke dalam folder server_a_1 dan server_b_1 (mungkin versi berikutnya dari perpustakaan akan mempunyai struktur yang berbeza). Oleh itu, jika kedua-dua mesin perlu melaksanakan kedua-dua kes pemindahan pertama dan kedua, setiap mesin tersebut akan mempunyai kedua-dua folder.

Sekarang mari kita bincangkan tentang cara kedua-dua penyelesaian dilaksanakan:

Intipati kedua-dua kes ialah mesin menukar kunci simetri untuk menghantar teks sifir. Untuk pertukaran ini, penyulitan asimetri digunakan, iaitu, salah satu mesin (X) menjana sepasang kunci (awam dan peribadi) dan menghantar kunci awam ke mesin kedua. Mesin kedua menjana kunci simetri dengan kunci awam ini dan mengembalikannya kepada yang pertama, yang menyahsulitnya dengan kunci peribadinya. Perbezaannya terletak pada siapa yang menjadi pemula penghantaran - jika teks yang disulitkan perlu diterima satu urutan tindakan, jika dihantar - yang lain. Perpustakaan yang dipertimbangkan juga membuat semakan tambahan, yang berpunca daripada fakta bahawa bersama-sama dengan kunci simetri yang disulitkan menggunakan kunci awam, data dihantar yang hanya diketahui oleh kedua-dua mesin dan yang boleh ditukar sekali setahun (atau dihantar dalam setiap transaksi jika seseorang mahu bermain dengan kod).

Sebelum mula menganalisis pelaksanaan, saya hanya akan menunjukkan bahawa kunci simetri disulitkan menggunakan fungsi penyulitan php Mcrypt mengikut skema berikut:

$data_encrypted = urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $sinc_key, $notice_text, MCRYPT_MODE_ECB))); $test_decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$sinc_key, base64_decode(urldecode($encrypted_data)),MCRYPT_MODE_ECB));
Penyulitan asimetri dikendalikan menggunakan php OpenSSL

Jadi:

Mula-mula saya akan mempertimbangkan gambar rajah yang dipermudahkan bagi kedua-dua kes penghantaran yang ditunjukkan pada awalnya, dan kemudian dengan lebih terperinci.

1) Kes apabila terdapat mesin (B) yang memerlukan data dari mesin A (contohnya, ia perlu mendapatkan token pelanggan) dan data ini mesti diterima dengan selamat. Itu. Pemula pemindahan ialah mesin B.

Mesin B menjana sepasang kunci (peribadi dan awam) dan membuat permintaan untuk mesin A, menghantar kunci awam (menjaga kunci peribadi). Mesin A menjana kunci simetri dan menyulitkan maklumat rahsia N yang diperlukan untuk penghantaran. Selepas ini, mesin A mengembalikan kunci simetri yang disulitkan dengan kunci awam, serta maklumat rahsia N yang disulitkan dengan kunci simetri. Mesin B menyahsulit data dengan kunci peribadinya. Dalam data yang disulitkan, dia menerima kunci simetri dan data yang disulitkan olehnya. Menggunakan kunci simetri, ia menyahsulit data rahsia.

Tiada jaminan bahawa kereta A adalah kereta kami, dan bukan pegawai FSB Anatoly. Oleh itu, pelaksanaan algoritma ini oleh perpustakaan diubah suai sedikit oleh semakan tambahan:

(Demo skrip - server_b_1/testGetDataFromA.php)

Kunci rahsia SIGNATURE_KEY didaftarkan pada kedua-dua mesin, yang mengambil bahagian dalam pengesahan tambahan. Mesin B menjana sepasang kunci (peribadi dan awam), kunci sambungan semasa dan membuat permintaan (http://.../server_a_1/getDataToB.php) ke mesin A, menghantar kunci sambungan semasa dan kunci awam ( menjaga yang peribadi). Mesin A menjana kunci simetri dan menyulitkan dengannya maklumat rahsia N yang diperlukan untuk penghantaran. Data tambahan M juga dijana, iaitu md5 daripada talian yang mengandungi SIGNATURE_KEY dan kunci sambungan semasa. Selepas ini, mesin A mengembalikan rentetan yang disulitkan dengan kunci awam daripada kunci simetri dan data tambahan M, serta maklumat rahsia N yang disulitkan dengan kunci simetri. Mesin B menyahsulit data dengan kunci simetri dengan kunci peribadinya, menghasilkan rentetan yang diberikan oleh M (kerana ia boleh mengira md5 dengan mudah daripada rentetan yang mengandungi SIGNATURE_KEY dan kunci sambungan semasa). Jika data tambahan sepadan (yang hanya semakan tambahan untuk setiap transaksi yang mesin A tahu SIGNATURE_KEY, dan oleh itu mesin kami), mesin B mengekstrak kunci simetri yang dengannya ia menyahsulit maklumat rahsia N.

2) Kes apabila terdapat mesin dan ia perlu memindahkan data yang disulitkan ke mesin lain (B). Dalam kes ini, pemula pemindahan ialah mesin pertama (A).

Algoritma yang dipermudahkan untuk pemindahan sedemikian adalah seperti berikut:

Sebelum memindahkan ke mesin B, mesin A memerlukan kunci awam mesin B untuk memindahkan maklumat. Untuk melakukan ini, ia (mesin A) mula-mula membuat permintaan untuk mendapatkan kunci awam kepada mesin B. Selepas menerimanya, mesin A menjana kunci simetri, menyulitkan maklumat yang diperlukan dengannya dan menyulitkan semua ini dengan kunci awam yang diterima. Data dihantar ke mesin B, yang menyahsulit paket dengan kunci peribadinya dan menyahsulit data dengan kunci simetri.

Tiada jaminan bahawa kami menerima kunci awam daripada mesin B, dan bukan daripada ejen FSB Petrov. Oleh itu, pelaksanaan algoritma ini oleh perpustakaan diubah suai sedikit oleh pemeriksaan tambahan:

(Demo skrip - server_a_1/testPushDataToB.php)

Kunci rahsia SIGNATURE_KEY didaftarkan pada kedua-dua mesin, yang terlibat dalam pengesahan tambahan. Mesin A, setelah menjana md5 daripada kunci sambungan semasa dan SIGNATURE_KEY menghantar data ini (bersama dengan kunci sambungan semasa yang tidak disulitkan) ke mesin B (http://.../server_b_1/get_public_key.php), yang menjana kunci awam hanya jika ia mendapat satu md5 yang sama daripada SIGNATURE_KEY dan kunci yang diterima bagi sambungan semasa. Ini tidak menyelesaikan isu bahawa kunci awam akan diterima secara khusus daripada mesin A, dan bukan daripada mesin ejen FSB Vasily, tetapi ia menjamin mesin B bahawa ia menjana kunci awam khusus untuk mesin A (walaupun menjana kunci awam secara amnya adalah perkara yang sewenang-wenangnya, tetapi di sini adalah lebih baik untuk selamat). Bersama-sama dengan kunci awam, md5 dijana daripada SIGNATURE_KEY dan kunci kedua sambungan semasa. Kunci kedua sambungan semasa ialah cincangan sewenang-wenangnya. Data kunci awam, kunci kedua sambungan sewenang-wenang dan md5 yang ditentukan dikembalikan ke mesin A. Setelah menerima kunci kedua sambungan sewenang-wenangnya, mesin A, mengetahui SIGNATURE_KEY, menjana pengesahan md5 dan jika ia sepadan dengan apa yang mesin diterima, kunci awam dianggap daripada mesin B, dan bukan daripada Vasily.

Seterusnya, mesin A (di sini skemanya serupa dengan kes pertama pemindahan data) menjana kunci simetri dan semakan tambahan, iaitu md5 daripada SIGNATURE_KEY dan kunci sambungan semasa. Data ini disulitkan dengan kunci awam daripada mesin B. Seterusnya, data, bersama-sama dengan kunci sambungan semasa, dihantar ke mesin B (http://.../server_b_1/pushDataFromA.php), yang menjana sambungan semasa kunci dan SIGNATURE_KEY md5 berdasarkan data yang diperoleh daripada data ini , menyemaknya dengan apa yang diterima, yang menjamin bahawa data itu bukan daripada ejen FSB Nikolai. Jika semuanya teratur dan semakan diluluskan, kunci simetri diekstrak menggunakan kunci persendirian, yang sudah menyahsulit mesej.

Saya akan gembira jika maklumat ini berguna kepada seseorang.