Pengenalan kepada kriptografi. Soalan umum, masalah dan penyelesaian. kriptografi konvensional

12.1. pengenalan. Mengenai sejarah steganografi dan kriptografi.

Cara pemindahan maklumat yang diperlukan kepada penerima yang betul secara rahsia daripada orang lain? Setiap daripada pembaca masa yang berbeza dan untuk tujuan yang berbeza, saya mungkin cuba menyelesaikan masalah praktikal ini untuk diri saya sendiri (untuk kemudahan rujukan lanjut, mari kita panggil ia "masalah TP," iaitu, masalah Transmisi Rahsia). Setelah memilih penyelesaian yang sesuai, dia kemungkinan besar mengulangi ciptaan salah satu kaedah transmisi rahsia maklumat yang sudah berusia ribuan tahun.

Menggambarkan masalah TP, tidak sukar untuk membuat kesimpulan bahawa terdapat tiga kemungkinan:

  • 1. Cipta saluran komunikasi yang benar-benar boleh dipercayai antara pelanggan, tidak boleh diakses oleh orang lain.
  • 2. Gunakan saluran komunikasi awam, tetapi sembunyikan fakta penghantaran maklumat.
  • 3. Gunakan saluran komunikasi awam, tetapi hantar maklumat yang diperlukan melaluinya dalam bentuk yang diubah sehingga hanya penerima boleh memulihkannya.

Mari kita ulas mengenai tiga kemungkinan ini.

  • 1. Pada tahap perkembangan sains dan teknologi semasa, wujudkan saluran komunikasi sedemikian antara pelanggan jauh untuk penghantaran berulang jumlah yang besar maklumat adalah hampir mustahil.
  • 2. Steganografi ialah pembangunan cara dan kaedah untuk menyembunyikan fakta penghantaran mesej.

Steganografi sebagai sains kini berada dalam keadaan meningkat yang dikaitkan dengan proses tersebut perkembangan pesat Internet. Diterjemah dari bahasa Yunani, "steganografi" secara harfiah bermaksud "tulisan rahsia" (steganos - rahsia; graphy - tulis). Tujuan steganografi adalah untuk menyembunyikan penghantaran maklumat; ia tidak boleh menggantikan kriptografi, tetapi bersama-sama dengannya ia membenarkan penghantaran mesej yang paling selamat.

Pada tahap teknologi yang berbeza sepadan dengan zaman mereka, idea menyembunyikan maklumat telah dilaksanakan sejak dahulu lagi. Pembaca mungkin menyedari penggunaan tablet purba dengan mesej penutup lilin atau penggunaan aktif dakwat simpati oleh revolusioner domestik.

Perlu diingatkan bahawa kaedah steganografi boleh digunakan untuk melindungi maklumat sulit dan untuk tujuan yang merosakkan. Ini amat relevan memandangkan sikap berubah terhadap Internet sebagai a saluran yang mungkin perkaitan antara pelbagai jenis unsur pengganas. Di sini kami mempertimbangkan kemungkinan steganografi moden berhubung dengan masalah keselamatan maklumat.

Ciri utama kriptografi komputer ialah menyembunyikan fail mesej di dalam fail kontena. Bekas biasanya memainkan peranan fail grafik yang digunakan secara meluas BMP, GIF, JPEG atau audio WAV, walaupun yang lain mungkin - semuanya bergantung pada pelaksanaan tertentu. Sistem steganografi komputer moden terutamanya menggunakan kaedah LSB, atau kaedah penggantian bit paling tidak ketara. Intipati kaedah ini adalah untuk menggantikan nilai bit yang paling tidak ketara. Katakan kita ingin menyembunyikan mesej di dalam bekas, iaitu fotografi hitam putih. Dalam imej digital lapan bit standard, nilai kecerahan berjulat dari 0 hingga 255, menukar nilai bit terakhir boleh meningkatkan atau mengurangkan nilai kecerahan sebanyak satu. Oleh itu, purata perubahan dalam kecerahan piksel tidak akan melebihi satu peratus. Mari kita tambahkan bahawa tidak semua elemen imej mengalami perubahan kecil, yang bermaksud bahawa ia tidak akan berbeza dalam penampilan daripada asal. Daripada perkara di atas, adalah lebih sukar untuk membezakan secara visual perubahan dalam fail bekas jika ia adalah imej dengan bunyi kontras seragam. Kaedah yang diterangkan di atas juga digunakan untuk menyembunyikan mesej dalam fail format bunyi, manakala perubahan dalam bekas asal boleh dikatakan tidak dapat dibezakan oleh telinga, dan fail dengan bunyi latar belakang yang besar boleh dianggap sebagai bekas berkualiti tinggi.

Sekarang setelah kita mengetahui lebih lanjut mengenai steganografi, kita boleh membuat kesimpulan. Semakin tinggi nisbah saiz fail kontena dan fail lampiran, semakin tinggi kualiti menyembunyikan maklumat di dalam fail kontena. Dalam amalan, ini bermakna penghantaran mesej steganografi berkualiti tinggi dikaitkan dengan jumlah besar maklumat yang dihantar. Oleh itu, kita boleh mengatakan bahawa keuntungan dalam kualiti menyembunyikan maklumat mengakibatkan kerugian dalam jumlah yang diperlukan untuk penghantaran, dan sebaliknya.

Walaupun masih muda dalam bidang steganografi komputer, menggunakan enjin carian di Internet anda boleh menemui bilangan program profesional dan amatur yang mencukupi untuk penulisan rahsia. Salah satu yang paling berjaya ialah Steganos Security Suite 4. Program ini ialah set utiliti yang berkuasa untuk memastikan kerahsiaan maklumat. Ia termasuk alat untuk melindungi cakera dan akses kepada komputer secara keseluruhan, penyulitan mesej mel, memastikan keselamatan Internet, utiliti profesional untuk menjamin pemadaman fail yang tidak boleh dipulihkan dan, sudah tentu, sistem trengkas berkualiti tinggi. Untuk tujuan yang kami minati, utiliti Pengurus Fail Steganos dimaksudkan. Dengan bantuannya, adalah mungkin untuk memilih fail bekas daripada yang sedia ada pada cakera pengguna, atau menggunakan pengimbas atau mikrofon untuk mencipta fail dengan format yang sesuai secara bebas. Program ini bukan sahaja boleh menyembunyikan mesej dengan selamat dalam bekas yang dipilih, tetapi juga mencipta arkib pengekstrakan sendiri.

Seperti yang kita lihat, masalahnya keselamatan maklumat merangsang perkembangan sistem steganografi dan kriptografi yang agak pesat. Dengan mengambil kira aplikasi gunaan steganografi yang penting seperti melindungi privasi peribadi, tera air digital, tandatangan digital elektronik dan perdagangan elektronik, kita boleh mengatakan bahawa dalam masa terdekat akan ada pembangunan aktif dalam bidang ini. Pada masa yang sama, seseorang tidak boleh memandang rendah betapa seriusnya ancaman yang boleh mereka timbulkan sistem yang berkuasa perlindungan maklumat jika ia jatuh ke tangan pelbagai jenis pengganas dan lanun komputer. Oleh itu, sama seperti cryptanalysis pada zamannya, mengikut peraturan perisai dan pedang, steganalysis hari ini juga sedang berkembang, tugasnya adalah untuk mencari algoritma yang berkesan untuk mengesan maklumat tersembunyi.

Steganografi kadangkala tersilap dikelaskan sebagai kriptografi. Sudah tentu, dengan bantuan steganografi anda juga boleh menyembunyikan teks pra-sifir, tetapi, secara umumnya, steganografi dan kriptografi pada asasnya pelbagai arah dalam teori dan amalan keselamatan maklumat.

3. Kriptografi memperkatakan pembangunan kaedah untuk menukar (menyulitkan) maklumat untuk melindunginya daripada pengguna haram. Kaedah dan kaedah menukar maklumat sedemikian dipanggil sifir.

Penyulitan (enkripsi)- proses menggunakan sifir kepada maklumat yang dilindungi, i.e. transformasi maklumat yang dilindungi (teks biasa) kepada mesej yang disulitkan (teks sifir, kriptogram) menggunakan peraturan tertentu yang terkandung dalam sifir.

Penyahsulitan- proses terbalik penyulitan, i.e. menukar mesej yang disulitkan kepada maklumat yang dilindungi menggunakan peraturan tertentu yang terkandung dalam sifir.

Kriptografi- sains gunaan, ia menggunakan pencapaian terkini sains asas dan, pertama sekali, matematik. Sebaliknya, segala-galanya tugasan tertentu kriptografi amat bergantung pada tahap perkembangan teknologi dan teknologi, pada cara komunikasi yang digunakan dan kaedah penghantaran maklumat.

Sesetengah konsep kriptografi boleh digambarkan dengan mudah dengan contoh sejarah, jadi mari kita buat penyimpangan sejarah yang singkat.

Untuk masa yang lama, kriptografi adalah pemuliharaan eksentrik bersendirian. Antaranya ialah saintis, diplomat, dan paderi yang berbakat.

Terdapat kes apabila kriptografi dianggap sebagai ilmu hitam. Tempoh perkembangan kriptografi sebagai seni ini berlangsung dari zaman dahulu hingga awal abad ke-20, apabila mesin penyulitan pertama muncul. Pemahaman tentang sifat matematik masalah yang diselesaikan oleh kriptografi hanya datang pada pertengahan abad ke-20 - selepas kerja saintis Amerika yang cemerlang K. Shannon.

Sejarah kriptografi dikaitkan dengan sejumlah besar rahsia diplomatik dan ketenteraan dan oleh itu diselubungi kabus legenda. Ramai tokoh sejarah terkenal telah meninggalkan jejak mereka pada sejarah kriptografi. Berikut adalah beberapa contoh yang paling menarik. Maklumat pertama tentang penggunaan sifir dalam urusan ketenteraan dikaitkan dengan nama komander Spartan Lysander (cipher "Scitala"). Caesar menggunakan sifir dalam surat-menyuratnya, yang tercatat dalam sejarah sebagai "sifir Caesar." Di Yunani kuno, sejenis sifir dicipta, yang kemudiannya dikenali sebagai "Politai square". Salah satu buku pertama mengenai kriptografi telah ditulis oleh Abbot I. Tritelius (1462-1516), yang tinggal di Jerman. Pada tahun 1566, ahli matematik terkenal D. Cardano menerbitkan karya yang menerangkan sistem penyulitan yang diciptanya ("Kekisi Cardano"). Perancis pada abad ke-16 meninggalkan dalam sejarah kriptografi sifir Raja Henry IV dan Richelieu. Terdapat juga banyak sifir Rusia, termasuk "abjad digital" 1700, yang pengarangnya ialah Peter the Great.

Beberapa maklumat tentang sifat sifir dan aplikasinya boleh didapati dalam fiksyen, terutamanya dalam kesusasteraan pengembaraan, detektif dan ketenteraan. baik penerangan terperinci Ciri-ciri salah satu sifir paling mudah - sifir penggantian dan kaedah untuk memecahkannya terkandung dalam dua cerita terkenal: "The Gold Bug" oleh E. Poe dan "The Dancing Men" oleh A. Conan Doyle.

