Skim penyulitan algoritma DES. Algoritma penyulitan DES dan AES

Algoritma penyulitan simetri yang paling biasa dan paling terkenal ialah DES (Standard Penyulitan Data). Algoritma ini dibangunkan pada tahun 1977 dan telah diterima pakai oleh NIST (National Institute of Standards and Technology, USA) sebagai standard pada tahun 1980.

DES ialah rangkaian Feishtel klasik dengan dua cawangan. Data disulitkan dalam blok 64-bit menggunakan kunci 56-bit. Algoritma menukar input 64-bit kepada output 64-bit dalam beberapa pusingan. Panjang kunci ialah 56 bit. Proses penyulitan terdiri daripada empat peringkat. Langkah pertama ialah pilih atur awal (IP) teks sumber 64-bit (pemutihan), di mana bit disusun semula mengikut jadual standard. Peringkat seterusnya terdiri daripada 16 pusingan fungsi yang sama, yang menggunakan operasi anjakan dan penggantian. Pada peringkat ketiga, bahagian kiri dan kanan output lelaran terakhir (ke-16) ditukar. Akhir sekali, peringkat keempat melakukan pilihatur IP-1 hasil yang diperoleh pada peringkat ketiga. Pilih atur IP-1 ialah songsang daripada pilih atur awal.

Rajah.4. Algoritma DES

Rajah menunjukkan kaedah yang menggunakan kunci 56-bit. Pada mulanya, kunci dibekalkan kepada input fungsi pilih atur. Kemudian, bagi setiap satu daripada 16 pusingan, subkunci K i ialah gabungan anjakan bulat kiri dan pilih atur. Fungsi pilih atur adalah sama untuk setiap pusingan, tetapi subkunci K i untuk setiap pusingan adalah berbeza disebabkan oleh peralihan berulang bit kunci.

Pilih atur awal dan penyongsangannya ditentukan oleh jadual standard. Jika M ialah 64 bit sewenang-wenangnya, maka X = IP(M) ialah 64 bit yang disusun semula. Jika kita menggunakan fungsi pilih atur songsang Y = IP-1 (X) = IP-1 (IP(M)), kita mendapat jujukan bit asal.

Penerangan tentang pusingan des

Mari kita lihat urutan transformasi yang digunakan dalam setiap pusingan.

Rajah.5. Ilustrasi pusingan algoritma DES

Blok input 64-bit melalui 16 pusingan, dengan setiap lelaran menghasilkan nilai 64-bit perantaraan. Bahagian kiri dan kanan setiap nilai perantaraan dianggap sebagai nilai 32-bit yang berasingan, ditandakan L dan R. Setiap lelaran boleh diterangkan seperti berikut:

R i = L i -1 F(R i -1 , K i)

Oleh itu, keluaran separuh kiri L i adalah sama dengan input separuh kanan R i-1. Keluaran separuh kanan R i adalah hasil daripada menggunakan operasi XOR kepada L i-1 dan fungsi F bergantung kepada R i-1 dan K i .

Mari lihat fungsi F dengan lebih terperinci. R i , yang dibekalkan kepada input fungsi F, mempunyai panjang 32 bit. Pertama, R i dikembangkan kepada 48 bit menggunakan jadual yang menentukan pilih atur ditambah pengembangan 16-bit. Pengembangan berlaku seperti berikut. 32 bit dibahagikan kepada kumpulan 4 bit dan kemudian dikembangkan kepada 6 bit dengan menambah bit terluar daripada dua kumpulan bersebelahan. Sebagai contoh, jika sebahagian daripada mesej input

Efgh ijkl mnop . . .

maka hasil pengembangan ialah mesej

Defghi hijklm lmnopq. . .

Nilai 48-bit yang terhasil kemudiannya di-XOR dengan subkunci 48-bit K i . Nilai 48-bit yang terhasil kemudiannya dimasukkan ke dalam fungsi penggantian, yang menghasilkan nilai 32-bit.

Penggantian terdiri daripada lapan kotak-S, setiap satunya menerima 6 bit sebagai input dan menghasilkan 4 bit sebagai output. Transformasi ini ditakrifkan oleh jadual khas. Bit pertama dan terakhir nilai input S-box menentukan nombor baris dalam jadual, 4 bit tengah menentukan nombor lajur. Persilangan baris dan lajur menentukan output 4-bit. Sebagai contoh, jika input ialah 011011, maka nombor baris ialah 01 (baris 1) dan nombor lajur ialah 1101 (lajur 13). Nilai dalam baris 1 dan lajur 13 ialah 5, i.e. output ialah 0101.

Nilai 32-bit yang terhasil kemudiannya diproses menggunakan pilih atur P, tujuannya adalah untuk menyusun semula bit sebanyak mungkin supaya dalam pusingan penyulitan seterusnya, setiap bit berkemungkinan akan diproses oleh kotak-S yang berbeza.

Kunci untuk pusingan individu K i terdiri daripada 48 bit. Kekunci K i diperoleh menggunakan algoritma berikut. Untuk kunci 56-bit yang digunakan sebagai input kepada algoritma, pilih atur dilakukan terlebih dahulu mengikut jadual Pilihan Permuted 1 (PC-1). Kunci 56-bit yang terhasil dibahagikan kepada dua bahagian 28-bit, masing-masing dilambangkan sebagai C0 dan D0. Pada setiap pusingan, C i dan D i secara bebas dialihkan secara kitaran ke kiri sebanyak 1 atau 2 bit, bergantung pada nombor bulat. Nilai yang terhasil adalah input untuk pusingan seterusnya. Ia juga merupakan input kepada Permuted Choice 2 (PC-2), yang menghasilkan nilai output 48-bit yang merupakan input kepada fungsi F(R i-1, K i).

Proses penyahsulitan adalah serupa dengan proses penyulitan. Input kepada algoritma ialah teks sifir, tetapi kekunci K i digunakan dalam susunan terbalik. K 16 digunakan pada pusingan pertama, K 1 digunakan pada pusingan terakhir. Biarkan output pusingan penyulitan ke-i adalah L i ||R i . Kemudian input yang sepadan bagi pusingan penyahsulitan (16-i)-th ialah R i ||L i .