Mari kita lihat dua contoh.

Buku itu, buat pertama kali dalam bahasa Rusia, menyediakan pembentangan sistematik asas saintifik kriptografi daripada contoh paling mudah dan konsep asas kepada pembinaan kriptografi moden. Memahami prinsip kriptografi telah menjadi satu keperluan bagi kebanyakan orang kerana penggunaan yang meluas cara kriptografi memastikan keselamatan maklumat. Oleh itu, buku ini boleh berguna kepada pembaca umum.
Buku ini ditujukan untuk pelajar matematik dan pakar keselamatan maklumat.

Subjek kriptografi.
Apakah subjek kriptografi? Untuk menjawab soalan ini, mari kita kembali kepada masalah TP untuk menjelaskan situasi dan konsep yang digunakan.

Pertama sekali, ambil perhatian bahawa tugas ini hanya timbul untuk maklumat yang perlu dilindungi. Biasanya dalam kes sedemikian mereka mengatakan bahawa maklumat itu mengandungi rahsia atau dilindungi, peribadi, sulit, rahsia. Untuk situasi yang paling tipikal, yang sering ditemui jenis ini, malah konsep khas telah diperkenalkan:
- rahsia negara;
- rahsia ketenteraan;
- rahsia perdagangan;
- rahsia undang-undang;
- kerahsiaan perubatan, dsb.

Seterusnya, kita akan bercakap tentang maklumat yang dilindungi, dengan mengambil kira ciri-ciri berikut bagi maklumat tersebut:
- terdapat kalangan tertentu pengguna sah yang mempunyai hak untuk memiliki maklumat ini;
- terdapat pengguna haram yang berusaha mendapatkan maklumat ini untuk untuk mengubahnya kepada manfaat anda dan membahayakan pengguna yang sah.

Untuk memudahkan, kami mula-mula mengehadkan diri untuk mempertimbangkan hanya satu ancaman - ancaman pendedahan maklumat. Terdapat ancaman lain terhadap maklumat yang dilindungi daripada pengguna haram: penggantian, peniruan, dll. Kami akan membincangkannya di bawah.

Isi kandungan
Mukadimah
Bab 1. Konsep asas kriptografi
§1. pengenalan
§2. Subjek Kriptografi
§3. Asas Matematik
§4. Arah baru
§5. Kesimpulan
Bab 2. Kriptografi dan teori kerumitan
§1. pengenalan
§2. Kriptografi dan hipotesis P = NP
§3. Fungsi sehala
§4. Penjana pseudo-rawak
§5. Bukti daripada pengetahuan sifar
Bab 3. Protokol kriptografi
§1. pengenalan
§2. Integriti. Protokol pengesahan dan tandatangan elektronik
§3. Tidak dapat dikesan. Wang elektronik
§4. Protokol lambungan syiling telefon
§5. Sekali lagi tentang perkongsian rahsia
§6. Jom main kiub. Protokol pengundian
§7. Melangkaui andaian standard. Pemesejan sulit
§8. Daripada kesimpulan
Bab 4. Masalah algoritma teori nombor
§1. pengenalan
§2. Sistem penyulitan RSA
§3. Kerumitan algoritma teori nombor
§4. Bagaimana untuk membezakan nombor komposit daripada nombor perdana
§5. Bagaimana untuk membina nombor perdana yang besar
§6. Bagaimana untuk menguji nombor yang besar untuk keutamaan
§7. Bagaimana untuk memfaktorkan nombor komposit
§8. Logaritma diskret
§9. Kesimpulan
Bab 5: Matematik Perkongsian Rahsia
§1. pengenalan
§2. Perkongsian rahsia untuk struktur akses sewenang-wenangnya
§3. Perkongsian rahsia linear
§4. Pemisahan sempurna antara rahsia dan matroid
Bab 6. Komputer dan Kriptografi
§1. Bukannya memperkenalkan
§2. Sedikit teori
§3. Bagaimana untuk menyulitkan fail?
§4. Mari belajar dari kesilapan orang lain
§5. Daripada kesimpulan
Bab 7. Olimpik Kriptografi untuk murid sekolah
§1. pengenalan
§2. Sifir gantian
§3. Sifir permutasi
§4. Sifir penggantian polialfabetik dengan kunci berkala
§5. Syarat masalah untuk Olympiad dalam matematik dan kriptografi
§6. Garis panduan dan penyelesaian
Lampiran A. Petikan daripada artikel oleh K. Shannon "Teori Komunikasi dalam Sistem Rahsia"
Lampiran B. Senarai beranotasi bacaan yang disyorkan
Lampiran B: Glosari Istilah Kriptografi
Indeks abjad istilah Rusia
Indeks abjad istilah bahasa Inggeris.

Muat turun e-buku secara percuma dalam format yang mudah, tonton dan baca:
Muat turun buku Introduction to Cryptography, Yashchenko V.V., 2012 - fileskachat.com, muat turun pantas dan percuma.

Muat turun pdf
Anda boleh membeli buku ini di bawah harga terbaik pada diskaun dengan penghantaran ke seluruh Rusia.

Proses sejarah pembangunan cara dan kaedah keselamatan maklumat telah membangunkan tiga kaedah perlindungan utama.

Cara pertama untuk melindungi maklumat ialah perlindungan fizikal daripada musuh pembawa bahan maklumat (perkamen, kertas, pita magnetik, dll.), contohnya, pemindahan maklumat oleh kurier khas dengan keselamatan, cincin dengan bekas untuk mesej rahsia, dsb.

Cara kedua untuk melindungi maklumat ialah steganografi. Penggunaan steganografi memastikan bahawa fakta penghantaran maklumat disembunyikan daripada musuh. Perlindungan maklumat steganografi disediakan cara yang berbeza, Sebagai contoh:

Penggunaan media storan "tidak kelihatan" (mikrofilem);

Penggunaan dakwat bersimpati, yang boleh dilihat dengan pemprosesan kimia yang sesuai bagi pembawa maklumat;

Menyamarkan maklumat rahsia dengan mesej biasa, dsb.

Steganografi moden mempunyai pelbagai kaedah keselamatan maklumat yang agak luas.

Kaedah ketiga, paling dipercayai dan meluas untuk melindungi maklumat ialah kriptografi. Tepat sekali kaedah kriptografi perlindungan maklumat adalah tentang tutorial ini.

1.1. Konsep asas dan definisi kriptografi

Mari kita pertimbangkan konsep asas yang diterima pakai dalam kriptografi, dan mula-mula tentukan apa itu kriptografi.

Kriptografi- ini bahagiannya matematik gunaan(kriptologi), mengkaji model, kaedah, algoritma, perisian dan perkakasan untuk menukar maklumat (enkripsi) untuk menyembunyikan kandungannya, mencegah pengubahsuaian atau penggunaan tanpa kebenaran. Kriptanalisis bertujuan untuk menyelesaikan masalah saling songsang. Analisis kriptografi ialah satu cabang matematik gunaan (kriptologi) yang mengkaji model, kaedah, algoritma, perisian dan perkakasan untuk menganalisis sistem kripto atau isyarat input dan outputnya untuk mengekstrak parameter sulit, termasuk plaintext. Oleh itu, kriptografi dan kriptanalisis membentuk satu keseluruhan dan membentuk sains - kriptologi, yang sejak awal lagi berkembang sebagai sains serampang dua mata.

Dari segi sejarah, konsep utama kriptografi ialah konsep sifir. Sifir ialah satu set transformasi kriptografi boleh balik bagi satu set teks biasa kepada satu set teks sifir yang dijalankan untuk tujuan melindunginya. Jenis khusus transformasi kriptografi teks biasa ditentukan menggunakan kunci penyulitan. Dalam teks yang jelas namakan mesej asal yang akan disulitkan. Di bawah penyulitan merujuk kepada proses menggunakan transformasi kriptografi boleh balik kepada teks biasa, dan hasil daripada transformasi ini dipanggil teks sifir atau kriptogram. Sehubungan itu, proses penukaran kriptografi terbalik kriptografi ke dalam teks biasa dipanggil penyahsulitan.



Penyahsulitan tidak boleh dikelirukan dengan penyahsulitan. Penyahsulitan(penyahsulitan, berbuka) - proses mengekstrak plaintext tanpa pengetahuan tentang kunci kriptografi berdasarkan kriptografi yang dipintas. Oleh itu, penyahsulitan dijalankan oleh pengguna yang sah, mereka yang tahu kuncinya sifir, dan penyahsulitan oleh cryptanalyst.

Sistem kriptografi- keluarga transformasi sifir dan satu set kunci. Perihalan algoritma kriptografi itu sendiri tidak membentuk sistem kriptografi. Hanya apabila ditambah dengan skim pengagihan dan pengurusan utama, ia menjadi satu sistem.

Klasifikasi sistem kripto dibentangkan dalam Rajah. 1.1.

nasi. 1.1. Klasifikasi sistem kripto

Klasifikasi sistem kripto yang lebih lengkap diberikan, sebagai contoh, dalam.

Sistem kriptografi simetri (sistem kriptografi kunci rahsia) dibina berdasarkan prinsip merahsiakan kunci penyulitan. Dalam Rajah. 1.2 membentangkan yang dipermudahkan skema struktur sistem kriptografi simetri. Sebelum menggunakan sistem kriptografi simetri, pengguna mesti mendapatkan kunci rahsia yang dikongsi dan menghalang penyerang daripada mendapat akses kepadanya. Mesej terbuka mengalami transformasi kriptografi dan kriptogram yang terhasil dihantar melalui saluran komunikasi terbuka kepada penerima, di mana transformasi terbalik dijalankan untuk menyerlahkan yang asal buka mesej.

nasi. 1.2. Gambar rajah blok dipermudahkan bagi sistem kripto simetri

Sistem kriptografi simetri dikelaskan mengikut pelbagai kriteria: mengikut jenis transformasi kriptografi; mengikut prinsip membina; mengikut jenis maklumat yang dilindungi; mengenai kekuatan kriptografi, dsb. Dua kriteria pengelasan pertama paling kerap digunakan. Dalam hal ini, banyak sistem kripto simetri dibahagikan:

Mengikut jenis transformasi kriptografi - sifir pilih atur, sifir penggantian dan sifir komposisi;

Mengikut prinsip reka bentuk - strim cryptosystems dan block cryptosystems.

Di bawah sifir pilih atur merujuk kepada penyusunan semula huruf-huruf mesej asal, akibatnya ia menjadi tidak boleh dibaca. Di bawah sifir gantian difahami sebagai transformasi, yang terdiri daripada menggantikan huruf mesej asal dengan huruf lain mengikut peraturan yang lebih atau kurang kompleks. Sifir komposisi dibina berdasarkan sifir gantian dan pilih atur. Sekat sistem kriptografi simetri(BSK) ialah keluarga transformasi kriptografi boleh balik bagi blok mesej asal. Strim sistem kripto(PSK) menukar aksara mesej asal mengikut aksara kepada kriptografi.