Selepas pusingan terakhir proses penyahsulitan, kedua-dua bahagian keluaran ditukar supaya input pilih atur akhir IP-1 ialah R 16 ||L 16 . Output peringkat ini adalah plaintext.

Anotasi: Salah satu sistem kriptografi kunci persendirian yang paling terkenal ialah DES – Standard Penyulitan Data. Sistem ini adalah yang pertama menerima status standard negeri dalam bidang penyulitan data. Dan walaupun DES standard Amerika lama kini telah kehilangan status rasminya, algoritma ini masih patut diberi perhatian apabila mempelajari kriptografi. Kuliah ini juga menerangkan apa itu DES berganda, serangan bertemu-di-tengah, dan cara mengurangkannya. Kuliah ini juga membincangkan secara ringkas piawaian baru AS untuk sifir blok, algoritma Rijndael.

Tujuan kuliah: memperkenalkan pelajar kepada maklumat asas tentang algoritma penyulitan DES.

Maklumat asas

Salah satu sistem kriptografi kunci persendirian yang paling terkenal ialah DES – Standard Penyulitan Data. Sistem ini adalah yang pertama menerima status standard negeri dalam bidang penyulitan data. Ia telah dibangunkan oleh pakar IBM dan mula berkuat kuasa di Amerika Syarikat pada tahun 1977. Algoritma DES digunakan secara meluas untuk menyimpan dan menghantar data antara pelbagai sistem komputer; dalam sistem pos, sistem lukisan elektronik dan pertukaran elektronik maklumat komersial. Standard DES telah dilaksanakan dalam perisian dan perkakasan. Perusahaan dari negara yang berbeza telah melancarkan pengeluaran besar-besaran peranti digital menggunakan DES untuk penyulitan data. Semua peranti menjalani pensijilan mandatori untuk pematuhan standard.

Walaupun sistem ini tidak mempunyai status standard kerajaan untuk beberapa lama, ia masih digunakan secara meluas dan patut diberi perhatian apabila mengkaji sifir blok dengan kunci persendirian.

Panjang kunci dalam algoritma DES ialah 56 bit. Ia adalah dengan fakta ini bahawa kontroversi utama mengenai keupayaan untuk DES menentang pelbagai serangan. Seperti yang anda ketahui, mana-mana sifir blok dengan kunci persendirian boleh dipecahkan dengan mencuba semua kombinasi kekunci yang mungkin. Dengan panjang kunci 56 bit, 2 56 kekunci berbeza boleh dilakukan. Jika komputer mencari melalui 1,000,000 kekunci dalam satu saat (yang lebih kurang sama dengan 2 20), maka ia akan mengambil masa 2 36 saat atau lebih sedikit dua ribu tahun untuk mencari kesemua 2 56 kekunci, yang, sudah tentu, tidak boleh diterima untuk penyerang.

Walau bagaimanapun, sistem pengkomputeran yang lebih mahal dan lebih pantas adalah mungkin daripada Komputer peribadi. Sebagai contoh, jika mungkin untuk menggabungkan sejuta pemproses untuk pengiraan selari, maka masa pemilihan kunci maksimum dikurangkan kepada kira-kira 18 jam. Masa ini tidak terlalu lama, dan penganalisis kriptografi yang dilengkapi dengan peralatan mahal itu boleh memecahkan data yang disulitkan DES dengan mudah dalam jumlah masa yang munasabah.

Pada masa yang sama, ia boleh diperhatikan bahawa sistem DES Ia boleh digunakan dalam aplikasi bersaiz kecil hingga sederhana untuk menyulitkan data yang bernilai kecil. Untuk menyulitkan data kepentingan negara atau mempunyai nilai komersial yang ketara, sistem DES sudah tentu tidak boleh digunakan pada masa ini. Pada tahun 2001, selepas pertandingan yang diumumkan khas, piawaian sifir blok baharu telah diterima pakai di Amerika Syarikat, dipanggil AES (Standard Penyulitan Lanjutan), yang berdasarkan sifir Rijndael, dibangunkan oleh pakar Belgium. Sifir ini dibincangkan pada akhir kuliah.

Tetapan utama DES: saiz blok 64 bit, panjang kunci 56 bit, bilangan pusingan – 16. DES ialah rangkaian Feishtel klasik dengan dua cawangan. Algoritma menukar blok data input 64-bit kepada blok output 64-bit dalam beberapa pusingan. Standard DES dibina berdasarkan penggunaan gabungan pilih atur, penggantian dan gamma. Data yang disulitkan mestilah dalam bentuk binari.

Penyulitan

Struktur am DES ditunjukkan dalam Rajah. 4.1. Proses menyulitkan setiap blok 64-bit data mentah boleh dibahagikan kepada tiga peringkat:

  1. penyediaan awal blok data;
  2. 16 pusingan "kitaran utama";
  3. pemprosesan akhir bagi blok data.

Pada peringkat pertama ia dijalankan pilih atur awal Blok sumber 64-bit teks, di mana bit disusun semula dengan cara tertentu.

Pada peringkat seterusnya (utama), blok dibahagikan kepada dua bahagian (cawangan) masing-masing 32 bit. Cawangan kanan diubah menggunakan beberapa fungsi F dan yang sepadan kunci separa, diperoleh daripada kunci penyulitan utama menggunakan algoritma penukaran kunci khas. Kemudian data ditukar antara cawangan kiri dan kanan blok. Ini diulang dalam kitaran sebanyak 16 kali.

Akhir sekali, peringkat ketiga menyusun semula hasil yang diperoleh selepas enam belas langkah gelung utama. Pilih atur ini adalah songsang daripada pilih atur awal.


nasi. 4.1.

Mari kita lihat dengan lebih dekat semua peringkat penukaran kriptografi mengikut standard DES.

Pada peringkat pertama, blok data sumber 64-bit mengalami pilih atur awal. Dalam kesusasteraan, operasi ini kadang-kadang dipanggil "pemutihan". Semasa pilih atur awal, bit blok data disusun semula dengan cara tertentu. Operasi ini menambah beberapa "huru-hara" kepada mesej asal, mengurangkan kemungkinan menggunakan kriptanalisis menggunakan kaedah statistik.