Ciri tersendiri sistem kripto tidak simetri(sistem kripto dengan kunci awam ) ialah kunci yang berbeza digunakan untuk menyulitkan dan menyahsulit maklumat. Dalam Rajah. Rajah 1.3 menunjukkan gambar rajah blok yang dipermudahkan bagi sistem kripto tidak simetri. Sistem kriptografi kunci awam ditakrifkan oleh tiga algoritma: penjanaan kunci, penyulitan dan penyahsulitan. Algoritma penjanaan kunci membolehkan anda mendapatkan sepasang kunci , dan . Salah satu kunci diterbitkan, ia dipanggil buka, dan yang kedua dipanggil tertutup(atau rahsia) dan dirahsiakan. Algoritma penyulitan dan penyahsulitan adalah sedemikian rupa sehingga bagi mana-mana teks biasa kesamaan .

nasi. 1.3. Gambar rajah blok dipermudahkan bagi sistem kriptografi asimetri

1.2. Dari sejarah kriptografi

Menurut beberapa pakar, kriptografi adalah umur yang sama dengan piramid Mesir. Dokumen tamadun purba (India, Mesir, Mesopotamia) mengandungi maklumat tentang sistem dan kaedah untuk mengarang surat yang disulitkan.

Sejak zaman purba, dua jenis sifir telah digunakan dalam kriptografi: penggantian (penggantian) dan pilih atur. Contoh sejarah sifir penggantian ialah sifir Caesar(abad ke-1 SM), diterangkan oleh ahli sejarah Rom Purba Suetonius. Gaius Julius Caesar menggunakan sifir ciptaannya sendiri dalam surat-menyuratnya. Berhubung dengan bahasa Rusia adalah seperti berikut. Abjad ditulis, dan kemudian abjad yang sama ditulis di bawahnya, tetapi dengan peralihan kitaran tiga huruf ke kiri:

A B DALAM G D E E YU saya
G D E Yo DAN Z A B DALAM

Penyulitan terdiri daripada memilih huruf daripada baris pertama dan menggantikannya dengan huruf baris kedua; penyahsulitan ialah operasi terbalik. Contohnya, ROME – ULP. Kunci kepada sifir Caesar ialah nilai anjakan kitaran. Guy Julius Caesar menggunakan kunci yang sama sepanjang hidupnya - anjakan sebanyak 3 huruf. Pengganti Julius Caesar, Caesar Augustus, menggunakan sifir yang sama, tetapi beralih dengan satu huruf. Suetonius tidak memetik fakta mentafsir sifir Caesar, tetapi pada zaman itu apabila buta huruf sejagat memerintah, walaupun mesej terbuka biasa boleh kekal tidak dibaca.

Salah satu peranti fizikal pertama yang melaksanakan sifir pilih atur ialah merayau. Ia dicipta di Sparta purba (abad ke-5 SM). Selain Yunani Purba, alat pengembara itu digunakan secara meluas di Rom Purba. Scytale (diterjemahkan sebagai "rod") ialah silinder dengan diameter tertentu. Tali pinggang kulit dililitkan di sekeliling silinder, di mana teks mesej digunakan di sepanjang paksi silinder. Tali pinggang itu kemudiannya digulung dan dihantar kepada penerima mesej. Yang terakhir, mempunyai silinder yang serupa, menguraikan mesej itu. Kunci penyulitan ialah diameter scytal. Penciptaan peranti penyahsulitan dikaitkan dengan Aristotle. Dia mencadangkan menggunakan "lembing" berbentuk kon untuk penyahsulitan, di mana tali pinggang yang dipintas digulung sehingga teks yang bermakna muncul.

Salah satu nama sejarah pertama yang disebut berkaitan dengan kriptografi ialah nama Aeneas, komander legenda dan pembela Troy. Dalam bidang penulisan rahsia, Aeneas memiliki dua ciptaan. Yang pertama daripada mereka adalah yang dipanggil cakera Aeneas. Prinsipnya mudah. Lubang digerudi pada cakera bersaiz 10-15 cm dan tebal 1-2 cm mengikut bilangan huruf abjad. Satu gelendong benang dipasang di tengah cakera. Apabila menyulitkan, benang ditarik secara berurutan melalui lubang yang sepadan dengan huruf mesej. Cakera telah dihantar kepada penerima, yang menarik benang dari lubang dan menerima mesej dalam susunan terbalik. Peranti lain ialah penguasa Aeneas. Di sini, bukannya cakera, pembaris dengan bilangan lubang yang sama dengan bilangan huruf dalam abjad telah digunakan. Huruf-huruf dalam lubang-lubang itu disusun secara rawak. Satu gelendong benang dilekatkan pada pembaris. Apabila menyulitkan, benang ditarik melalui lubang yang sepadan dengan huruf mesej yang disulitkan, dan simpulan diikat pada benang di lokasi di mana lubang itu berlalu. Oleh itu, mesej yang disulitkan ialah benang dengan simpulan, di mana setiap huruf dikaitkan dengan jarak antara simpulan benang. Kunci kepada sifir ialah susunan huruf di sepanjang lubang pembaris. Sama seperti pemerintah Aeneas longgokan(huruf simpul) menjadi meluas di kalangan orang India di Amerika Tengah.

Ia juga merupakan ciptaan orang Yunani purba - dataran Polybius (Polybius ialah negarawan Yunani, komander, ahli sejarah abad ke-3 SM):

A B C D E
A A B C D E
B F G H saya,J K
C L M N O P
D Q R S T U
E V W X Y Z

Berhubung dengan moden abjad Latin penyulitan menggunakan petak ini adalah seperti berikut. Surat yang disulitkan telah digantikan dengan koordinat segi empat sama di mana ia ditulis. Jadi huruf R digantikan dengan DB. Apabila dinyahsulit, setiap pasangan huruf mengenal pasti huruf mesej yang sepadan. Sebagai contoh, JADUAL ialah DDAAABCAAE. Kunci kepada sifir ini ialah petak itu sendiri. Versi rumit bagi segi empat sama Polybius melibatkan penulisan huruf dalam susunan rawak dalam petak itu. Untuk mengingati susunan sewenang-wenangnya, slogan digunakan, iaitu perkataan yang ditulis tanpa mengulangi huruf dalam segi empat sama, dan sel-sel yang tinggal pada segi empat sama diisi dalam susunan yang muncul dengan huruf abjad yang tinggal. Contohnya, THE APPLE sepadan dengan THEAPL.

Adalah menarik untuk diperhatikan bahawa dalam bentuk yang sedikit diubah suai, dataran Polybius telah bertahan sehingga hari ini dan dipanggil "sifir penjara." Untuk menggunakannya, cukup untuk mengetahui susunan semula jadi huruf dalam abjad. Sisi segi empat sama tidak ditunjukkan oleh huruf, tetapi dengan nombor. Setiap digit dikodkan oleh bilangan ketukan tertentu. Apabila menghantar mesej, nombor baris mula-mula "diketuk", dan kemudian nombor lajur. “Sifir penjara,” secara tegasnya, bukanlah sifir, ia adalah satu cara pengekodan mesej untuk membawanya ke dalam bentuk yang mudah untuk dihantar melalui saluran komunikasi (dinding penjara).

Semasa Zaman Pertengahan, kriptografi Eropah memperoleh reputasi yang meragukan, gema yang masih boleh didengar hari ini. Hakikatnya ialah kriptografi mula dikenal pasti dengan ilmu hitam, astrologi, alkimia, dan kuasa mistik dipanggil untuk penyulitan. Untuk menyulitkan mesej adalah disyorkan untuk digunakan "petak ajaib". Keajaiban petak ini ialah jumlah nombor dalam baris, lajur dan pepenjuru penuh menyamai satu nombor. Penyulitan menggunakan "petak ajaib" adalah seperti berikut. Huruf-huruf mesej itu ditulis ke dalam segi empat sama mengikut nombor yang ditulis di dalamnya, dan huruf rawak dimasukkan ke dalam sel kosong. Teks sifir telah ditulis dengan cara yang telah dipersetujui. Sebagai contoh, mesej SAYA AKAN DATANG HARI INI disulitkan menggunakan "petak ajaib":

16U 3I 2P 13D
5Z 10E 11G 8YU
6G 7A 12O
4E 15I 14N 1P

mempunyai bentuk UIRDZEGYUSZHAOEYANP. Sifir ini ialah sifir pilih atur biasa, tetapi dipercayai bahawa keajaiban "persegi ajaib" memberikannya kekuatan istimewa.

Pada abad ke-15, Abbot Trithemius membuat dua cadangan inovatif dalam bidang kriptografi: beliau mencadangkan sifir Ave Maria dan sifir berdasarkan kunci yang dialihkan secara berkala. Cadangan Trithemius yang paling serius, yang telah bertahan hingga ke hari ini, terletak pada jadual yang dia cipta:

A B C D W X Y Z
B C D E X Y Z A
C D E F Y Z A B
Y Z A B U V W X
Z A B C V W X Y

Huruf pertama teks disulitkan pada baris pertama, huruf kedua pada baris kedua, dan seterusnya. Baris pertama juga merupakan rentetan huruf plaintext. Contohnya, FIGHT – FJIKX. Dalam versi asal, sifir Trithemius tidak mempunyai kunci. Rahsianya ialah kaedah penyulitan itu sendiri. Sifir menjadi lebih rumit dalam dua cara: dengan memperkenalkan susunan arbitrari huruf dalam jadual; merumitkan susunan baris jadual dipilih semasa penyulitan. Harus dikatakan bahawa sifir Caesar adalah kes khas sifir Trithemius.

Sifir "Ave Maria" adalah berdasarkan prinsip menggantikan huruf teks yang disulitkan dengan keseluruhan perkataan yang daripadanya mesej yang kelihatan tidak bersalah telah digubah. Sebagai contoh, N - "SAYA", "DI SINI"; E – “MENUNGGU”, “AKAN”; T – “RUMAH”, “PADA PETANG”. Kemudian mesej terbuka NO boleh sepadan dengan mesej "SAYA TUNGGU DI RUMAH", "SAYA AKAN KE SINI PETANG".

Pada abad ke-17, ahli falsafah dan saintis Inggeris Lord Chancellor Francis Bacon mengemukakan keperluan utama untuk sifir: "Mereka tidak boleh dihuraikan, tidak memerlukan banyak masa untuk menulis dan membaca, dan tidak boleh menimbulkan sebarang syak wasangka." Keperluan ini masih relevan hari ini.

Persaudaraan "tukang batu bebas" (mason) juga menggunakan sifir secara meluas. Kod "tukang batu percuma" adalah sifir penggantian dan, bertentangan dengan kepercayaan popular, tidak kuat, tetapi mempunyai kepentingan tertentu. Penyulitan terdiri daripada menggantikan huruf plaintext dengan simbol mengikut peraturan:

A: B: C: J. K. L. S T U
D: E: F: M. N. O. V W X
G: H: saya: P. Q. R. Y Z

Sebagai contoh, APPLE sepadan dengan kriptografi dalam bentuk:

: . . . :