Pada masa yang sama dengan pilih atur awal blok data, pilih atur awal 56 bit kunci dilakukan. Daripada Rajah. 4.1. Ia boleh dilihat bahawa dalam setiap pusingan, kunci separa 48-bit yang sepadan K i digunakan. Kekunci K i diperoleh menggunakan algoritma tertentu, menggunakan setiap bit kunci awal beberapa kali. Dalam setiap pusingan, kunci 56-bit dibahagikan kepada dua bahagian 28-bit. Bahagian kemudian dialihkan ke kiri satu atau dua bit bergantung pada nombor bulat. Selepas peralihan, 48 daripada 56 bit dipilih dengan cara tertentu. Oleh kerana ini bukan sahaja memilih subset bit, tetapi juga mengubah susunannya, operasi ini dipanggil "permutasi mampatan." Hasilnya ialah satu set 48 bit. Secara purata, setiap bit kunci 56-bit asal digunakan dalam 14 daripada 16 subkunci, walaupun tidak semua bit digunakan bilangan kali yang sama.

Seterusnya, kitaran transformasi utama dilakukan, dianjurkan menggunakan rangkaian Feishtel dan terdiri daripada 16 pusingan yang sama. Dalam kes ini, dalam setiap pusingan (Rajah 4.2) nilai 64-bit perantaraan diperoleh, yang kemudiannya diproses dalam pusingan seterusnya.


nasi. 4.2.

Cabang kiri dan kanan setiap nilai perantaraan dianggap sebagai nilai 32-bit yang berasingan, ditandakan L dan R .

Pertama, bahagian kanan blok R i dikembangkan kepada 48 bit menggunakan jadual yang menentukan pilih atur ditambah pengembangan sebanyak 16 bit. Operasi ini memadankan saiz separuh kanan dengan saiz kekunci untuk melakukan operasi XOR. Di samping itu, dengan melakukan operasi ini, pergantungan semua bit hasil pada bit data sumber dan kunci meningkat lebih cepat (ini dipanggil "kesan longsoran"). Lebih kuat kesan runtuhan salji apabila menggunakan satu atau algoritma penyulitan lain, lebih baik.

Selepas melakukan pilih atur pengembangan, nilai 48-bit yang terhasil adalah XORed dengan subkunci 48-bit K i . Kemudian nilai 48-bit yang terhasil dimasukkan ke input blok penggantian S (dari bahasa Inggeris. Penggantian - penggantian), keputusan yang merupakan nilai 32-bit. Penggantian dilakukan dalam lapan blok penggantian atau lapan kotak-S. Apabila dilaksanakan, DES kelihatan agak rumit di atas kertas, apatah lagi pelaksanaan perisiannya! Membangunkan program yang betul dan berfungsi secara optimum sepenuhnya mengikut DES, mungkin hanya pengaturcara yang berpengalaman boleh melakukannya. Beberapa kesukaran timbul apabila melaksanakan perisian, contohnya, pilih atur awal atau pilih atur dengan pengembangan. Kesukaran ini berkaitan dengan apa yang pada asalnya dirancang untuk dilaksanakan DES perkakasan sahaja. Semua operasi yang digunakan dalam piawaian mudah dilakukan oleh unit perkakasan, dan tiada masalah pelaksanaan timbul. Walau bagaimanapun, beberapa lama selepas penerbitan standard, pembangun perisian memutuskan untuk tidak berdiam diri dan juga mengambil penciptaan sistem penyulitan. Selanjutnya DES telah dilaksanakan dalam perkakasan dan perisian.

Lebih daripada 30 tahun telah berlalu sejak penggunaan algoritma DES sebagai standard penyulitan AS. DES ialah algoritma penyulitan dengan sejarah terkaya dan paling menarik.

Sejarah penciptaan algoritma

Salah seorang pakar kriptografi yang paling terkenal di dunia, Bruce Schneier, dalam bukunya yang terkenal "Aplikasi Kriptografi" menggambarkan masalah pengguna alat keselamatan maklumat pada awal 70-an. Abad XX (secara semula jadi, kita bercakap tentang pengguna di sisi lain Tirai Besi):

Tiada piawaian yang diterima umum untuk penyulitan data mahupun algoritma keselamatan maklumat yang digunakan secara meluas, jadi keserasian antara perisian atau alat penyulitan perkakasan yang berbeza tidak menjadi persoalan;

Hampir mana-mana alat penyulitan ialah "kotak hitam" dengan kandungan yang agak tidak jelas: apakah algoritma penyulitan yang digunakan, sejauh mana kekuatan kriptografinya, sama ada ia dilaksanakan dengan betul, sama ada kunci penyulitan dicipta, disimpan dan digunakan dengan betul, sama ada alat itu mengandungi tidak didokumenkan keupayaan yang dimasukkan oleh pembangun dan lain-lain - semua maklumat yang sangat penting ini tidak dapat diakses oleh sebahagian besar pembeli dana kriptografi.

Biro Piawaian Kebangsaan (NBS) Amerika Syarikat prihatin dengan masalah ini. Akibatnya, pada tahun 1973, persaingan terbuka pertama untuk standard penyulitan diumumkan. NBS bersedia untuk memeriksa algoritma calon yang memenuhi kriteria berikut untuk memilih standard:

Algoritma mestilah kuat dari segi kriptografi;

Algoritma mesti pantas;

Struktur algoritma mestilah jelas dan tepat;

Kekuatan penyulitan harus bergantung hanya pada kunci, algoritma itu sendiri tidak harus rahsia;

Algoritma harus mudah digunakan untuk pelbagai tujuan;

Algoritma harus mudah dilaksanakan dalam perkakasan menggunakan komponen perkakasan sedia ada.

Diandaikan bahawa organisasi atau pakar yang berminat akan menghantar kepada NBS spesifikasi terperinci algoritma yang mencukupi untuk pelaksanaannya, iaitu, tanpa sebarang "titik buta." Ia juga diandaikan bahawa algoritma itu akan diperakui oleh NBS untuk kegunaan umum, dan semua paten dan sekatan eksport akan dialih keluar daripadanya, akibatnya piawaian sedemikian perlu menyelesaikan semua masalah keserasian penyulitan. Di samping itu, NBS mengambil fungsi memperakui alat penyulitan - iaitu, "kotak hitam" sepatutnya menjadi perkara yang telah berlalu.