Semasa kempennya menentang Rusia, Napoleon menggunakan kod "tukang batu bebas" di peringkat bawah komunikasinya, tetapi kod itu dengan cepat didedahkan oleh pemecah kod Rusia.

Pada abad ke-16, Alberti Itali pertama kali mengemukakan idea penyulitan berganda, i.e. Teks selepas penyulitan pertama disulitkan semula. Alberti juga memiliki sifir, yang disebutnya "sifir yang layak menjadi raja." Sifir telah dilaksanakan menggunakan cakera penyulitan. Huruf dan nombor digunakan pada cakera tetap luar, di mana huruf dan nombor cakera alih dalaman terletak. Proses penyulitan adalah mudah - huruf dan nombor plaintext dipadankan dengan huruf dan nombor cakera dalaman. Selepas menyulitkan perkataan mesej, cakera dalaman dialihkan satu langkah. Kedudukan awal cakera telah dipersetujui terlebih dahulu. Cakera Alberti, dengan pengubahsuaian kecil, digunakan sehingga awal abad ke-20.

Pada abad ke-16, sumbangan penting kepada pembangunan kriptografi telah dibuat oleh Mateo Argenti, Giovani Batista Belazo, Giovani Batista Porta, Cordano dan lain-lain. Mateo Argenti adalah kriptografi Pope, dan dialah yang menghasilkan idea tentang menggunakan perkataan slogan untuk memberikan abjad rupa campuran yang mudah dihafal. Argenti juga mencadangkan memasukkan sejumlah besar huruf "tiruan" ke dalam teks sifir, menghapuskan tanda baca, tidak memasukkan perkataan yang jelas ("jelas") ke dalam teks sifir, dan menggantikan huruf teks sifir dengan nombor. Belaso dan Porta mengembangkan idea Argenti dalam karya mereka "The Cipher of Senor Belaso" dan "On Secret Correspondence."

Ahli matematik, pakar perubatan dan ahli falsafah Cordano memberi sumbangan besar kepada pembangunan kriptografi. Sifir yang dicadangkannya tercatat dalam sejarah di bawah nama "kekisi Cordano." "Cordano Grid" ialah sifir pilih atur, yang intipatinya adalah seperti berikut. Sekeping bahan padat (kadbod, perkamen) diambil, yang merupakan segi empat sama di mana "tingkap" dipotong. Apabila menyulitkan, petak itu diletakkan pada helaian kertas dan mesej dimasukkan ke dalam "tetingkap", kemudian petak itu diputar 90 darjah dan mesej itu terus ditulis ke dalam "tetingkap" petak yang diputar. Prosedur ini diteruskan sehingga petak itu diputar sepenuhnya 360 darjah. Keperluan utama "grid Cordano" ialah dengan semua putaran "tingkap" tidak boleh jatuh ke bawah dan di tempat yang sama, dan dengan putaran lengkap persegi, semua tempat dalam teks sifir diduduki. Teks sifir telah dibaca baris demi baris daripada jadual yang terhasil. Sifir yang dicadangkan oleh Cordano adalah asas yang terkenal sifir Richelieu, di mana teks sifir kelihatan seperti mesej biasa. Dengan meletakkan segi empat tepat yang dipotong dengan tingkap pada helaian dengan mesej sedemikian, seseorang boleh membaca mesej itu. Sifir Richelieu bukanlah sifir penggantian mahupun sifir pilih atur; ia adalah kaedah steganografi untuk melindungi maklumat. Kod jenis ini digunakan oleh penulis dan negarawan Rusia A.S. Griboyedov sebagai duta ke Parsi.

Cordano mengemukakan, tetapi tidak mempunyai masa untuk melaksanakan sepenuhnya idea "kunci kendiri". Intipatinya ialah menggunakan sebahagian daripada mesej terbuka sebagai kunci.

Setelah berkenalan dengan karya Trithemius, Belaso, Cordano dan Alberti, negarawan Perancis Blaise de Vigenère mengembangkan sifirnya sendiri, yang dipanggil Sifir Vigenère. Intipati sifir ialah satu perkataan rahsia telah dipilih, iaitu kunci sifir. Perkataan ini ditulis di bawah mesej terbuka secara berkala. Huruf atas plaintext sepadan dengan lajur jadual Trithemian, dan huruf bawah kunci sepadan dengan baris jadual Trithemian; huruf di persimpangan baris dan lajur ialah huruf siferteks. Sifir Vigenère ialah sifir penggantian. Selepas itu, sifir ini agak dipermudahkan untuk kegunaan praktikal ketua jabatan penyahsulitan negeri pertama di Jerman, Count Gronsfeld. Sifir Vigenère dan sifir Gronsfeld pada dasarnya adalah nenek moyang sifir gamma yang digunakan secara meluas pada masa ini. Sifir Vigenère digunakan dalam pelbagai pilihan sehingga abad ke-19. Salah satu pengubahsuaian yang paling terkenal bagi sifir Vigenère ialah sifir Laksamana Beaufort Inggeris. Kelebihan sifir Beaufort ialah peraturan untuk menyulitkan mesej dan menyahsulitnya adalah sama.

Perkembangan kriptografi yang meluas pada abad ke-16 dikaitkan dengan perkembangan sains semula jadi dan matematik. Pada masa yang sama, badan perkhidmatan diplomatik khas pertama muncul di Eropah, yang menangani isu menyulitkan surat-menyurat mereka sendiri dan menyahsulit surat-menyurat yang dipintas. Abad ke-17-18 turun dalam sejarah kriptografi sebagai era "pejabat hitam". "Pejabat hitam"- istimewa agensi kerajaan mengenai pemintasan, tafsiran dan penyahsulitan surat-menyurat, terutamanya diplomatik. Kakitangan "pejabat hitam" termasuk pemecah kod, ejen pemintasan mel, jurutulis-penyalin, penterjemah, pakar pemalsuan meterai, ahli kimia, pakar pemalsuan tulisan tangan, dsb. Pakar ini sangat dihargai dan berada di bawah perlindungan khas pihak berkuasa; pengkhianatan dihukum dengan sangat berat.

Pada abad ke-19, peranti penyulitan mekanikal pertama muncul. Yang paling terkenal ialah ciptaan Kolonel Tentera Amerika D. Wadsworth dan jurutera Inggeris C. Wheatstone. Peranti Wadsworth (1817) adalah pengekod mekanikal, elemen utamanya ialah dua cakera penyulitan, di hujung bahagian bawah terdapat huruf abjad Inggeris, dan pada penghujung detik terdapat huruf dan nombor dari 2 hingga 8 Huruf pada cakera kedua boleh ditanggalkan, yang memungkinkan untuk menukar teks abjad yang disulitkan. Cakera itu diletakkan dalam bekas dengan tingkap dipotong ke dalamnya. Apabila cakera pertama diputar, huruf mesej terbuka dipaparkan di tetingkap atas. Cakera disambungkan oleh transmisi gear, jadi huruf teks sifir yang sepadan muncul di tetingkap bawah. Peranti ini dilengkapi dengan butang khas untuk memutuskan sambungan cakera. Ini diperlukan untuk memastikan pemasangan peranti dalam kedudukan awal yang diberikan. Idea Alberti, Trithemius dan Vigenère boleh dilihat dalam peranti Wadsworth. Walaupun pada hakikatnya peranti itu agak rumit, dan pada masa itu sifir "manual" yang tidak memerlukan peranti khas dikuasai, ia berfungsi sebagai dorongan untuk pembangunan peranti mekanikal untuk menyulitkan dan menyahsulit mesej.

Cadangan menarik untuk mencipta peranti penyulitan mekanikal telah dibuat oleh Charles Wheatstone pada separuh kedua abad ke-20. Dalam peranti Wheatstone seseorang boleh melihat idea Alberti, serta Wadsworth. Secara luaran, peranti Wheatstone menyerupai cakera Alberti, tetapi ia melaksanakan idea paradoks - abjad plaintext mengandungi lebih banyak aksara daripada yang disulitkan. Masalah kekaburan dalam menentukan huruf mesej terbuka telah diselesaikan dengan cemerlang oleh Wheatstone. Dalam Rajah. Rajah 1.4 menunjukkan rupa peranti Wheatstone.

Pemacu luaran, cakera abjad teks biasa, terdiri daripada 27 aksara (26 huruf abjad Inggeris dan tanda "+" khas yang menunjukkan ruang). Abjad dalaman mentakrifkan abjad plaintext dan terdiri daripada 26 huruf biasa yang disusun dalam sebarang susunan. susunan kunci. Pada paksi yang sama dengan cakera (abjad) peranti, disambungkan dengan gear berukuran 27x26 masing-masing, terdapat dua tangan, seperti dalam jam tangan moden.

nasi. 1.4. Penampilan C. Peranti Wheatstone

Pada permulaan penyulitan, anak panah besar (panjang) menunjuk ke tanda "+". Anak panah kecil yang disambungkan ke gear berulir besar diletakkan pada kedudukan yang sama, i.e. "Jam" menunjukkan "12.00". Huruf teks biasa ditetapkan dengan memusingkan anak panah besar ke arah pergerakan mengikut arah jam. Selepas putaran ini, anak panah kecil menunjukkan tanda teks sifir. Oleh itu, apabila cakera besar diputar sepenuhnya, cakera kecil beralih dengan satu berkenaan dengan keadaan relatif awal kedua-dua cakera, yang membawa kepada perubahan anjakan dalam abjad teks sifir berbanding dengan abjad plaintext. Pada akhir setiap perkataan, anak panah besar diletakkan pada tanda "+", huruf yang ditunjuk oleh anak panah pendek ditulis sebagai tanda teks sifir. Untuk mengelakkan kekaburan dalam penyahsulitan, menggandakan huruf dalam plaintext tidak dibenarkan. Huruf yang diulang harus sama ada ditinggalkan atau digantikan dengan beberapa huruf yang jarang berlaku, contohnya Q. Contohnya, perkataan THE APPLE apabila disulitkan ditulis sebagai +THE+APLE+ atau +THE+APQLE+.

Ciptaan Wheatstone, seperti Wadsworth, tidak menemui aplikasi yang meluas. Bagaimanapun, nasib cadangannya yang lain dalam bidang kriptografi - sifir penggantian bigram - ternyata lebih baik, walaupun sifir itu dinamakan secara tidak adil sempena rakan pencipta Baron Playfair. Pada masa yang sama, Playfair sendiri berkelakuan sangat betul: apabila mempopularkan ciptaan itu, dia selalu menunjukkan nama pengarang - Wheatstone, tetapi sejarah menetapkan sebaliknya: sifir diberi nama bukan pencipta, tetapi pempopular. Sifir Playfair akan dibincangkan secara terperinci dalam bahagian seterusnya.