Malah, terdapat hanya satu algoritma calon: ia adalah algoritma penyulitan Lucifer yang dibangunkan oleh ShM (lihat bahagian 3.31). Sepanjang dua tahun, algoritma telah diperhalusi:

Pertama, NBS, bersama-sama dengan Agensi Keselamatan Negara (NSA, Agensi Keselamatan Negara) Amerika Syarikat, menjalankan analisis teliti algoritma, yang menghasilkan semakan yang agak ketara;

Kedua, komen dan kritikan daripada semua organisasi dan individu yang berminat telah diambil kira.

Hasil daripada usaha bersama IBM, NBS dan NSA, DES telah diterbitkan pada Januari 1977 sebagai piawaian AS (versi terkini piawaian ini ada dalam dokumen) untuk algoritma untuk menyulitkan data (kecuali untuk maklumat yang sangat sensitif). Algoritma DES telah dipatenkan oleh YuM, tetapi NBS menerima, sebenarnya, lesen percuma dan tidak terhad untuk menggunakan algoritma ini. Nama alternatif, tetapi kurang biasa digunakan untuk algoritma ialah DEA ​​(Algoritma Penyulitan Data).

Ciri-ciri utama dan struktur algoritma

Algoritma DES menyulitkan maklumat dalam blok 64-bit menggunakan kunci penyulitan 64-bit yang hanya menggunakan 56 bit (prosedur pengembangan kunci diterangkan secara terperinci di bawah).

Penyulitan maklumat dilakukan seperti berikut (Rajah 3.56):

1. Pilih atur awal dilakukan pada blok data 64-bit mengikut jadual. 3.16.

Jadual 3.16

Jadual ditafsirkan seperti berikut: nilai bit input 58 (selepas ini semua bit dinomborkan dari kiri ke kanan, bermula dari 1) diletakkan dalam bit output 1, nilai bit 50 diletakkan dalam bit 2, dsb.



2. Hasil daripada operasi sebelumnya dibahagikan kepada 2 subblok 32 bit (per

nasi. 3.56 ditandakan A 0 dan B 0), di mana 16 pusingan dilakukan

transformasi berikut:

Seperti yang dinyatakan di atas, daripada kunci penyulitan 64-bit, algoritma DES hanya menggunakan 56 bit. Setiap bit ke-8 dibuang dan tidak digunakan dalam apa-apa cara dalam algoritma, dan penggunaan baki bit kunci penyulitan dalam pelaksanaan algoritma DES sama sekali tidak dihadkan oleh standard. Prosedur untuk mengekstrak 56 bit penting kunci 64-bit dalam Rajah. 3.59 ditetapkan sebagai E. Sebagai tambahan kepada pengekstrakan, prosedur ini juga melakukan penyusunan semula bit kunci mengikut Jadual. 3.19 dan 3.20.


Jadual 3.19

Jadual 3.20


Hasil daripada pilih atur, dua nilai 28-bit C dan D terbentuk. Jadual 3.19 mentakrifkan pemilihan bit utama untuk C, jadual. 3.20 - untuk D.

Kemudian 16 pusingan transformasi dilakukan, setiap satu menghasilkan satu daripada kekunci bulat K t . Dalam setiap pusingan prosedur pengembangan kunci, tindakan berikut dilakukan:

1. Nilai semasa C dan D kitaran dianjak ke kiri oleh bilangan bit yang berubah-ubah P. Untuk pusingan 1, 2, 9 dan 16 P= 1, dalam baki pusingan anjakan kitaran 2 bit dilakukan.