Pada awal abad ke-20, G. Vernam Amerika membuat sumbangan besar kepada pembangunan kriptografi. Pada tahun 1917, semasa seorang pekerja syarikat telegraf, dia mencadangkan idea penyulitan automatik mesej telegraf, intipatinya adalah seperti berikut. Teks biasa diwakili dalam kod Baudot (dalam bentuk "kombinasi nadi" lima digit). Dalam kod ini, sebagai contoh, huruf "A" kelihatan seperti (+ + - - -). Di atas kertas, tanda "+" bermaksud lubang, dan tanda "-" bermaksud ketiadaannya. Apabila membaca dari pita, lima probe logam "mengenal pasti" lubang (jika terdapat lubang, probe menutup litar elektrik). Denyutan semasa dihantar ke talian komunikasi. Vernam mencadangkan menyimpan secara elektromekanik denyutan tanda teks rahsia dengan denyutan kunci rahsia, yang merupakan set huru-hara huruf abjad yang sama. Penambahan, mengikut istilah moden, telah dijalankan modulo 2. G. Vernam mencipta peranti yang melakukan operasi penyulitan secara automatik, tanpa penyertaan penyulitan, dengan itu menandakan permulaan apa yang dipanggil "penyulitan linear," apabila proses penyulitan dan penghantaran mesej berlaku serentak. Sehingga itu, penyulitan adalah awal, jadi penyulitan linear dengan ketara meningkatkan kecekapan komunikasi. Sifir Vernam mempunyai kekuatan kriptografi yang luar biasa. Pada masa yang sama, kelemahan sistem penyulitan ini adalah jelas - kunci mesti mempunyai panjang yang sama dengan plaintext. Untuk menyahsulit pada hujung penerimaan komunikasi, anda perlu memindahkan ke sana (melalui saluran rahsia dan selamat) kunci yang cukup panjang. Pada pelaksanaan praktikal ini menimbulkan masalah, dan masalah yang sangat penting, yang menentukan penyebaran sederhana sifir Vernam. Vernam sendiri bukanlah ahli matematik-kriptografer, bagaimanapun, dia menegaskan bahawa kunci sifir tidak boleh diulang semasa penyulitan, dan dalam hal ini, seperti yang ditunjukkan oleh sejarah kriptografi, dia betul. Ideanya menimbulkan pendekatan baharu untuk perlindungan maklumat yang boleh dipercayai apabila menghantar sejumlah besar mesej.

Separuh pertama abad ke-20 menjadi "zaman keemasan" mesin penyulitan elektromekanikal. Keluarga mesin penyulitan elektromekanikal Jerman yang paling terkenal ialah Enigma. Pelbagai pengubahsuaian mesin penyulitan ini digunakan oleh tentera Jerman dari penghujung tahun 1923 hingga 1945. Pada tahun 1943, sekutu pakatan anti-Hitler berjaya "menggodam" mesin Enigma, yang memainkan peranan besar dalam kemenangan dalam Perang Dunia II. Untuk menghantar mesej paling rahsia semasa Perang Dunia II, orang Jerman menggunakan mesin penyulitan Lorenz. Tentera AS menggunakan peranti penyulitan mekanikal M-94 dari 1923 hingga 1943. Peranti ini berdasarkan cakera Alberti. Mesin Hebern MarkII digunakan untuk melindungi surat-menyurat diplomatik di Amerika Syarikat. Pakar kriptografi Sweden B. Hagelin membangunkan peranti penyulitan CD-57 untuk polis rahsia Perancis, dan mesin penyulitan M-209 untuk perkhidmatan perisikan Perancis. Pengubahsuaian mesin ini juga digunakan oleh tentera Amerika dalam Perang Dunia II. Dari 1939 hingga 1952, Jepun menggunakan mesin penyulitan untuk melindungi surat-menyurat diplomatik yang dipanggil Jenis 97 dan pengubahsuaiannya. Di Amerika Syarikat, kereta ini menerima gelaran berwarna-warni "Kod Ungu" dan "Kod Merah". Di USSR sebelum perang dan semasa Great Perang Patriotik Mesin pengekodan cakera bersaiz kecil K-37 "Crystal" digunakan secara meluas. Hanya pada tahun 1940, 100 set mesin ini dihasilkan. Selepas perang, keputusan operasi K-37 telah disimpulkan dan kerja telah dijalankan untuk menambah baiknya lagi.

  • Mukadimah
  • Istilah asas
  • Algoritma penyulitan asas
  • Tandatangan digital
  • Fungsi cincang kriptografi

Mukadimah

Orang yang berbeza bermaksud perkara yang berbeza dengan penyulitan. Kanak-kanak bermain dengan kod mainan dan bahasa rahsia. Ini, bagaimanapun, tiada kaitan dengan kriptografi sebenar. kriptografi sebenar ( kriptografi yang kuat) mesti menyediakan tahap kerahsiaan sedemikian sehingga maklumat kritikal boleh dilindungi dengan pasti daripada penyahsulitan organisasi besar--- seperti mafia, syarikat transnasional dan negara besar. Kriptografi sebenar hanya digunakan untuk tujuan ketenteraan pada masa lalu. Namun, kini, dengan kemunculan masyarakat maklumat, ia menjadi alat utama untuk memastikan privasi.

Apabila masyarakat maklumat muncul, negeri-negeri besar dapat mengakses cara teknologi pengawasan keseluruhan berjuta-juta orang. Oleh itu, kriptografi menjadi salah satu alat utama untuk memastikan kerahsiaan, kepercayaan, kebenaran, pembayaran elektronik, keselamatan korporat dan banyak lagi perkara penting.

Kriptografi bukan lagi ciptaan ketenteraan yang tidak boleh dikacau. Masanya telah tiba untuk mengeluarkan misteri daripada kriptografi dan menggunakan semua keupayaannya untuk faedah masyarakat moden. Penggunaan kriptografi yang meluas adalah salah satu daripada beberapa cara untuk melindungi seseorang daripada situasi di mana dia tiba-tiba mendapati dirinya hidup dalam keadaan totalitarian yang boleh mengawal setiap pergerakannya.

Istilah asas

Bayangkan anda perlu menghantar mesej kepada penerima. Anda ingin memastikan bahawa tiada sesiapa selain penerima boleh membaca maklumat yang dihantar. Walau bagaimanapun, sentiasa ada kemungkinan seseorang akan membuka sampul surat atau memintas e-mel.

Dalam terminologi kriptografi, mesej asal dipanggil dalam teks yang jelas (teks kosong atau cleartext). Menukar teks sumber untuk menyembunyikan kandungannya daripada orang lain dipanggil penyulitan (penyulitan). Mesej yang disulitkan dipanggil teks sifir (teks sifir). Proses di mana teks biasa diekstrak daripada teks sifir dipanggil penyahsulitan (penyahsulitan). Biasanya, proses penyulitan dan penyahsulitan menggunakan beberapa jenis kunci (kunci) dan algoritma memastikan penyahsulitan hanya boleh dilakukan dengan mengetahui kunci ini.

Kriptografi--- ialah ilmu bagaimana memastikan kerahsiaan sesuatu mesej. Analisis kriptografi--- ialah ilmu bagaimana buka mesej yang disulitkan, iaitu, cara mengekstrak plaintext tanpa mengetahui kuncinya. Mereka berurusan dengan kriptografi ahli kriptografi, dan mereka melakukan kriptanalisis cryptanalysts .

Kriptografi merangkumi semua aspek praktikal pemesejan selamat, termasuk pengesahan, tandatangan digital, wang elektronik dan banyak lagi. Kriptologi--- ialah cabang matematik yang mengkaji asas matematik kaedah kriptografi.

Algoritma penyulitan asas

Kaedah penyulitan/penyahsulitan dipanggil kod (sifir). Sesetengah algoritma penyulitan adalah berdasarkan fakta bahawa kaedah penyulitan (algoritma) itu sendiri adalah rahsia. Pada masa kini kaedah sedemikian hanya mempunyai kepentingan sejarah dan tidak mempunyai kepentingan praktikal. Semua algoritma moden digunakan kunci untuk menguruskan penyulitan dan penyahsulitan; mesej hanya boleh berjaya dinyahsulit jika kunci diketahui. Kunci yang digunakan untuk penyahsulitan mungkin tidak sama dengan kunci yang digunakan untuk penyulitan, tetapi dalam kebanyakan algoritma kuncinya adalah sama.

Algoritma berasaskan kunci dibahagikan kepada dua kelas: simetri (atau algoritma kunci rahsia) dan asimetri (atau algoritma kunci awam). Perbezaannya ialah algoritma simetri menggunakan kunci yang sama untuk penyulitan dan penyahsulitan (atau kunci penyahsulitan hanya dikira daripada kunci penyulitan). Walaupun algoritma asimetri menggunakan kunci yang berbeza, dan kunci penyahsulitan tidak boleh dikira daripada kunci penyulitan.

Algoritma smetrik dibahagikan kepada sifir aliran Dan sifir blok . Penstriman membolehkan anda menyulitkan maklumat sedikit demi sedikit, sementara yang menyekat berfungsi dengan set bit data tertentu (biasanya saiz blok ialah 64 bit) dan menyulitkan set ini sebagai satu keseluruhan. Anda boleh mendapatkan idea awal tentang mereka dalam artikel mengenai algoritma.

Sifir asimetri (juga dipanggil algoritma kunci awam, atau lebih umum kriptografi kunci awam) membenarkan kunci awam disediakan kepada semua orang (katakan, diterbitkan dalam akhbar). Ini membolehkan sesiapa sahaja menyulitkan mesej. Namun, hanya orang yang betul(orang yang memiliki kunci penyahsulitan). Kunci penyulitan dipanggil kunci awam, dan kunci penyahsulitan --- kunci peribadi atau kunci rahsia .

Algoritma penyulitan/penyahsulitan moden agak rumit dan tidak boleh dijalankan secara manual. Algoritma kriptografi sebenar direka untuk digunakan oleh komputer atau peranti perkakasan khas. Dalam kebanyakan aplikasi, kriptografi dilakukan oleh perisian dan terdapat banyak pakej kriptografi yang tersedia.

Secara umumnya, algoritma simetri adalah lebih pantas daripada algoritma asimetri. Dalam amalan, kedua-dua jenis algoritma sering digunakan bersama: algoritma kunci awam digunakan untuk menghantar kunci rahsia yang dijana secara rawak, yang kemudiannya digunakan untuk menyahsulit mesej.

Banyak algoritma kriptografi berkualiti tinggi tersedia secara meluas - di kedai buku, perpustakaan, pejabat paten atau di Internet. Algoritma simetri yang terkenal termasuk DES dan IDEA. Mungkin algoritma asimetri terbaik ialah RSA. Halaman kesusasteraan menyediakan senarai buku teks yang baik mengenai kriptografi dan topik berkaitan.

Tandatangan digital

Beberapa algoritma asimetri boleh digunakan untuk menjana tandatangan digital . Tandatangan digital ialah blok data yang dijana menggunakan kunci rahsia tertentu. Dalam kes ini, menggunakan kunci awam, anda boleh mengesahkan bahawa data itu sebenarnya dijana menggunakan kunci peribadi ini. Algoritma penjanaan tandatangan digital mesti memastikan bahawa mustahil tanpa kunci rahsia untuk mencipta tandatangan yang, apabila disahkan, ternyata betul.