2. C dan D digabungkan menjadi nilai 56-bit, yang mana CP permutasi mampatan digunakan, yang hasilnya ialah kunci bulat 48-bit K (. Pilih atur mampatan dilakukan mengikut Jadual 3.21.

Jadual 3.21

Apabila menyahsulit data, anda boleh menggunakan prosedur pengembangan kunci yang sama, tetapi gunakan kekunci bulat dalam susunan terbalik. Terdapat pilihan lain: dalam setiap pusingan prosedur pengembangan kunci, bukannya anjakan kitaran ke kiri, lakukan anjakan kitaran ke kanan dengan n bit, dengan rc' = 0 untuk pusingan pertama, u' = 1 untuk pusingan 2, 9, 16 dan n = 2 untuk baki pusingan . Prosedur pengembangan kunci ini akan memberikan kunci bulat yang diperlukan untuk penyahsulitan dengan serta-merta.

Perlu dikatakan bahawa keupayaan untuk melakukan pengembangan kunci "dengan cepat" (terutamanya jika kemungkinan ini wujud semasa penyulitan dan penyahsulitan) dianggap sebagai kelebihan algoritma penyulitan, kerana dalam kes ini pengembangan kunci boleh dilakukan selari dengan penyulitan dan tidak membuang ingatan untuk menyimpan kunci pusingan orang lain selain daripada yang semasa.

  • Tutorial

Hello %username%!
Ramai orang tahu bahawa algoritma DES telah lama dianggap sebagai standard lalai dalam bidang penyulitan simetri. Serangan pertama yang berjaya pada algoritma yang tidak boleh dibunuh ini diterbitkan pada tahun 1993, 16 tahun selepas ia diterima pakai sebagai standard. Kaedah, yang penulis panggil kriptanalisis linear, dengan kehadiran 2 47 pasangan teks biasa/sifir, membolehkan seseorang membuka kunci rahsia sifir DES dalam 2 43 operasi.
Di bawah potongan saya akan cuba menggariskan secara ringkas perkara utama serangan ini.

Kripanalisis linear

Kriptanalisis linear ialah sejenis serangan khas pada sifir simetri, bertujuan untuk memulihkan kunci penyulitan yang tidak diketahui daripada mesej biasa yang diketahui dan teks sifirnya yang sepadan.

Secara umum, serangan berdasarkan kriptanalisis linear bermuara kepada keadaan berikut. Penyerang mempunyai sejumlah besar pasangan teks biasa/sifera yang diperoleh menggunakan kunci penyulitan K yang sama. Matlamat penyerang adalah untuk memulihkan sebahagian atau semua kunci K.

Pertama sekali, penyerang memeriksa sifir dan mencari apa yang dipanggil analog statistik, i.e. persamaan bentuk berikut, yang memegang dengan kebarangkalian P ≠ 1/2 untuk pasangan teks awam/peribadi sewenang-wenangnya dan kunci tetap:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
dengan P n, C n, K n ialah bit ke-n bagi teks, teks sifir dan kunci.
Sebaik sahaja persamaan sedemikian ditemui, penyerang boleh memulihkan 1 bit maklumat penting menggunakan algoritma berikut

Algoritma 1
Biarkan T ialah bilangan teks yang bahagian kiri persamaan (1) adalah sama dengan 0, maka
Jika T>N/2, di mana N ialah bilangan plainteks yang diketahui.
Andaikan bahawa K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (apabila P>1/2) atau 1 (apabila P<1/2).
Jika tidak
Andaikan bahawa K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (apabila P>1/2) atau 0 (apabila P<1/2).
Jelas sekali bahawa kejayaan algoritma secara langsung bergantung kepada nilai |P-1/2| dan pada bilangan pasangan teks terbuka/tertutup yang tersedia N. Semakin banyak kebarangkalian P kesamaan (1) berbeza daripada 1/2, semakin sedikit bilangan teks terbuka N diperlukan untuk serangan itu.

Terdapat dua masalah yang perlu diselesaikan untuk serangan itu berjaya:

  • Bagaimana untuk mencari persamaan berkesan bagi bentuk (1).
  • Cara menggunakan persamaan ini untuk mendapatkan lebih daripada satu maklumat tentang kunci.
Mari kita pertimbangkan penyelesaian kepada isu ini menggunakan sifir DES sebagai contoh.

Penerangan tentang DES

Tetapi pertama-tama, mari kita terangkan secara ringkas cara algoritma berfungsi. Cukup sudah dikatakan tentang DES. Penerangan penuh tentang sifir boleh didapati di Wikipedia. Walau bagaimanapun, untuk menjelaskan lebih lanjut serangan itu, kami memerlukan beberapa definisi yang paling baik diperkenalkan terlebih dahulu.

Jadi, DES ialah sifir blok berdasarkan rangkaian Feistel. Sifir mempunyai saiz blok 64 bit dan saiz kunci 56 bit. Mari kita pertimbangkan skema penyulitan algoritma DES.

Seperti yang dapat dilihat dari rajah, apabila menyulitkan teks, operasi berikut dilakukan:

  1. Permutasi bit awal. Pada peringkat ini, bit blok input dikocok dalam susunan tertentu.
  2. Selepas ini, bit campuran dibahagikan kepada dua bahagian, yang disalurkan kepada input fungsi Feistel. Untuk DES standard, rangkaian Feistel termasuk 16 pusingan, tetapi varian lain algoritma wujud.
  3. Dua blok yang diperolehi dalam pusingan terakhir transformasi digabungkan dan satu lagi pilih atur dilakukan pada blok yang terhasil.

Dalam setiap pusingan rangkaian Feistel, 32 bit mesej yang paling tidak ketara dihantar melalui fungsi f:

Mari kita lihat operasi yang dilakukan pada peringkat ini:

  1. Blok input disalurkan melalui fungsi sambungan E, yang menukar blok 32-bit kepada blok 48-bit.
  2. Blok yang terhasil ditambah pada kekunci bulat K i .
  3. Hasil daripada langkah sebelumnya dibahagikan kepada 8 blok 6 bit setiap satu.
  4. Setiap blok B i yang diterima dihantar melalui fungsi penggantian S-Box i , yang menggantikan urutan 6-bit dengan blok 4-bit.
  5. Blok 32-bit yang terhasil dilalui melalui pilihatur P dan dikembalikan sebagai hasil daripada fungsi f.

Yang paling menarik minat kami dari sudut analisis kriptografi sifir ialah blok S, direka untuk menyembunyikan sambungan antara data input dan output fungsi f. Untuk berjaya menyerang DES, kami mula-mula akan membina analog statistik untuk setiap kotak-S, dan kemudian memanjangkannya kepada keseluruhan sifir.

Analisis blok S

Setiap S-box mengambil urutan 6-bit sebagai input, dan untuk setiap jujukan tersebut nilai 4-bit tetap dikembalikan. Itu. terdapat sejumlah 64 pilihan input dan output. Tugas kami adalah untuk menunjukkan hubungan antara data input dan output blok S. Sebagai contoh, untuk kotak S ketiga sifir DES, bit ke-3 jujukan input adalah sama dengan bit ke-3 jujukan output dalam 38 daripada 64 kes. Oleh itu, kami mendapati analog statistik berikut untuk S ketiga -kotak:
S 3 (x) = x, yang dipenuhi dengan kebarangkalian P=38/64.
Kedua-dua belah persamaan mewakili 1 bit maklumat. Oleh itu, jika sisi kiri dan kanan adalah bebas antara satu sama lain, persamaan itu perlu dipenuhi dengan kebarangkalian 1/2. Oleh itu, kami baru sahaja menunjukkan hubungan antara input dan output kotak S ke-3 algoritma DES.

Mari kita pertimbangkan bagaimana kita boleh mencari analog statistik bagi kotak-S dalam kes umum.

Untuk kotak-S S a , 1 ≤ α ≤ 63 dan 1 ≤ β ≤ 15, nilai NS a (α, β) menerangkan berapa kali daripada 64 kemungkinan bit input XOR S yang ditumpangkan pada bit α adalah sama dengan bit keluaran XOR ditindih pada bit α β, iaitu:
di mana simbol adalah logik DAN.
Nilai α dan β yang mana NS a (α, β) adalah paling berbeza daripada 32 menggambarkan analog statistik yang paling cekap bagi S-box S a .

Analog yang paling berkesan ditemui dalam kotak S ke-5 sifir DES untuk α = 16 dan β = 15 NS 5 (16, 15) = 12. Ini bermakna persamaan berikut memegang: Z=Y ⊕ Y ⊕ Y ⊕ Y, di mana Z ialah jujukan input bagi kotak-S dan Y ialah jujukan keluaran.
Atau mengambil kira fakta bahawa dalam algoritma DES, sebelum memasuki kotak-S, data ditambah modulo 2 dengan kunci bulat, i.e. Z = X ⊕ K kita dapat
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, dengan X dan Y ialah data input dan output bagi fungsi f tanpa mengambil kira pilih atur.
Persamaan yang terhasil dilaksanakan pada semua pusingan algoritma DES dengan kebarangkalian yang sama P=12/64.
Jadual berikut menunjukkan senarai yang berkesan, i.e. mempunyai sisihan terbesar daripada P=1/2, analog statistik untuk setiap blok-s algoritma DES.

Membina analog statistik untuk berbilang pusingan DES

Sekarang mari kita tunjukkan bagaimana kita boleh menggabungkan analog statistik beberapa pusingan DES dan akhirnya mendapatkan analog statistik untuk keseluruhan sifir.
Untuk melakukan ini, pertimbangkan versi tiga pusingan algoritma:

Mari kita gunakan analog statistik yang cekap bagi kotak-s ke-5 untuk mengira bit tertentu bagi nilai X(2).
Kita tahu bahawa dengan kebarangkalian 12/64 kesamaan berlaku dalam fungsi f X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, di mana X ialah bit input kedua bagi kotak-S ke-5, ia pada asasnya adalah bit ke-26 jujukan yang diperoleh selepas mengembangkan bit input. Dengan menganalisis fungsi pengembangan, kita boleh menetapkan bahawa bit ke-26 digantikan dengan bit ke-17 jujukan X(1).
Begitu juga, Y,..., Y pada asasnya ialah bit ke-17, ke-18, ke-19 dan ke-20 daripada jujukan yang diperoleh sebelum pilih atur P. Mengkaji pilih atur P, kita dapati bit Y,..., Y sebenarnya adalah bit Y (1), Y(1), Y(1), Y(1).
Bit kunci K yang terlibat dalam persamaan ialah bit ke-26 subkunci pusingan pertama K1 dan kemudian analog statistik mengambil bentuk berikut:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1.
Oleh itu, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)(2) dengan kebarangkalian P=12/64.
Mengetahui 3, 8, 14, 25 bit jujukan Y(1), anda boleh mencari 3, 8, 14, 25 bit jujukan X(2):
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) atau mengambil kira persamaan (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) dengan kebarangkalian 12/64.