Tandatangan digital digunakan untuk mengesahkan bahawa mesej benar-benar datang daripada pengirim tertentu (dengan mengandaikan bahawa hanya pengirim yang mempunyai kunci peribadi yang sepadan dengan kunci awamnya). Tandatangan juga digunakan untuk menampal cap masa (cap masa) pada dokumen: pihak yang kami percayai menandatangani dokumen bercap masa dengan kunci peribadi mereka dan dengan itu mengesahkan bahawa dokumen itu telah wujud pada masa yang diisytiharkan dalam cap masa.

Tandatangan digital juga boleh digunakan untuk pengesahan ( pensijilan --- untuk memperakui) bahawa dokumen itu adalah milik orang tertentu. Ini dilakukan seperti ini: kunci awam dan maklumat tentang miliknya ditandatangani oleh pihak yang dipercayai. Pada masa yang sama, kita boleh mempercayai penandatangan berdasarkan fakta bahawa kuncinya ditandatangani oleh pihak ketiga. Ini mewujudkan hierarki kepercayaan. Jelas sekali, beberapa kunci mesti menjadi punca hierarki (iaitu, kami mempercayainya bukan kerana ia ditandatangani oleh seseorang, tetapi kerana kami percaya a-priori bahawa ia boleh dipercayai). DALAM infrastruktur utama berpusat terdapat sebilangan kecil kunci akar rangkaian (contohnya, agensi kerajaan yang diberi kuasa; ia juga dipanggil agensi pensijilan --- pihak berkuasa pensijilan). DALAM infrastruktur yang diedarkan tidak perlu mempunyai kunci akar universal, dan setiap pihak boleh mempercayai set kunci akarnya sendiri (katakan, kuncinya sendiri dan kunci yang ditandatangani olehnya). Konsep ini dipanggil rangkaian kepercayaan (web amanah) dan dilaksanakan, sebagai contoh, dalam PGP.

Tandatangan digital dokumen biasanya dibuat seperti ini: apa yang dipanggil hadam (ringkasan mesej) dan maklumat tentang siapa yang menandatangani dokumen, cap masa, dsb. ditambahkan padanya. Rentetan yang terhasil kemudian disulitkan dengan kunci rahsia penandatangan menggunakan satu atau algoritma lain. Set bit yang disulitkan yang terhasil ialah tandatangan. Tandatangan biasanya disertakan dengan kunci awam penandatangan. Penerima mula-mula memutuskan sendiri sama ada dia mempercayai bahawa kunci awam adalah milik siapa yang sepatutnya dimiliki (menggunakan rangkaian kepercayaan atau pengetahuan priori), dan kemudian menyahsulit tandatangan menggunakan kunci awam. Jika tandatangan dinyahsulit secara normal dan kandungannya sepadan dengan dokumen (cerna, dsb.), maka mesej itu dianggap disahkan.

Beberapa kaedah untuk mencipta dan mengesahkan tandatangan digital tersedia secara percuma. Yang paling terkenal ialah algoritma RSA.

Fungsi cincang kriptografi

Fungsi cincang kriptografi biasanya digunakan untuk menjana ringkasan mesej apabila mencipta tandatangan digital. Fungsi hash memetakan mesej kepada a saiz tetap nilai hash (nilai hash ) sedemikian rupa sehingga keseluruhan set mesej yang mungkin diedarkan sama rata ke atas set nilai cincang. Walau bagaimanapun, fungsi cincang kriptografi melakukan ini dengan cara yang hampir mustahil untuk menyesuaikan dokumen dengan nilai cincang yang diberikan.

Fungsi cincang kriptografi biasanya menghasilkan nilai yang panjangnya 128 bit atau lebih. Nombor ini jauh lebih besar daripada bilangan mesej yang akan wujud di dunia.

Banyak fungsi cincang kriptografi yang baik tersedia secara percuma. Yang biasa dikenali termasuk MD5 dan SHA.

Penjana nombor rawak kriptografi

Penjana nombor rawak kriptografi menghasilkan nombor rawak yang digunakan dalam aplikasi kriptografi, seperti penjanaan kunci. Penjana konvensional nombor rawak tersedia dalam banyak bahasa pengaturcaraan dan persekitaran perisian, tidak sesuai untuk keperluan kriptografi (ia dicipta dengan matlamat untuk mendapatkan taburan rawak statistik; penganalisis kriptografi boleh meramalkan kelakuan penjana rawak tersebut).

Sebaik-baiknya, nombor rawak harus berdasarkan sumber fizikal sebenar maklumat rawak yang tidak boleh diramalkan. Contoh sumber sedemikian termasuk peranti semikonduktor bising, bit tertib rendah audio didigitalkan dan selang antara gangguan peranti atau ketukan kekunci. Bunyi yang terhasil daripada sumber fizikal kemudiannya "disuling" oleh fungsi cincang kriptografi supaya setiap bit bergantung pada setiap bit. Selalunya, kolam yang agak besar (beberapa ribu bit) digunakan untuk menyimpan maklumat rawak, dan setiap bit kolam dibuat bergantung pada setiap bit maklumat hingar dan satu sama lain daripada kolam itu selamat dari segi kriptografi ( kuat) cara.

Apabila tiada sumber fizikal sebenar bunyi bising, anda perlu menggunakan nombor rawak pseudo. Keadaan ini tidak diingini, tetapi sering berlaku pada komputer tujuan umum. Ia sentiasa diingini untuk mendapatkan beberapa jenis bunyi persekitaran --- katakan, daripada magnitud kelewatan dalam peranti, statistik penggunaan sumber, statistik rangkaian, gangguan papan kekunci atau sesuatu yang lain. Matlamatnya adalah untuk mendapatkan data yang tidak dapat diramalkan oleh pemerhati luar. Untuk mencapai ini, kolam rawak mesti mengandungi sekurang-kurangnya 128 bit entropi sebenar.

Penjana nombor pseudorandom kriptografi biasanya menggunakan kumpulan besar (nilai benih) yang mengandungi maklumat rawak. Bit dijana dengan pensampelan daripada kolam, mungkin berjalan melalui fungsi cincang kriptografi untuk menyembunyikan kandungan kolam daripada pemerhati luar. Apabila bahagian baru bit diperlukan, kolam dikocok dengan penyulitan dengan kunci rawak (ini boleh diambil dari bahagian kolam yang tidak digunakan) supaya setiap bit dalam kolam bergantung pada setiap bit lain. Bunyi persekitaran baharu mesti ditambah pada kolam sebelum kocok untuk meramalkan nilai kolam baharu lebih sukar.

Walaupun penjana nombor rawak selamat secara kriptografi tidak terlalu sukar untuk dilaksanakan dengan reka bentuk yang teliti, ia merupakan isu yang sering diabaikan. Oleh itu, kepentingan penjana nombor rawak kriptografi harus ditekankan --- jika ia dilakukan dengan buruk, ia boleh menjadi elemen sistem yang paling terdedah.

Beberapa contoh penjana nombor rawak kriptografi tersedia.

Tahap perlindungan yang disediakan oleh sifir

Sistem kriptografi yang baik direka untuk memecahnya sesukar mungkin. Adalah mungkin untuk membina sistem yang dalam amalan tidak boleh dibuka (walaupun fakta ini biasanya tidak dapat dibuktikan). Ia tidak memerlukan banyak usaha untuk dilaksanakan. Satu-satunya perkara yang diperlukan ialah ketepatan dan pengetahuan asas. Tidak ada kemaafan untuk pemaju jika dia meninggalkan kemungkinan membuka sistem. Semua mekanisme yang boleh digunakan untuk menggodam sistem mesti didokumenkan dan dibawa ke perhatian pengguna akhir.

Secara teorinya, sebarang algoritma penyulitan menggunakan kunci boleh dipecahkan dengan mencari semua nilai kunci. Jika kunci dipilih menggunakan kaedah kekerasan (kekerasan), kuasa komputer yang diperlukan meningkat secara eksponen dengan peningkatan panjang kunci. Kunci 32-bit memerlukan 2^32 (kira-kira 10^9) langkah. Tugas ini adalah dalam kuasa mana-mana amatur dan boleh diselesaikan oleh komputer rumah. Sistem dengan kunci 40-bit (contohnya, algoritma RC4 versi eksport Amerika) memerlukan 2^40 langkah --- kuasa komputer sedemikian tersedia di kebanyakan universiti dan juga dalam syarikat kecil. Sistem dengan kekunci 56-bit (DES) memerlukan usaha yang ketara untuk membuka, tetapi boleh dibuka dengan mudah menggunakan peralatan khas. Kos peralatan sedemikian adalah besar, tetapi ia berpatutan untuk mafia, syarikat besar dan kerajaan. Kekunci dengan panjang 64 bit pada masa ini boleh dibuka oleh negeri besar, dan dalam beberapa tahun akan datang ia akan tersedia untuk dibuka oleh organisasi jenayah, syarikat besar dan negeri kecil. Kekunci yang panjangnya 80 bit mungkin terdedah pada masa hadapan. Kekunci 128-bit berkemungkinan kekal tidak boleh dipecahkan dengan kekerasan untuk masa hadapan yang boleh dijangka. Kekunci yang lebih panjang juga boleh digunakan. Dalam had, tidak sukar untuk memastikan bahawa tenaga yang diperlukan untuk pembukaan (dengan mengandaikan bahawa kuantum mekanikal kuantum minimum tenaga dibelanjakan setiap langkah) melebihi jisim matahari atau alam semesta.

Walau bagaimanapun, panjang kunci bukanlah segala-galanya. Banyak sifir boleh dipecahkan tanpa mencuba semua kombinasi yang mungkin. Secara umumnya, sangat sukar untuk menghasilkan sifir yang tidak boleh dipecahkan dengan cara lain yang lebih cekap. Membangunkan sifir anda sendiri boleh menjadi menyeronokkan, tetapi... aplikasi sebenar Menggunakan sifir buatan sendiri tidak digalakkan melainkan anda pakar dan 100 peratus pasti tentang apa yang anda lakukan.

Secara umumnya, anda harus menjauhi algoritma yang tidak diterbitkan atau rahsia. Selalunya pembangun algoritma sedemikian tidak pasti kebolehpercayaannya, atau kebolehpercayaan bergantung pada kerahsiaan algoritma itu sendiri. Secara umumnya, tiada algoritma yang kerahsiaannya bergantung pada kerahsiaan algoritma itu sendiri boleh dipercayai. Khususnya, jika anda mempunyai program penyulitan, anda boleh mengupah pengaturcara yang akan membukanya dan memulihkan algoritma menggunakan kaedah kejuruteraan terbalik. Pengalaman menunjukkan bahawa kebanyakan algoritma rahsia yang kemudiannya diketahui umum ternyata tidak boleh dipercayai.

Panjang kunci yang digunakan dalam kriptografi kunci awam biasanya lebih panjang daripada dalam algoritma simetri. Masalahnya di sini bukan dalam memilih kunci, tetapi dalam mencipta semula kunci rahsia daripada kunci awam. Dalam kes RSA, masalahnya adalah bersamaan dengan pemfaktoran integer besar yang merupakan hasil darab pasangan prima yang tidak diketahui. Dalam kes beberapa sistem kripto lain, masalahnya adalah bersamaan dengan mengira logaritma diskret modulo integer besar (masalah ini dianggap hampir sama dalam kesukaran kepada masalah pemfaktoran). Terdapat sistem kripto yang mengeksploitasi masalah lain.