Mari cari ungkapan yang sama menggunakan pusingan terakhir. Kali ini kita mempunyai persamaan
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3).
Kerana
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
kita dapat itu
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3(4) dengan kebarangkalian 12/64.

Menyamakan sisi kanan persamaan (3) dan (4) kita perolehi
CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 dengan kebarangkalian (12/64) 2 +(1-12/64) 2.
Dengan mengambil kira fakta bahawa X(1) = PR dan X(3) = CR kita memperoleh analog statistik
СL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
yang dilaksanakan dengan kebarangkalian (12/64) 2 + (1-12/64) 2 =0.7.
Analog statistik yang diterangkan di atas boleh diwakili secara grafik seperti berikut (bit dalam rajah dinomborkan dari kanan ke kiri dan bermula dari sifar):

Semua bit di sebelah kiri persamaan diketahui oleh penyerang, jadi dia boleh menggunakan Algoritma 1 dan mengetahui nilai K1 ⊕ K3. Mari tunjukkan bagaimana, menggunakan analog statistik ini, anda boleh membuka bukan 1, tetapi 12 bit kunci penyulitan K.

Serangan ke atas DES dengan Plaintext Diketahui

Marilah kami membentangkan kaedah yang anda boleh mengembangkan serangan dan segera mendapatkan 6 bit sambungan pusingan pertama.
Semasa mengarang persamaan (5), kami mengambil kira hakikat bahawa kami tidak mengetahui nilai F1(PR, K1). Oleh itu, kami menggunakan analog statistiknya K1 ⊕ PR.
Mari kita kembalikan nilai F1(PR, K1) dan bukannya ungkapan K1 ⊕ PR dan dapatkan persamaan berikut:
СL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , yang akan dilaksanakan dengan kebarangkalian 12/64. Kebarangkalian telah berubah kerana kami hanya meninggalkan analog statistik dari pusingan ketiga, semua nilai lain ditetapkan.

Kami telah pun menentukan di atas bahawa nilai F1(PR, K1) dipengaruhi oleh bit input kotak-S ke-5, iaitu bit kunci K1 dan bit blok PR. Mari tunjukkan bagaimana, dengan hanya satu set teks terbuka/tertutup, anda boleh memulihkan nilai K1. Untuk melakukan ini, kami akan menggunakan Algoritma 2.

Algoritma 2
Biarkan N ialah bilangan pasangan teks terbuka/tertutup yang diketahui sebelum serangan. Kemudian untuk membuka kunci anda perlu mengambil langkah berikut.
Untuk (i=0; i<64; i++) do
{
Untuk(j=0; j {
jika(СL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) maka
T i =T i +1
}
}
Sebagai urutan kemungkinan K1, nilai i diambil sedemikian rupa sehingga ungkapan |T i -N/2| mempunyai nilai maksimum.

Memandangkan bilangan teks biasa yang diketahui mencukupi, algoritma akan mempunyai kebarangkalian yang tinggi untuk mengembalikan nilai yang betul bagi enam bit subkunci pusingan pertama K1. Ini dijelaskan oleh fakta bahawa jika pembolehubah i tidak sama dengan K1, maka nilai fungsi F1(PR j, K) akan menjadi rawak dan bilangan persamaan untuk nilai i yang mana bahagian kirinya adalah. sama dengan sifar akan cenderung kepada N/2. Jika subkunci diteka dengan betul, bahagian kiri akan sama dengan bit tetap K3 dengan kebarangkalian 12/64. Itu. akan terdapat sisihan yang ketara daripada N/2.

Setelah menerima 6 bit subkunci K1, anda juga boleh membuka 6 bit subkunci K3. Apa yang anda perlu lakukan ialah menggantikan C dengan P dan K1 dengan K3 dalam persamaan (6):
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1.
Algoritma 2 akan mengembalikan nilai K3 yang betul kerana proses penyahsulitan algoritma DES adalah sama dengan proses penyulitan, cuma urutan kunci diterbalikkan. Jadi dalam pusingan pertama penyahsulitan kunci K3 digunakan, dan pada pusingan terakhir kunci K1 digunakan.

Setelah menerima 6 bit subkunci K1 dan K3, penyerang memulihkan 12 bit kunci biasa sifir K, kerana kekunci bulat ialah pilih atur biasa bagi kekunci K. Bilangan plaintext yang diperlukan untuk serangan yang berjaya bergantung pada kebarangkalian analog statistik. Untuk memecahkan kunci DES 3-bit 12-bit, 100 pasangan teks awam/peribadi sudah memadai. Untuk memecahkan 12 bit kunci DES 16 pusingan, kira-kira 2 44 pasang teks akan diperlukan. Baki 44 bit kunci dibuka menggunakan kekerasan biasa.

Algoritma DES

Kelebihan utama algoritma DES:

· hanya satu kunci dengan panjang 56 bit digunakan;

· setelah menyulitkan mesej menggunakan satu pakej, anda boleh menggunakan mana-mana yang lain untuk menyahsulitnya;

· kesederhanaan relatif algoritma memastikan kelajuan tinggi pemprosesan maklumat;

· kestabilan algoritma yang cukup tinggi.

DES menyulitkan blok 64-bit data menggunakan kunci 56-bit. Penyahsulitan dalam DES ialah operasi terbalik penyulitan dan dilakukan dengan mengulangi operasi penyulitan dalam susunan terbalik (walaupun jelas kelihatan, ini tidak selalu dilakukan. Kemudian kita akan melihat sifir di mana penyulitan dan penyahsulitan dijalankan menggunakan algoritma yang berbeza) .

Proses penyulitan terdiri daripada pilih atur awal bit blok 64-bit, enam belas kitaran penyulitan dan, akhirnya, pilih atur terbalik bagi bit (Rajah 1).

Perlu segera diambil perhatian bahawa SEMUA jadual yang diberikan dalam artikel ini adalah STANDARD, dan oleh itu harus disertakan dalam pelaksanaan algoritma anda tidak berubah. Semua pilih atur dan kod dalam jadual dipilih oleh pembangun sedemikian rupa untuk menjadikan proses penyahsulitan sesukar mungkin dengan memilih kunci. Struktur algoritma DES ditunjukkan dalam Rajah 2.

Rajah.2. Struktur algoritma penyulitan DES

Biarkan blok T 8-bait seterusnya dibaca daripada fail, yang diubah menggunakan matriks pilih atur awal IP (Jadual 1) seperti berikut: bit 58 blok T menjadi bit 1, bit 50 menjadi bit 2, dsb., yang akan terhasil dalam : T(0) = IP(T).

Jujukan bit yang terhasil T(0) dibahagikan kepada dua jujukan 32 bit setiap satu: L(0) - bit kiri atau tertib tinggi, R(0) - bit tertib kanan atau rendah.

Jadual 1: Matriks Permutasi Permulaan IP

58 50 42 34 26 18 10 02

60 52 44 36 28 20 12 04

62 54 46 38 30 22 14 06

64 56 48 40 32 24 16 08

57 49 41 33 25 17 09 01

59 51 43 35 27 19 11 03

61 53 45 37 29 21 13 05

63 55 47 39 31 23 15 07

Kemudian penyulitan dilakukan, terdiri daripada 16 lelaran. Hasil daripada lelaran ke-i diterangkan oleh formula berikut:

R(i) = L(i-1) xor f(R(i-1), K(i)) ,

di mana xor ialah operasi EKSKLUSIF ATAU.

Fungsi f dipanggil fungsi penyulitan. Hujahnya ialah urutan 32-bit R(i-1), yang diperoleh pada lelaran ke (i-1), dan kekunci 48-bit K(i), yang merupakan hasil daripada penukaran kunci 64-bit K. Secara terperinci, fungsi penyulitan dan algoritma untuk mendapatkan kunci K(i) diterangkan di bawah.

Pada lelaran ke-16, urutan R(16) dan L(16) (tanpa pilih atur) diperolehi, yang digabungkan menjadi urutan 64-bit R(16)L(16).

Kemudian kedudukan bit jujukan ini disusun semula mengikut matriks IP -1 (Jadual 2).

Jadual 2: Matriks pilih atur songsang IP -1

40 08 48 16 56 24 64 32

39 07 47 15 55 23 63 31

38 06 46 14 54 22 62 30

37 05 45 13 53 21 61 29

36 04 44 12 52 20 60 28

35 03 43 11 51 19 59 27

34 02 42 10 50 18 58 26

33 01 41 09 49 17 57 25

Matriks IP -1 dan IP berkaitan seperti berikut: nilai elemen pertama matriks IP -1 ialah 40, dan nilai elemen ke-40 matriks IP ialah 1, nilai ke-2 elemen matriks IP -1 ialah 8, dan nilai elemen matriks IP ke-8 adalah sama dengan 2, dsb.

Proses penyahsulitan data adalah songsang kepada proses penyulitan. Semua langkah mesti dilakukan dalam susunan terbalik. Ini bermakna bahawa data yang disulitkan pertama kali disusun semula mengikut matriks IP-1, dan kemudian tindakan yang sama dilakukan pada jujukan bit R(16)L(16) seperti dalam proses penyulitan, tetapi dalam susunan terbalik.

Proses penyahsulitan berulang boleh diterangkan dengan formula berikut:

R(i-1) = L(i), i = 1, 2, ..., 16;

L(i-1) = R(i) xor f(L(i), K(i)), i = 1, 2, ..., 16 .

Pada lelaran ke-16, jujukan L(0) dan R(0) diperolehi, yang digabungkan menjadi jujukan 64-bit L(0)R(0).

Kedudukan bit jujukan ini kemudiannya disusun semula mengikut matriks IP. Hasil pilih atur sedemikian ialah urutan 64-bit asal.

Sekarang pertimbangkan fungsi penyulitan f(R(i-1),K(i)). Ia ditunjukkan secara skematik dalam Rajah. 3.


Rajah.3. Pengiraan fungsi f(R(i-1), K(i))

Untuk mengira nilai fungsi f, fungsi matriks berikut digunakan:

E - lanjutan urutan 32-bit kepada 48-bit,

S1, S2, ..., S8 - penukaran blok 6-bit kepada blok 4-bit,

P - permutasi bit dalam urutan 32-bit.

Fungsi pengembangan E ditakrifkan dalam Jadual 3. Menurut jadual ini, 3 bit pertama E(R(i-1)) ialah bit 32, 1 dan 2, dan yang terakhir ialah 31, 32 dan 1.

Jadual 3: Fungsi sambungan E

32 01 02 03 04 05

04 05 06 07 08 09

08 09 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 01

Hasil daripada fungsi E(R(i-1)) ialah jujukan 48-bit yang ditambah modulo 2 (operasi xor) dengan kekunci 48-bit K(i). Urutan 48-bit yang terhasil dibahagikan kepada lapan blok 6-bit B(1)B(2)B(3)B(4)B(5)B(6)B(7)B(8). Itu dia:

E(R(i-1)) xor K(i) = B(1)B(2)...B(8) .

Fungsi S1, S2, ..., S8 ditakrifkan dalam Jadual 4.

Jadual 4

Ke Jadual 4. penjelasan lanjut diperlukan. Biarkan input fungsi matriks Sj menjadi blok 6-bit B(j) = b1b2b3b4b5b6, kemudian nombor dua-bit b1b6 menunjukkan nombor baris matriks, dan b2b3b4b5 nombor lajur. Hasil Sj(B(j)) akan menjadi elemen 4-bit yang terletak di persimpangan baris dan lajur yang ditentukan.

Contohnya, B(1)=011011. Kemudian S1(B(1)) terletak di persimpangan baris 1 dan lajur 13. Dalam lajur 13 baris 1 nilainya ialah 5. Ini bermakna S1(011011)=0101.

Menggunakan operasi pemilihan pada setiap blok 6-bit B(1), B(2), ..., B(8), kita memperoleh urutan 32-bit S1(B(1))S2(B(2). ))S3( B(3))...S8(B(8)).