Untuk memberi gambaran tentang kesukaran memecahkan RSA, modul 256-bit boleh difaktorkan dengan mudah oleh pengaturcara biasa. Kekunci 384-bit boleh dipecahkan oleh kumpulan penyelidikan universiti atau syarikat. Kekunci 512-bit berada dalam jangkauan keadaan utama. Kekunci yang panjangnya 768 bit mungkin tidak selamat masa yang lama. Kekunci sepanjang 1024 bit boleh dianggap selamat sehingga terdapat kemajuan yang ketara dalam algoritma pemfaktoran; Kebanyakan orang menganggap kunci 2048 panjang boleh dipercayai selama beberapa dekad. Lagi maklumat terperinci Untuk maklumat lanjut tentang panjang kunci RSA, lihat artikel oleh Bruce Scheier.

Adalah penting untuk menekankan itu Kekuatan sistem kriptografi ditentukan oleh pautan terlemahnya. Tiada aspek reka bentuk sistem harus diabaikan, daripada pemilihan algoritma kepada dasar penggunaan dan pengedaran utama.

Analisis kriptografi dan serangan ke atas sistem kripto

Cryptanalysis ialah sains untuk mentafsir mesej yang disulitkan tanpa mengetahui kuncinya. Terdapat banyak pendekatan cryptanalytic. Beberapa yang paling penting untuk pembangun disenaraikan di bawah.

  • Menyerang dengan pengetahuan hanya teks sifir (serangan sifirteks sahaja): Ini adalah situasi di mana penyerang tidak mengetahui apa-apa tentang kandungan mesej, dan dia hanya perlu bekerja dengan teks sifir itu sendiri. Dalam amalan, selalunya mungkin untuk membuat tekaan yang munasabah tentang struktur teks, kerana banyak mesej mempunyai tajuk standard. Malah surat biasa dan dokumen bermula dengan maklumat yang mudah diramal. Ia juga boleh sering diandaikan bahawa blok maklumat tertentu mengandungi perkataan tertentu.
  • Serang dengan pengetahuan tentang kandungan penyulitan (serangan teks biasa yang diketahui): Penyerang mengetahui atau boleh meneka kandungan semua atau sebahagian daripada teks sifir. Tugasnya adalah untuk menguraikan mesej yang lain. Ini boleh dilakukan sama ada dengan mengira kunci penyulitan atau memintasnya.
  • Serang dengan teks yang diberikan (serangan pilihan-plaintext): Penyerang mempunyai keupayaan untuk mendapatkan dokumen yang disulitkan untuk sebarang teks yang dia perlukan, tetapi tidak mengetahui kuncinya. Tugasnya adalah untuk mencari kunci. Sesetengah kaedah penyulitan, dan RSA khususnya, agak terdedah kepada jenis serangan ini. Apabila menggunakan algoritma sedemikian, penjagaan mesti diambil untuk memastikan bahawa penyerang tidak boleh menyulitkan teks yang diberikan olehnya.
  • Serangan berdiri (Serangan lelaki di tengah): Serangan itu bertujuan untuk pertukaran mesej yang disulitkan dan, khususnya, pada protokol pertukaran utama. Ideanya ialah apabila dua pihak bertukar kunci untuk komunikasi rahsia (contohnya, menggunakan sifir Diffie-Hellman), musuh menyusup ke baris pemesejan di antara mereka. Seterusnya, musuh memberikan setiap pihak kunci sendiri. Akibatnya, setiap pihak akan mempunyai kunci yang berbeza, setiap satu diketahui oleh musuh. Kini musuh akan menyahsulit setiap mesej dengan kuncinya sendiri dan kemudian menyulitkannya dengan kunci yang berbeza sebelum menghantarnya kepada penerima. Pihak-pihak akan mempunyai ilusi surat-menyurat rahsia, sedangkan pada hakikatnya musuh membaca semua mesej.

Satu cara untuk menghalang jenis serangan ini adalah untuk pihak-pihak bertukar kunci untuk mengira fungsi cincang kriptografi nilai protokol pertukaran (atau sekurang-kurangnya nilai kunci), menandatanganinya dengan algoritma tandatangan digital dan menghantar tandatangan kepada yang lain. pesta. Penerima akan mengesahkan tandatangan dan bahawa nilai cincang sepadan dengan nilai yang dikira. Kaedah ini digunakan, khususnya, dalam sistem Photuris.

    Serangan Pemasa (serangan masa): Jenis serangan baharu ini adalah berdasarkan pengukuran secara berurutan masa yang diperlukan untuk melaksanakan operasi pendinding modulo integer. Sekurang-kurangnya sifir berikut terdedah kepadanya: RSA, Diffie-Hellman, dan kaedah lengkung elips. Artikel Paul Kocher membincangkan kaedah ini secara terperinci.

Terdapat banyak lagi serangan kriptografi dan pendekatan kriptanalitik. Walau bagaimanapun, perkara di atas mungkin yang paling penting untuk pembangunan sistem praktikal. Jika sesiapa akan mencipta algoritma penyulitan mereka sendiri, mereka perlu memahami isu ini dengan lebih mendalam. Satu tempat untuk mula mempelajari maklumat secara sistematik ialah buku cemerlang Bruce Schneier, Kriptografi Gunaan.

Terjemahan artikel Tatu Ylonen "Pengenalan kepada Kriptografi"

Pengenalan kepada Kriptografi

Apabila memindahkan atau menyimpan data, tugas melindungi maklumat daripada bacaan yang tidak diingini sering timbul. Selalunya, dalam kes ini, salah satu kaedah kriptografi (dari penulisan rahsia Yunani) digunakan. Tidak seperti kebanyakan istilah dalam perbendaharaan kata komputer, perkataan ini bukan daripada bahasa Inggeris, tetapi berasal dari bahasa Yunani.

Sejarah kriptografi kembali beribu-ribu tahun, dan banyak prinsip asas kriptografi moden diketahui, mungkin, dari zaman prasejarah, bagaimanapun, kemajuan yang ketara dalam teori penyulitan dicapai hanya secara relatif baru-baru ini, berkaitan dengan perkembangan teori maklumat moden.

Hampir semua kaedah kriptografi adalah untuk menukar data kepada satu set nombor terhingga simbol dan melaksanakan dua operasi asas pada simbol ini: penggantian dan pilih atur. Penggantian terdiri daripada menggantikan beberapa aksara dengan yang lain. Penyusunan semula terdiri daripada menukar susunan aksara. Dalam kes ini, pelbagai elemen mesej boleh bertindak sebagai simbol - contohnya, apabila menyulitkan mesej dalam bahasa semula jadi, huruf individu, perkataan atau bahkan keseluruhan ayat boleh tertakluk kepada penggantian dan penyusunan semula (seperti, sebagai contoh, dalam pembentangan alegori ajaib. dan teks suci). Dalam algoritma moden, operasi ini selalunya melibatkan blok bit berjujukan. Sesetengah teknik boleh digambarkan sebagai melaksanakan operasi penggantian pada mesej yang lengkap. Penggantian dan penyusunan semula dibuat mengikut peraturan tertentu. Dalam kes ini, harapannya ialah peraturan dan/atau parameter yang digunakan di dalamnya hanya diketahui oleh pengarang dan penerima mesej yang disulitkan dan tidak diketahui oleh pihak ketiga. Dalam era pra-komputer, mereka cuba mengklasifikasikan kedua-dua komponen proses penyulitan. Pada masa kini, algoritma standard biasanya digunakan untuk penyulitan, dan kerahsiaan mesej dicapai dengan mengklasifikasikan parameter yang digunakan oleh algoritma, kunci. Membaca mesej rahsia oleh orang luar, secara teorinya, boleh dilakukan dalam dua cara: dengan mencuri nilai kunci atau dengan meneka dengan menganalisis penyulitan yang dipintas. Jika peristiwa pertama boleh dicegah hanya dengan perlindungan fizikal dan organisasi, maka kemungkinan yang kedua ditentukan oleh algoritma yang digunakan. Di bawah kita akan merujuk kepada proses menganalisis penyulitan sebagai pemecahan sifir, dan kepada orang yang menjalankan proses ini sebagai pemecah. Secara saintifik, aktiviti ini dipanggil lebih neutral - cryptanalysis. Sebagai contoh, mesej bahasa semula jadi yang disulitkan dengan penggantian huruf individu terdedah kepada analisis kekerapan: berdasarkan fakta bahawa huruf yang berbeza muncul dengan frekuensi yang berbeza dalam teks, penyerang boleh dengan mudah - dan dengan keyakinan yang sangat tinggi - membina semula jadual penggantian. Terdapat contoh lain bagi algoritma yang tidak berjaya yang mengekalkan autokorelasi tertentu yang terdapat dalam mesej secara utuh - setiap parameter tersebut boleh digunakan sebagai asas untuk memulihkan teks mesej atau menemui kunci.

Rintangan sifir terhadap pencarian autokorelasi dalam mesej dipanggil kekuatan kriptografi algoritma. Walaupun menggunakan algoritma yang berjaya dalam pengertian ini, jika penyerang mengetahui bahawa data asal (tidak disulitkan) memenuhi satu atau keperluan lain, sebagai contoh, mengandungi perkataan tertentu atau dilengkapi dengan kod berlebihan, dia boleh melakukan penghitungan lengkap ruang kekunci: cuba semua nilai kunci yang dibenarkan oleh algoritma sehingga mesej yang memenuhi keperluan diterima. Apabila menggunakan kekunci saiz bit yang cukup besar, serangan sedemikian ternyata sangat mahal, tetapi kemajuan teknologi komputer sentiasa menolak sempadan "kecukupan" lebih jauh. Oleh itu, pada tahun 1998, rangkaian pengkomputeran yang diedarkan Bovine memecahkan mesej yang disulitkan dengan algoritma DES dengan kunci 56-bit dalam 56 jam bekerja. Cara yang mudah dan berkesan untuk memerangi serangan sedemikian adalah untuk mengembangkan ruang utama. Menambahkan kunci sebanyak satu bit menggandakan ruang - oleh itu, peningkatan linear dalam saiz kunci memastikan peningkatan eksponen dalam kos penghitungan. Sesetengah algoritma penyulitan tidak bergantung pada kedalaman bit kunci yang digunakan - dalam kes ini, pelanjutan dicapai dengan cara yang jelas. Jika algoritma bergantung pada kedalaman bit, anda boleh mengembangkan ruang hanya dengan menggunakan beberapa transformasi berbeza pada mesej, termasuk menggunakan algoritma yang sama, tetapi dengan kekunci yang berbeza. Satu lagi cara untuk menyukarkan tugas penyerang adalah dengan membungkus mesej sebelum menyulitkannya dan/atau menampalnya dengan bit rawak. Walau bagaimanapun, adalah penting untuk ditekankan bahawa bilangan bit kunci hanyalah anggaran atas isipadu ruang kunci, dan dalam banyak situasi anggaran ini dianggarkan terlalu tinggi. Sesetengah algoritma, mengikut sifatnya, hanya boleh menggunakan kekunci yang memenuhi syarat tertentu - contohnya, RSA menggunakan nombor perdana. Ini secara mendadak mengurangkan jumlah kerja brute-force, jadi untuk memastikan kekuatan kriptografi yang setanding, kedalaman bit kunci RSA mestilah lebih besar daripada algoritma yang membenarkan kunci sewenang-wenangnya. Kekuatan kriptografi yang rendah mungkin disebabkan oleh. bukan sahaja dengan algoritma penyulitan, tetapi juga dengan prosedur pemilihan kunci: jika kunci boleh menerima sebarang nilai binari kedalaman bit tertentu, tetapi pada hakikatnya penjana nombor pseudo-rawak yang mengalami heterogeniti digunakan untuk memilihnya, kami boleh mengurangkan dengan ketara jumlah ruang yang sebenarnya perlu diisi oleh penyerang mesej kami. Keadaan menjadi lebih teruk apabila perkataan bahasa semula jadi yang mudah diingati digunakan sebagai kunci: dalam kes ini, volum sebenar ruang kekunci, walaupun saiz bit yang agak besar, boleh diukur hanya dalam beberapa ribu nilai yang berbeza.