Akhir sekali, untuk mendapatkan hasil daripada fungsi penyulitan, bit jujukan ini mesti disusun semula. Untuk tujuan ini, fungsi pilih atur P digunakan (Jadual 5). Dalam urutan input, bit disusun semula supaya bit 16 menjadi bit 1, bit 7 menjadi bit 2, dan seterusnya.

Jadual 5:Fungsi pilih atur P

Oleh itu,

f(R(i-1), K(i)) = P(S1(B(1)),...S8(B(8)))

Untuk melengkapkan huraian algoritma penyulitan data, ia kekal untuk membentangkan algoritma untuk mendapatkan kunci 48-bit K(i), i=1...16. Pada setiap lelaran, nilai kunci baharu K(i) digunakan, yang dikira daripada kunci awal K. K ialah blok 64-bit dengan lapan bit pariti terletak pada kedudukan 8,16,24,32,40,48, 56. 64.

Untuk mengeluarkan bit kawalan dan menyusun semula yang selebihnya, fungsi G penyediaan kunci awal digunakan (Jadual 6).

Jadual 6

Matriks G penyediaan kunci awal

57 49 41 33 25 17 09

01 58 50 42 34 26 18

10 02 59 51 43 35 27

19 11 03 60 52 44 36

63 55 47 39 31 23 15

07 62 54 46 38 30 22

14 06 61 53 45 37 29

21 13 05 28 20 12 04

Hasil penjelmaan G(K) dibahagikan kepada dua blok 28-bit C(0) dan D(0), dan C(0) akan terdiri daripada bit 57, 49, ..., 44, 36 kunci K, dan D(0 ) akan terdiri daripada bit 63, 55, ..., 12, 4 kunci K. Selepas mentakrifkan C(0) dan D(0), C(i) dan D(i), i= 1...16, ditentukan secara rekursif. Untuk melakukan ini, gunakan anjakan kitaran ke kiri sebanyak satu atau dua bit, bergantung pada nombor lelaran, seperti yang ditunjukkan dalam Jadual 7.

Jadual 7

Shift jadual untuk pengiraan kunci

Nombor lelaran Shift (bit)
01 1
02 1
03 2
04 2
05 2
06 2
07 2
08 2
09 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

Nilai yang terhasil sekali lagi "bercampur" mengikut matriks H (Jadual 8).

Jadual 8: Matriks Penyiapan Kunci H

14 17 11 24 01 05

03 28 15 06 21 10

23 19 12 04 26 08

16 07 27 20 13 02

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Kekunci K(i) akan terdiri daripada bit 14, 17, ..., 29, 32 daripada jujukan C(i)D(i). Oleh itu:

K(i) = H(C(i)D(i))

Gambar rajah blok algoritma pengiraan kunci ditunjukkan dalam Rajah 4.

Rajah.4. Gambar rajah blok algoritma untuk mengira kunci K(i)

Memulihkan teks asal dijalankan menggunakan algoritma ini, tetapi anda menggunakan kekunci terlebih dahulu

K(15), kemudian K(14) dan seterusnya. Sekarang anda harus memahami mengapa penulis bersungguh-sungguh mengesyorkan menggunakan matriks yang diberikan. Jika anda menjadi penyangak, anda mungkin mendapat kod yang sangat rahsia, tetapi anda tidak akan dapat memecahkannya sendiri!

Mod pengendalian algoritma DES

Untuk memenuhi sepenuhnya semua keperluan untuk sistem penyulitan komersial, beberapa mod operasi algoritma DES dilaksanakan. Mod yang paling banyak digunakan ialah:

· buku kod elektronik (Buku Kod Elektronik) - ECB;

· rantaian blok digital (Cipher Block Chaining) - CBC;

· maklum balas digital (Maklum Balas Sifir) - CFB;

· maklum balas luaran (Maklum Balas Output) - OFB.

Dalam mod ini, fail sumber M dibahagikan kepada blok 64-bit (8 bait setiap satu): M = M(1)M(2)...M(n). Setiap blok ini disulitkan secara bebas menggunakan kunci penyulitan yang sama (Gamb. 5). Kelebihan utama algoritma ini adalah kemudahan pelaksanaannya. Kelemahannya ialah ia agak lemah berbanding cryptanalysts mahir.