Algoritma penyulitan moden dibahagikan kepada dua kelas utama: dengan rahsia dan dengan kunci awam.

Algoritma dengan kunci rahsia, seterusnya, dibahagikan kepada penstriman (strim) dan blok (blok). Algoritma penstriman biasanya menggunakan penggantian aksara tanpa pilih atur. Peningkatan kekuatan kriptografi dicapai kerana fakta bahawa peraturan penggantian bergantung bukan sahaja pada simbol yang diganti, tetapi juga pada kedudukannya dalam aliran. Contoh algoritma penstriman yang paling mudah - dan pada masa yang sama sama sekali tidak boleh digodam - ialah sistem Vernam atau pad sekali sahaja. Sistem Vernam adalah berdasarkan kekunci yang saiznya sama atau lebih besar daripada saiz mesej. Apabila menghantar data binari, penggantian dilakukan dengan penambahan modulo 2 (eksklusif atau operasi) bagi bit kunci dan mesej yang sepadan.

Jika kunci dijana oleh penjana nombor rawak yang boleh dipercayai (contohnya, pendigitar hingar terma yang dikonfigurasikan dengan betul), tiada maklumat tentang autokorelasi dalam teks asal mesej akan membantu penyerang: dengan mencari melalui seluruh ruang kunci, penyerang akan terpaksa menyemak semua mesej yang sepadan dengan bilangan aksara dengan yang asal, termasuk termasuk semua mesej yang memenuhi perhubungan autokorelasi yang diandaikan. Kelebihan ini hilang jika kunci yang sama digunakan untuk menyulitkan berbilang mesej: penyerang yang memintas kesemuanya akan dapat menggunakan mesej tersebut dan meneka kandungannya untuk cuba menapis kunci daripada informasi berguna– oleh itu nama kedua algoritma. Oleh itu, penggunaan sistem Vernam dikaitkan dengan penjanaan mahal dan, yang paling penting, pengangkutan kunci yang sangat panjang, dan oleh itu ia hanya digunakan dalam sistem komunikasi kerajaan dan ketenteraan kecemasan.

Ternyata lebih praktikal untuk menggunakan urutan pseudo-rawak yang dihasilkan oleh algoritma deterministik sebagai kunci. Antara perang dunia pertama dan kedua, mesin penyulitan berdasarkan penjana mekanikal urutan sedemikian. Gabungan yang diperoleh dengan memutar roda dengan bilangan gigi yang saling prima paling kerap digunakan. Bahaya utama apabila menggunakan kaedah penyulitan sedemikian adalah keupayaan untuk menentukan titik semasa urutan - setelah mengenalinya (contohnya, dengan bukti tidak langsung, meneka bahawa perlu ada perkataan itu dan itu pada ketika ini dalam mesej, dan memulihkan elemen utama yang digunakan untuk menyulitkannya), penyerang boleh terus menjana dari titik yang sama dan menguraikan keseluruhan aliran selanjutnya.

Dalam sistem komunikasi digital, algoritma blok digunakan secara meluas, melakukan urutan – kadangkala agak kompleks – pilih atur, penggantian dan operasi lain pada blok data dengan panjang tetap, selalunya penambahan binari data dengan modulo utama beberapa jenis. Operasi menggunakan komponen kata kunci kapasiti yang agak kecil. Sebagai contoh, algoritma blok DES yang digunakan secara meluas menyulitkan blok 64-bit data dengan kunci 56-bit. Untuk teknologi pengkomputeran moden, carian lengkap ruang 56-bit adalah mungkin, jadi kini algoritma dengan lebar kunci yang lebih besar - Blowfish, IDEAL, dll. - semakin meluas.

Sifir kunci awam juga dipanggil sifir dua kunci. Jika dalam algoritma kunci tersembunyi kunci yang sama digunakan untuk mengekod dan menyahkod mesej, maka dua kunci digunakan: awam dan peribadi. Untuk membaca mesej yang dikodkan dengan kunci awam, anda memerlukan yang peribadi, dan sebaliknya. Sebagai tambahan kepada pertimbangan biasa tentang kekuatan kriptografi, algoritma sedemikian tertakluk kepada keperluan tambahan: kemustahilan untuk memulihkan kunci peribadi daripada kunci awam kecuali dengan carian menyeluruh ruang kunci. Skim penyulitan dua kunci adalah lebih sukar untuk dibangunkan daripada skim kunci persendirian: anda perlu mencari transformasi yang tidak boleh diterbalikkan menggunakan kunci awam yang digunakan di dalamnya, tetapi sedemikian rupa sehingga ia masih boleh diterbalikkan menggunakan kunci persendirian. Skim tahan kripto yang terkenal adalah berdasarkan produk nombor perdana berdigit besar, logaritma diskret dan lengkung elips. Algoritma yang paling banyak digunakan ialah algoritma RSA yang dibangunkan pada tahun 1977. Algoritma dua kunci yang diketahui memerlukan kunci untuk memenuhi keperluan yang sangat khusus, jadi untuk mencapai kekuatan kriptografi yang setanding dengan algoritma menyekat, adalah perlu untuk menggunakan kunci dengan kedalaman bit yang lebih tinggi. Oleh itu, sekatan Jabatan Perdagangan AS, yang ditarik balik pada tahun 2000, menetapkan had pada kedalaman bit kunci yang boleh digunakan dalam perisian yang dieksport ke luar Amerika Syarikat: untuk skim dengan kunci rahsia, had 48 bit telah ditetapkan , dan untuk skema dengan kunci awam, bit 480. Penggunaan kunci besar memerlukan usaha pengiraan yang ketara, jadi skema dua kunci paling kerap digunakan dalam kombinasi dengan yang konvensional: pemilik kunci awam menjana urutan bit rawak, mengekod ia dan menghantarnya kepada pemilik kunci persendirian. Urutan ini kemudiannya digunakan sebagai kunci rahsia untuk menyulitkan data. Apabila mewujudkan sambungan dua hala, pihak pertama boleh menukar kunci awam mereka dan kemudian menggunakannya untuk mewujudkan dua kunci rahsia berbeza yang digunakan untuk menyulitkan data yang dihantar ke arah yang berbeza. Skim ini menjadikannya praktikal untuk kerap menukar kunci rahsia: contohnya, dalam protokol SSH, kunci dijana untuk setiap sesi; dalam protokol rangkaian persendirian maya IPSEC, jangka hayat kunci dihadkan kepada lapan jam. Skim dua kunci telah menemui aplikasi yang lebih luas dalam bidang pengesahan dan tandatangan elektronik. Tandatangan elektronik ialah checksum mesej yang disulitkan kunci peribadi penghantar. Setiap pemegang kunci awam yang sepadan boleh mengesahkan ketulenan tandatangan dan integriti mesej. Ini boleh digunakan untuk mengesahkan ketulenan kedua-dua mesej dan penghantar. Menggunakan CRC biasa sebagai checksum adalah tidak mungkin kerana menjana mesej dengan CRC tertentu tidak sukar dari segi pengiraan. Untuk kegunaan dalam tandatangan elektronik, algoritma pengiraan khas telah dibangunkan jumlah semak, menjadikannya sukar untuk memilih mesej dengan jumlah yang diperlukan.

Memandangkan program ini adalah satu set kod mesin, adalah perlu untuk mempertimbangkan prosedur untuk memuatkannya Ram komputer (walau bagaimanapun, kebanyakan konsep yang dibincangkan di bawah, pada tahap tertentu boleh digunakan untuk perisian tegar atur cara dalam ROM).

Sebagai permulaan, mari kita anggap bahawa atur cara telah diprapasang menjadi satu objek serba lengkap yang dipanggil modul boleh dimuatkan atau boleh dimuatkan. Dalam nombor sistem operasi atur cara dipasang pada masa memuatkan daripada nombor besar modul berasingan yang mengandungi pautan antara satu sama lain.

Untuk mengelakkan kekeliruan, mari kita panggil bahagian modul but yang mengandungi kod boleh laku sebagai atur cara. Kami akan memanggil hasil pemuatan program ke dalam memori sebagai proses atau, jika kita perlu membezakan program yang dimuatkan daripada proses pelaksanaannya, imej proses. Imej proses kadangkala merangkumi bukan sahaja kod dan data proses (tertakluk kepada perubahan semasa proses pemuatan dan semasa program sedang berjalan), tetapi juga struktur data sistem yang dikaitkan dengan proses ini. Dalam kesusasteraan lama, proses sering dipanggil tugas.

Pada sistem dengan ingatan maya Setiap proses biasanya diperuntukkan ruang alamatnya sendiri, jadi kami kadangkala akan menggunakan istilah proses dalam pengertian ini. Walau bagaimanapun, dalam banyak sistem, sebahagian besar ruang alamat proses yang berbeza bertindih - ini digunakan untuk melaksanakan kod dan data yang dikongsi. Satu atau lebih utas atau utas kawalan boleh dilaksanakan dalam satu proses.

Sesetengah sistem juga menyediakan unit struktur yang lebih besar daripada proses. Sebagai contoh, dalam sistem Unix terdapat kumpulan proses yang digunakan untuk melaksanakan pengelompokan logik proses ke dalam pekerjaan. Sebilangan sistem juga mempunyai konsep sesi - koleksi semua tugasan yang dilancarkan pengguna dalam satu sesi kerja. Walau bagaimanapun, konsep yang berkaitan selalunya kurang ditakrifkan, dan maknanya sangat berbeza dari satu OS ke OS yang lain.

Dalam sistem lama dan dalam literatur lama, hasil pemuatan dipanggil tugas, dan proses dipanggil benang kawalan individu. Walau bagaimanapun, dalam sistem pengendalian yang paling biasa hari ini Keluarga Unix dan Win32, adalah kebiasaan untuk memanggil tugas sebagai proses, dan proses sebagai benang.