Algoritma penyulitan data IDEA. Algoritma penyulitan IDEA

Hantar kerja baik anda di pangkalan pengetahuan adalah mudah. Gunakan borang di bawah

Kerja yang bagus ke tapak">

Pelajar, pelajar siswazah, saintis muda yang menggunakan asas pengetahuan dalam pengajian dan kerja mereka akan sangat berterima kasih kepada anda.

Disiarkan di http://www.allbest.ru/

PENGENALAN

1. BAHAGIAN ANALITIK

1.1 Algoritma IDEA

1.2.1 Algoritma DES

1.2.2 Algoritma RC6

1.2.3 Algoritma GOST 28147-89

1.2.4 Kelebihan IDEA berbanding analog

1.4.1 Buku Kod Elektronik - Buku kod elektronik

1.4.2 Suapan Sifir Balik - pemuatan terbalik bagi teks sifir

1.4.3 Output Feed Back - pemuatan terbalik data output

1.4.4 Pembilang - penyulitan dengan pembilang

1.4.5 Kelebihan Rantaian Blok Cipher berbanding analog

2. BAHAGIAN REKA BENTUK

2.3 Pelaksanaan perisian

3. EKSPERIMEN

KESIMPULAN

BIBLIOGRAFI

PENGENALAN

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

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

Contoh klasik bagi algoritma tersebut ialah algoritma kriptografi simetri yang disenaraikan di bawah: - penggantian mudah;

- pilih atur tunggal dengan kunci;

- pilih atur berganda;

- pilihatur "Petak ajaib";

- penyusunan semula yang mudah.

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

Pada masa ini, sifir simetri ialah:

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

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

Terdapat banyak algoritma sifir simetri, parameter pentingnya ialah:

· ketahanan;

· panjang kunci;

· bilangan pusingan;

panjang blok yang diproses;

· kerumitan pelaksanaan perkakasan/perisian;

· kerumitan penukaran.

1. BAHAGIAN ANALITIK

1.1 Algoritma IDEA

IDEA (Algoritma Penyulitan Data Antarabangsa, algoritma antarabangsa penyulitan data) ialah algoritma penyulitan data blok simetri yang dipatenkan oleh syarikat Switzerland Ascom. Ini ialah algoritma penyulitan blok simetri yang dicadangkan untuk menggantikan piawaian DES. Versi awal Algoritma IDEA muncul pada tahun 1990 Pembangun algoritma, Xuejia Lai dan James Massey dari Swiss Institute ETH Zurich, memberikannya nama PES (Proposed Encryption Standard).

Memandangkan IDEA menggunakan kunci 128-bit dan saiz blok 64-bit, teks kosong dibahagikan kepada blok 64 bit. Jika perpecahan sedemikian tidak mungkin, blok terakhir berlapik cara yang berbeza urutan bit tertentu. Untuk mengelakkan kebocoran maklumat mengenai setiap blok individu, pelbagai mod penyulitan. Setiap blok 64-bit asal yang tidak disulitkan dibahagikan kepada empat subblok 16 bit setiap satu, kerana semua operasi algebra yang digunakan dalam proses penyulitan dilakukan pada nombor 16-bit. IDEA menggunakan algoritma yang sama untuk penyulitan dan penyahsulitan.

IDEA menggunakan operasi matematik berikut:

? modulo penambahan bitwise 2 (operasi OR eksklusif);

? penambahan integer tak bertanda modulo 2 16 ;

? mendarabkan integer tak bertanda modulo (2 16 +1), dengan blok 16 sifar dianggap sebagai 2 16 ;

Kelemahan yang ketara ialah IDEA dipatenkan, kerana ini menghalang pengedaran percumanya. IDEA tidak menyediakan untuk menambah panjang kunci. Kelemahan lain boleh dianggap fakta bahawa tidak semua kerja pada cryptanalysis telah diterbitkan, iaitu, agak mungkin bahawa sifir telah dipecahkan, atau akan dipecahkan pada masa akan datang.

Struktur algoritma IDEA dibentangkan di bawah (Rajah 1).

nasi. 1. Algoritma penyulitan IDEA

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

· mod rantaian blok (CBC - Rantaian Blok Cipher)

· mod maklum balas oleh teks sifir (CFB -- Suapan Balik Sifir)

· mod maklum balas keluaran (OFB -- Suapan Balik Output).

Di dalam ini kerja kursus sedang dipertimbangkan pelaksanaan perisian Algoritma penyulitan IDEA (mod Cipher Feed Back).

1.2 Perbandingan analog algoritma IDEA

1.2.1 Algoritma DES

DES (Standard Penyulitan Data) -- Algoritma penyulitan simetri di mana satu kunci digunakan untuk menyulitkan dan menyahsulit data. DES mempunyai blok 64-bit dan struktur rangkaian Feistel 16 kitaran; ia menggunakan kunci 56-bit untuk penyulitan.

Algoritma menggunakan gabungan bukan linear (S-boxes) dan linear (permutasi E, IP, IP-1).

Memandangkan DES beroperasi dalam blok 64-bit dan menggunakan kekunci 56-bit, panjang kunci ini sepadan dengan 256 kombinasi, yang sehingga baru-baru ini menyediakan tahap keselamatan yang mencukupi (8 bit genap kunci 64-bit penuh tidak digunakan, bit pariti adalah yang terkecil bit yang ketara bait utama). Blok data input, yang terdiri daripada 64 bit, ditukar menjadi blok keluaran yang sama panjang.

Disebabkan penggunaan kunci penyulitan 56-bit, algoritma DES boleh dipecahkan dengan kekerasan pada mana-mana sistem komputer moden dalam jangka masa yang sangat realistik - beberapa hari.

DES sistem kriptografi simetri, ditakrifkan sebagai sifir Feistel 16 pusingan, pada asalnya bertujuan untuk pelaksanaan perkakasan. Apabila DES digunakan untuk menghantar maklumat, untuk menyulitkan dan menyahsulit mesej atau untuk mencipta dan mengesahkan kod pengesahan mesej (MAC), pengirim dan penerima mesti mengetahui kunci rahsia.

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

Rajah.2. Algoritma penyulitan DES

1.2.2 Algoritma RC6

Algoritma RC6 ialah algoritma kriptografi blok simetri yang diperoleh daripada algoritma RC5.

Sifir RC6 yang menyertai pertandingan AES menyokong panjang blok 128-bit dan panjang kunci 128-, 192-, dan 256-bit, tetapi algoritma itu sendiri boleh dikonfigurasikan untuk menyokong julat yang lebih luas bagi kedua-dua blok dan panjang kunci (dari 0 hingga 2040 bit).

Merupakan finalis AES dan menggunakan hampir semua perkara teknologi sedia ada, digunakan dalam algoritma kriptografi, bagaimanapun, salah satu operasi primitif ialah operasi pendaraban, yang lambat dilakukan pada beberapa peralatan dan menyukarkan untuk melaksanakan sifir pada beberapa platform perkakasan dan, yang ternyata mengejutkan untuk pengarang, pada sistem dengan Seni bina Intel IA-64 juga agak kurang dilaksanakan. DALAM dalam kes ini algoritma kehilangan salah satu daripadanya kelebihan utama -- kelajuan tinggi pelaksanaan, yang menjadi alasan untuk kritikan dan salah satu halangan untuk dipilih sebagai standard baru.

nasi. 3. Algoritma penyulitan RC6

Struktur penyulitan algoritma RC6 ditunjukkan dalam Rajah 3. Penerangan ringkas tentang algoritma: algoritma menggunakan 20 pusingan transformasi, sebelum pemutihan input separa dilakukan:

o B = B + K 0 mod 2 32

o D = D + K 1 mod 2 32 ,

dengan A, B, C, D ialah nilai semasa subblok 32-bit yang diproses, dan K 0 ...K 43 ialah serpihan kunci lanjutan.

Pemutihan separa keluar dilakukan dengan cara yang sama:

o A = A + K 42 mod 2 32

o C = C + K 43 mod 2 32 .

Dalam setiap pusingan algoritma, tindakan berikut dilakukan:

o t 1 = f(B)<<< 5,

o t 2 = f(D)<<< 5,

o A = ((A E t 1)<<< t 2) + K 2i mod 2 32 ,

o C = ((C E t 2)<<< t 1) + K 2i+1 mod 2 32 ,

di mana t 1 dan t 2 adalah pembolehubah sementara, bilangan bit putaran bagi setiap bilangan pembolehubah bit ditentukan oleh nilai 5 bit paling tidak ketara bagi parameter (t 1 atau t 2), fungsi f() melaksanakan perkara berikut. penjelmaan kuadratik:

f(x) = x * (2x + 1) mod 2 32 .

Pada akhir setiap pusingan, subblok dialihkan.

Kelebihan algoritma:

· Struktur ringkas algoritma memudahkan analisisnya.

· Algoritma finalis AES terpantas pada platform 32-bit.

· Penyulitan dan penyahsulitan dalam algoritma RC6 adalah hampir sama. Kelemahan algoritma:

· Kelajuan penyulitan perisian sangat bergantung pada sama ada platform menyokong pendaraban 32-bit dan putaran bit-boleh ubah.

· RC6 sukar dilaksanakan dalam perkakasan dan dalam keadaan sumber yang terhad.

· Agak sukar untuk melindungi daripada serangan dari segi masa pelaksanaan dan penggunaan kuasa.

· Tidak menyokong sepenuhnya pengembangan kunci segera.

· Keselarian pengiraan apabila menyulitkan dengan algoritma RC6 boleh dilaksanakan dengan pengehadan.

1.2.3 Algoritma GOST 28147-89

GOST 28147-89 ialah piawaian penyulitan simetri Soviet dan Rusia yang diperkenalkan pada tahun 1990, juga piawaian CIS. Nama penuh - “GOST 28147-89 Sistem pemprosesan maklumat. Perlindungan kriptografi. Algoritma penukaran kriptografi."

Struktur algoritma dibentangkan di bawah (Rajah 4).

nasi. 4. Algoritma penyulitan GOST 28147-89

Algoritma sifir blok. Apabila menggunakan kaedah penyulitan gamma, ia boleh melaksanakan fungsi algoritma sifir strim. GOST 28147-89 -- sifir blok dengan kunci 256-bit dan 32 kitaran penukaran, beroperasi pada blok 64-bit. Asas algoritma sifir ialah rangkaian Feistel. Terdapat empat mod pengendalian mengikut GOST 28147-89: penggantian mudah, permainan, permainan dengan maklum balas, dan mod penjanaan sisipan simulasi.

Kelebihan algoritma: kesia-siaan serangan daya, kecekapan pelaksanaan dan, oleh itu, prestasi tinggi pada komputer moden, kehadiran perlindungan terhadap pengenaan data palsu (penjanaan sisipan tiruan) dan kitaran penyulitan yang sama dalam semua empat algoritma GOST, kunci yang lebih besar berbanding dengan algoritma DESX.

Kelemahan algoritma: Masalah utama GOST berkaitan dengan ketidaklengkapan standard dari segi penjanaan kunci dan jadual penggantian. Adalah dipercayai bahawa GOST mempunyai kunci "lemah" dan jadual penggantian, tetapi piawaian tidak menerangkan kriteria untuk memilih dan menghapuskan yang "lemah". Juga, piawaian tidak menyatakan algoritma untuk menjana jadual penggantian (kotak-S). Di satu pihak, ini mungkin maklumat rahsia tambahan (sebagai tambahan kepada kunci), dan sebaliknya, ia menimbulkan beberapa masalah: adalah mustahil untuk menentukan kekuatan kriptografi algoritma tanpa mengetahui jadual penggantian terlebih dahulu. ; pelaksanaan algoritma daripada pengeluar yang berbeza mungkin menggunakan jadual gantian yang berbeza dan mungkin tidak serasi antara satu sama lain; kemungkinan peruntukan sengaja jadual penggantian yang lemah oleh pihak berkuasa pelesenan Persekutuan Rusia.

1.2.4 Kelebihan IDEA mendahului analog

Dalam pelaksanaan perisian pada Intel486SX adalah dua kali lebih pantas daripada DES IDEA, yang merupakan peningkatan ketara dalam kelajuan; Panjang kunci IDEA ialah 128 bit, berbanding 56 bit untuk DES, yang merupakan peningkatan yang baik terhadap kekunci kekerasan. Kebarangkalian menggunakan kekunci lemah adalah sangat kecil dan berjumlah 1/2 64 . IDEA lebih pantas daripada algoritma GOST 28147-89 (dalam pelaksanaan perisian pada Intel486SX). Menggunakan IDEA dalam mod penyulitan selari pada pemproses Pentium III dan Pentium MMX membolehkan memperoleh kelajuan tinggi. Berbanding dengan finalis AES, IDEA 4 hala hanya lebih perlahan sedikit daripada RC6 dan Rijndael pada Pentium II, tetapi lebih pantas daripada Twofish dan MARS. Pada Pentium III 4-hala IDEA adalah lebih pantas daripada RC6 dan Rijndael. Kelebihan lain ialah ia dikaji dengan baik dan tahan terhadap alat kriptanalisis yang terkenal.

1.3 Mod Chaining Block Cipher - merantai blok menggunakan ciphertext

Dalam mod penyulitan CBC, semua blok mesej "digabungkan" menggunakan teks sifir.

Dalam algoritma penyulitan, input fungsi setiap kali menerima hasil penjumlahan modulo 2 bagi data terbuka bagi blok mesej seterusnya dan fungsi output untuk blok sebelumnya. Oleh kerana data output fungsi untuk blok seterusnya pergi terus ke output algoritma CBC, iaitu, ia adalah teks sifir blok ini dan pada masa yang sama pergi ke input fungsi yang sama untuk menyulitkan blok berikutnya, mereka mengatakan bahawa blok dirantai menggunakan teks sifir. Blok pertama data terbuka disimpulkan dengan apa yang dipanggil. vektor permulaan.

Vektor permulaan ini diketahui oleh kedua-dua pengirim dan penerima pada awal sesi komunikasi (oleh itu, ia selalunya dipanggil mesej penyegerakan). Penyahsulitan berlaku, sewajarnya, dalam susunan terbalik - pertama, fungsi digunakan pada teks sifir, dan kemudian dijumlahkan dengan blok teks sifir sebelumnya untuk mendapatkan blok teks biasa seterusnya pada output algoritma. Blok pertama teks biasa, sekali lagi, dibina semula menggunakan vektor permulaan.

Oleh itu, untuk semua i = 1...n, blok sifirteks C(i) ditakrifkan seperti berikut:

C(i) = IDEA(M(i) xor C(i-1)),

Penyahsulitan dilakukan seperti berikut:

M(i) = C(i-1) xatau IDEA-1(C(i)),

Bongkah M(i) ialah fungsi C(i-1) dan C(i) sahaja. Oleh itu, ralat penghantaran akan mengakibatkan kehilangan hanya dua blok teks sumber.

1.4 Perbandingan analog mod penyulitan CBC

Apabila menggunakan sifir blok, skema penyulitan yang berbeza digunakan, yang dikenali sebagai mod pengendalian penyulitan untuk sifir blok. Adalah jelas bahawa penggunaan satu atau satu lagi mod penyulitan tidak seharusnya menjejaskan kecekapan dan, terutamanya, kekuatan kriptografi sifir blok. Mod penyulitan membolehkan anda melaksanakan fungsi tambahan yang tiada dalam reka bentuk sifir blok asal.

1.4.1 Buku Kod Elektronik - Buku kod elektronik

Mod ini adalah analog elektronik mod yang digunakan oleh ejen untuk menghantar mesej yang disulitkan kembali pada mulanya abad XX. Ejen menerima buku nota, setiap halamannya mengandungi urutan unik - kod yang dengannya mesej itu disulitkan. Selepas digunakan, halaman sedemikian telah dikoyakkan daripada buku nota dan dimusnahkan. Jika perlu, mesej itu telah ditambah supaya tiada kod yang tidak digunakan kekal pada halaman yang koyak. Pihak yang menerima mempunyai salinan pad nota, oleh itu, dengan syarat halaman tersebut digunakan secara serentak, mod penyulitan ini menyediakan kedua-dua penyulitan dan penyahsulitan mesej. Dalam ECB, menggunakan satu halaman buku kod semasa menyulitkan sepadan dengan menggunakan transformasi pada data input menggunakan fungsi CIPH k, dan apabila menyahsulit - CIPH -1 k. Untuk menyegerakkan, sudah cukup untuk kedua-dua pihak bersetuju dengan nilai kunci rahsia K.

Seperti yang dapat dilihat daripada rajah, keseluruhan algoritma ECB terdiri daripada menggunakan fungsi secara langsung pada kedua-dua mesej dan teks sifir untuk penyulitan dan penyahsulitan, yang juga boleh dinyatakan dalam bentuk persamaan: Penyulitan ECB:

C j = CIPH K (P j) ,

di mana j=1…n

Penyahsulitan ECB:

P j = CIPH K (C j),

di mana j=1…n

Oleh itu, penyulitan berlaku dalam blok yang sepadan dengan saiz data input/output untuk fungsi dan. Blok disulitkan secara berasingan dan bebas antara satu sama lain, yang membolehkan ini dilakukan secara selari. Kelebihan mod ECB ini dan kesederhanaannya disembunyikan oleh dua kelemahan yang ketara. Yang pertama ialah panjang mesej mestilah gandaan panjang blok data input sifir blok, iaitu, keseluruhan mesej boleh sama ada dibahagikan kepada nombor integer blok tersebut, atau entah bagaimana perlu menambah blok terakhir dengan data yang tidak membawa maklumat. Kelemahan kedua adalah lebih ketara.

Memandangkan semasa penyulitan blok teks sifir seterusnya ditentukan sepenuhnya hanya oleh blok teks biasa yang sepadan dan nilai kunci rahsia K, blok teks biasa yang serupa akan ditukar dalam mod ini kepada blok teks sifir yang sama. Dan ini kadang-kadang tidak diingini, kerana ia boleh memberikan kunci untuk menganalisis kandungan mesej. Sebagai contoh, jika data pada cakera keras disulitkan, maka ruang kosong akan diisi dengan bait yang sama yang ditinggalkan di sana daripada memformat cakera. Ini bermakna bahawa dari teks sifir adalah mungkin untuk meneka saiz maklumat berguna pada cakera. Dalam kes sedemikian, anda perlu menggunakan mod penyulitan lain.

1.4.2 Suapan Sifir Balik

Cipher Feed Back Mod maklum balas Ciphertext ialah salah satu daripada skim penyulitan simetri di mana blok teks yang disulitkan ialah penambahan sedikit demi sedikit bagi blok plaintext dengan hasil penyulitan daripada penyulitan blok sebelumnya. Ia mempunyai pengubahsuaian yang membolehkan anda menyulitkan data yang saiznya kurang daripada saiz blok sifir, yang memungkinkan untuk menyulitkan aliran data tanpa menunggu bilangan bit yang diperlukan untuk tiba pada input.

Dalam mod ini, saiz blok mungkin berbeza daripada 64. Fail sumber M dibaca dalam blok t-bit berturut-turut (t<= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

Daftar anjakan 64-bit (blok input) mula-mula mengandungi IV yang dibenarkan betul. Untuk setiap sesi penyulitan, vektor permulaan baharu digunakan.

Untuk semua i = 1...n, blok sifirteks C(i) ditakrifkan seperti berikut:

C(i) = M(i) xor P(i-1),

di mana P(i-1) ialah bit t paling ketara bagi operasi IDEA(C(i-1)), dan C(0) = IV.

Daftar anjakan dikemas kini dengan mengeluarkan t bit tertingginya dan menambah C(i) ke kanan.

Memulihkan data yang disulitkan juga mudah: P(i-1) dan C(i) dikira dengan cara yang sama dan M(i) = C(i) xor P(i-1).

1.4.3 Maklum Balas Output

Mod OFB, seperti CFB, adalah dalam talian, iaitu fungsi dipanggil dalam algoritma sebelum menjumlahkan dengan sebahagian teks biasa. Tetapi kali ini input bukanlah teks sifir daripada lelaran sebelumnya, tetapi hanya data outputnya. Iaitu, fungsi gelung.

Dalam keadaan sedemikian, menjadi penting untuk menggunakan vektor permulaan sekali. Katakan dua mesej berbeza disulitkan dalam mod OFB menggunakan vektor permulaan yang sama. Kemudian, jika musuh menyedari sebarang blok teks biasa ke-j bagi mesej pertama, maka, dengan blok teks sifir ke-j, dia boleh mengira dengan mudah Oj - data output, dan kerana ia hanya bergantung pada vektor permulaan, yang adalah sama untuk kedua-dua mesej, maka kita boleh mengatakan bahawa dalam mesej kedua ia akan menjadi Oj yang sama, oleh itu, mempunyai blok j teks sifir mesej kedua, musuh akan serta-merta menerima plaintext blok ke-j bagi mesej kedua.

Oleh itu, dalam algoritma OFB, adalah perlu untuk mengelakkan bukan sahaja pengulangan vektor permulaan, tetapi juga bahawa mana-mana blok ke-j data input fungsi untuk satu mesej tidak digunakan sebagai vektor permulaan untuk mesej lain. Di bawah ialah persamaan untuk penyulitan OFB: Penyulitan OFB:

I j = O j -1 , j = 1.2, … n

C j = P j + O j , j = 1.2, … n-1

C n = P n + MSB t (O n)

Penyahsulitan OFB:

I j = O j - 1 , j = 2, … n

O j = CIPH K (I j), j = 1.2, … n

P j = C j + O j , j = 1.2, … n-1

P n = C n + MSB t (O n) ,

di mana "+" ialah operasi xor.

Masalah pelengkapan mesej untuk OFB diselesaikan dengan mudah: untuk blok mesej yang terakhir, mungkin tidak lengkap, sama banyak bit data output fungsi digunakan kerana terdapat bit dalam blok ini. Oleh itu, dalam mod ini, tidak seperti yang sebelumnya, panjang mesej kekal tidak berubah semasa proses penyulitan dan, yang paling penting, semasa penghantaran.

1.4.4 Kaunter - penyulitan dengan pembilang

Dalam mod penyulitan strim dengan pembilang pada setiap lelaran algoritma penyulitan pada input fungsi nilai rawak T dibekalkan. Data input ini mesti berbeza untuk semua lelaran algoritma di mana sifir blok menggunakan kunci penyulitan yang sama, jadi penjana nilai sedemikian kadangkala dipanggil pembilang (yang menyediakan cara paling mudah untuk menjana nilai T yang unik).

Sebenarnya, keperluan keunikan data input fungsi pada nilai K tertentu akan dipenuhi dalam kes menggunakan PRC (penjana kod pseudorandom), tetapi kemudiannya vektor permulaan awal untuk PRC diperlukan pada bahagian tersebut. daripada pengirim dan penerima mesej.

Oleh itu, teks sifir dalam algoritma mod CTR diperoleh dengan menjumlahkan modulo 2 blok plaintext seterusnya dengan data output fungsi. Nilai Tj seterusnya bagi pembilang blok mesej dibekalkan kepada input fungsi. Penyahsulitan juga berlaku dengan menjumlahkan modulo 2 blok sifir teks seterusnya dan hasil penjelmaan oleh fungsi nilai seterusnya pembilang Tj. Kedua-dua operasi penyulitan dan penyahsulitan dalam mod CTR boleh dilakukan secara selari dan bebas untuk semua blok. Selain itu, mod ini juga tidak mempunyai masalah blok terakhir. penyulitan CTR:

penyahkodan CTR:

Mod CTR mempunyai semua kelebihan mod ECB (pelaksanaan selari, kesederhanaan dan keupayaan untuk terus menyulitkan sebarang blok mesej secara berasingan dan bebas daripada blok lain). Tetapi sebagai tambahan, mod CTR membetulkan semua kekurangan penyulitan dalam mod buku kod elektronik: blok teks biasa yang sama tidak lagi akan ditukar menjadi blok teks sifir yang sama; Tidak perlu melapik blok siferteks terakhir. Di samping itu, dalam mod ini (seperti dalam mana-mana mod aliran) hanya fungsi penyulitan digunakan, dan untuk beberapa sifir blok (contohnya, untuk AES - piawaian sifir blok Amerika yang baharu), ini memberikan beberapa keuntungan prestasi. Inilah sebabnya mengapa mod ini selalunya paling berkesan.

1.4.5 Kelebihan Cipher Block Chaining berbanding analog

Jadi, kita boleh membuat kesimpulan bahawa mod penyulitan simetri CBC mempunyai kelebihan yang jelas antara yang dipertimbangkan di atas, iaitu: dalam mod penyahsulitan, apabila keseluruhan teks sifir telah diterima, fungsi boleh dilaksanakan secara selari dan bebas untuk semua blok mesej. Ini memberikan keuntungan masa yang ketara.

Dalam mod ini, ia patut memberi tumpuan kepada satu lagi butiran. Hakikatnya ialah blok terakhir teks sifir, yang diperoleh pada output algoritma mod CBC, bergantung pada kedua-dua kunci sifir blok dan vektor permulaan, dan (lebih penting lagi dalam kes ini) pada semua bit teks biasa bagi mesej itu. Ini bermakna bahawa blok terakhir teks sifir ini boleh digunakan sebagai sejenis pengecam mesej. Pengecam sedemikian tidak memberi pemerhati luar apa-apa maklumat tentang kandungan keseluruhan mesej secara keseluruhan, dan pada masa yang sama, hampir dengan jelas mengenal pastinya (mesej). Selain itu, adalah sama sukar untuk memalsukan pengecam ini tanpa mengetahui kunci penyulitan K seperti juga untuk meneka kunci itu sendiri dengan betul.

2. BAHAGIAN REKA BENTUK

2.1 Permodelan fungsional

Berdasarkan keperluan untuk perisian, fungsi berikut ditakrifkan:

· Pendaftaran pengguna dengan medan:

· Penyulitan teks sumber;

· Penyahsulitan teks yang disulitkan;

· Paparkan kepada pengguna peringkat akhir penyulitan dan penyahsulitan selepas kebenaran berjaya.

2.2 Reka bentuk algoritma

Algoritma penyulitan IDEA umum ditunjukkan di bawah (Rajah 5).

Selepas memulakan program, pengguna mesti memasukkan pasangan: log masuk + kata laluan pada borang kebenaran, atau mengisi borang pendaftaran. Selepas memasukkan aksara pada borang, fungsi penyulitan akan mula berfungsi apabila anda mengklik pada butang "Log Masuk" atau "Pendaftaran", masing-masing.

Blok data 64-bit dibaca daripada fail dan dibahagikan kepada empat subblok 16-bit. Empat subblok ini menjadi input kepada gelung pertama algoritma. Dalam rajah, subblok ini ditetapkan D 1, D 2, D 3, D 4. Setiap pusingan menggunakan subkuncinya sendiri mengikut jadual subkunci (Rajah 6). Operasi yang diterangkan sebelum ini dan dibentangkan dalam rajah algoritma dilakukan pada subblok 16-bit dan subblok teks biasa.

Pada penghujung setiap pusingan penyulitan, terdapat empat subblok 16-bit, yang kemudiannya digunakan sebagai subblok input untuk pusingan penyulitan seterusnya. Transformasi keluaran ialah pusingan yang dipendekkan, iaitu empat subblok 16-bit pada output pusingan kelapan dan empat subblok yang sepadan tertakluk kepada operasi yang diterangkan.

Kemudian blok 64-bit plaintext seterusnya diambil dan algoritma penyulitan diulang. Ini berterusan sehingga semua blok 64-bit teks sumber disulitkan.

Pengguna akan melihat mesej yang disulitkan selepas kebenaran berjaya.

Kaedah pengiraan yang digunakan untuk menyahsulit teks pada asasnya adalah sama seperti yang digunakan untuk menyulitkannya. Satu-satunya perbezaan ialah subkunci yang berbeza digunakan untuk penyahsulitan. Semasa proses penyahsulitan, subkunci mesti digunakan dalam susunan terbalik. Subkunci pertama dan keempat bagi pusingan ke-i penyahsulitan diperoleh daripada subkunci pertama dan keempat pusingan penyulitan (10-i) melalui penyongsangan berganda. Untuk pusingan pertama dan ke-9, subkunci penyahsulitan kedua dan ketiga diperoleh daripada subkunci kedua dan ketiga pusingan ke-9 dan pertama penyulitan melalui penyongsangan tambahan. Untuk pusingan 2 hingga 8, subkunci penyahsulitan kedua dan ketiga diperoleh daripada subkunci ketiga dan kedua pusingan 8 hingga 2 penyulitan penyongsangan tambahan. Dua subkunci terakhir bagi pusingan ke-i penyahsulitan adalah sama dengan dua subkunci terakhir bagi pusingan ke-9 penyulitan (9-i)-.

Pengguna akan melihat mesej yang dinyahsulit selepas berjaya mengisi borang kebenaran, dengan log masuk dan kata laluan yang betul dimasukkan.

nasi. 5. Struktur algoritma IDEA

nasi. 6. Sambungkan IDEA algoritma penyulitan dan penyahsulitan

2.3 Pelaksanaan perisian

Kerja kursus dilaksanakan dalam persekitaran pengaturcaraan Microsoft Visual Studio 2012. Bahasa pengaturcaraan yang digunakan untuk menulis kerja ialah C#.

Senarai prosedur utama - pengendali, yang mengandungi fungsi program yang sedang dibangunkan:

· fungsi public static int idea_hash_cbc (char *s, int len, int k, int iv) untuk mengira cincang CBC. Dalam fungsi ini kita mendapat nilai semasa untuk XOR (iv), mencipta penunjuk kepada tatasusunan data yang dicincang, bahagikan saiz tatasusunan dengan 8 (kami menyemak gandaan 8), menyulitkan menggunakan formula: C(i ) = IDEA(C(i- 1) ^ S(i), KEY), dan kembalikan cincangan yang terhasil.

· rentetan statik peribadi ShiftByteLeft(rentetan s) beralih sebanyak 25 bit secara kitaran ke kiri

· rentetan statik peribadi ShiftbyteRight(rentetan s) beralih sebanyak 25 bit secara kitaran ke kanan

· rentetan statik peribadi Jumlah(rentetan a1, rentetan a2) jumlah modulo 2^16

· rentetan statik peribadi Berbilang(rentetan a1, rentetan a2) modulo pendaraban 2^16+1 rentetan statik peribadi XOR(rentetan a1, rentetan a2) eksklusif ATAU

· fungsi tetapan bit setBit T sebaris (T v, int nBitNumber). Bit dikira dari 0, penomboran pergi dari kiri ke kanan.

· fungsi inline bool getBit (T v, int nBitNumber) untuk mendapatkan nilai bit (benar/salah).

· peta *> arkib_kunci; arkib jadual kekunci "bulat", supaya tidak menjana kekunci baharu setiap kali (fungsi termasuk: pilih atur kekunci awal, pilih atur kekunci akhir, anjakan, jadual penggantian). private void idea_Encryption (string st1, string st2) IDEA algorithm. Input - 2 baris: 1) set bit blok baca (panjang 64). 2) satu set bit kunci kami (panjang 128). Output - blok sifir (64 aksara) idea rentetan awam_Penyahsulitan (rentetan st1, rentetan st2) fungsi penyahsulitan menggunakan algoritma IDEA.

· bool Fungsi CheckLogin(int hash) membaca log masuk, jika cincangan argumen adalah sama dengan log masuk baca, ia menutup fail dan memberikan hasil yang positif. Jika tidak, ia memaparkan mesej "Log masuk tidak sah"

· bool Fungsi CheckPass(int login_hash, int pass_hash) membaca log masuk dan kata laluan, jika log masuk adalah sama dengan yang diminta, tetapi kata laluan tidak sepadan, ia menutup fail dan memaparkan mesej "Kata laluan tidak sah". Jika log masuk dan kata laluan sepadan, fungsi mengembalikan "benar".

Program ini terdiri daripada tiga bentuk: borang pendaftaran (Rajah 7.), borang kebenaran (Rajah 8.) dan borang dengan output teks yang disulitkan dan dinyahsulit (Rajah 9.). Borang-borang ini dibentangkan di bawah.

pengesahan penyulitan blok perisian

Rajah 8. Borang pendaftaran

Rajah.9. Borang output maklumat

3. EKSPERIMEN

Ujian 1. Menguji kehadiran log masuk pengguna

data input:

· Mengklik pada butang Log Masuk tanpa memasukkan log masuk

Keputusan:

· Mesej ralat. Sila masukkan log masuk anda

Ujian 2. Menguji pengesahan kata laluan pengguna yang dimasukkan

data input:

· Mengklik butang Log Masuk tanpa memasukkan kata laluan

Keputusan:

· Mesej ralat. Sila masukkan kata laluan anda

Kesimpulan: fungsi pengesahan berfungsi dengan betul.

Ujian 3. Menguji fungsi penyulitan dengan panjang teks tidak lebih daripada 50 aksara.

data input:

· Nama penuh: Beberapa teks

Ujian 4. Menguji fungsi penyulitan apabila panjang teks melebihi 50 aksara.

data input:

· Nama penuh: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Kesimpulan: Fungsi penyulitan berfungsi dengan betul.

Ujian 4: Menambah aksara pada permulaan cincang yang disulitkan.

Ujian 5: Menambah aksara pada bahagian tengah cincang yang disulitkan.

Kesimpulan: sebahagian daripada teks tidak akan dinyahsulit.

KESIMPULAN

Semasa kerja kursus, dalam bahagian analisis, pelbagai algoritma penyulitan blok simetri telah dianalisis dan kebaikan dan keburukan algoritma IDEA telah dibentangkan. Juga, tugas dan keperluan untuk program yang dibangunkan telah ditetapkan, yang dilaksanakan sepenuhnya.

Dalam bahagian reka bentuk, fungsi utama, serta parameter input dan output fungsi algoritma IDEA, ditakrifkan dan dibincangkan secara terperinci. Persekitaran pembangunan perisian dan bahasa pengaturcaraan telah dipilih.

Dalam bahagian eksperimen, perisian telah diuji dengan lima ujian. Tiada ralat ditemui dalam pelaksanaan algoritma atau pengendalian perisian.

BIBLIOGRAFI

1. Wikipedia. Algoritma IDEA [Sumber elektronik]. - Mod akses: - http://ru.wikipedia.org/wiki/IDEA.

2. MSDN [Sumber elektronik]. - Mod akses: - http://msdn.microsoft.com/ru-ru/.

3. Wikipedia. Mod penyambungan blok siferteks [Sumber elektronik]. - Mod akses: - https://ru.wikipedia.org/wiki/Mode_concatenation_of_ciphertext_blocks.

4. [Sumber elektronik] - Oleg Zenzin - Mod penyulitan, bahagian Pengumpulan ralat dalam pelbagai mod penyulitan - Mod akses: - http://citforum.ru/security/cryptography/rejim_shifrov/

5. [Sumber elektronik] - Semakan perbandingan algoritma PGP - Mod akses: - https://www.pgpru.com/biblioteka/statji/sravniteljnyjjobzoralgoritmovpgp

Disiarkan di Allbest.ru

Dokumen yang serupa

    Pelaksanaan algoritma DES dan mod penyulitan untuk sebarang panjang mesej dan sebarang panjang kunci. Penyulitan mesej pelbagai panjang dan kunci, mengukur masa dan kelajuan penyulitan. Pelaksanaan algoritma RSA. Menyimpan fail yang disulitkan ke cakera.

    kerja kursus, ditambah 26/01/2010

    Pembangunan aplikasi untuk penyulitan data menggunakan algoritma DES5: proses penyulitan, penyahsulitan, mendapatkan kunci. Spesifikasi program, prosedur dan fungsi; penerangan tentang antara muka pengguna. Pelaksanaan tugas dalam persekitaran pengaturcaraan DELPHI.

    kerja kursus, tambah 03/27/2012

    Sejarah kemunculan algoritma penyulitan simetri. Peranan kunci simetri dalam memastikan tahap kerahsiaan mesej. Penyebaran dan kekeliruan sebagai kaedah menukar bit data. Algoritma penyulitan DES dan IDEA, kelebihan dan kekurangan utamanya.

    kerja makmal, tambah 03/18/2013

    Sistem kriptografi simetri; algoritma untuk menyulitkan dan menyahsulit data, aplikasinya dalam teknologi komputer dalam sistem untuk melindungi maklumat sulit dan komersial. Mod operasi asas algoritma DES, pembangunan pelaksanaan perisian kunci.

    kerja kursus, ditambah 02/17/2011

    Sejarah kemunculan algoritma penyulitan simetri, keadaan dan ciri aplikasinya pada peringkat sekarang. Prinsip dan fungsi teknologi yang dikaji. Analisis kelebihan dan kekurangan utama menggunakan algoritma, penilaian kelemahannya.

    kerja kursus, ditambah 29/10/2017

    Kajian sistem pengagihan utama berdasarkan transformasi linear. Penerangan mengenai komponen rangkaian komunikasi sulit. Ciri-ciri algoritma penyulitan data domestik. Semakan hasil pengiraan kekuatan kriptografi algoritma penyulitan.

    ujian, ditambah 09/26/2012

    Pembangunan program yang melaksanakan penyulitan teks dan prosedur penyahsulitan mengikut piawaian DES (Data Encryption Standard). Struktur algoritma penyulitan, skema untuk membangunkan elemen utama. Penggunaan perisian kriptografi.

    kerja kursus, ditambah 06/15/2013

    Pembangunan algoritma kriptografi untuk program sifir manual menggunakan jadual Vigenère. Pembangunan program yang melakukan penyulitan dan penyahsulitan. Ciri menggunakan plainteks itu sendiri sebagai kunci. Algoritma untuk menyelesaikan masalah "terbalik".

    kerja kursus, ditambah 11/13/2009

    Sistem kriptografi simetri ialah kaedah penyulitan di mana kunci kriptografi yang sama digunakan untuk penyulitan dan penyahsulitan. Analisis dan pelaksanaan algoritma penyulitan: pilih atur mudah dan berganda, pilih atur kuasa dua ajaib.

    kerja kursus, tambah 03/11/2013

    Penyulitan simetri ialah kaedah penyulitan yang menggunakan kunci kriptografi yang sama. Fungsi kotak dialog standard untuk membuka dan menyimpan fail. Skim tindakan biasa apabila menjana tandatangan. Tandatangan digital fail.

PENGENALAN

BAHAGIAN ANALITIK

1 algoritma IDEA

2 Perbandingan analog algoritma IDEA

2.1 Algoritma DES

2.2 Algoritma RC6

2.3 Algoritma GOST 28147-89

2.4 Kelebihan IDEA berbanding analog

3 Cipher Block Chaining mod - merantai blok menggunakan ciphertext

4 Perbandingan analog mod penyulitan CBC

4.1 Buku Kod Elektronik - Buku kod elektronik

4.2 Suapan Sifir Balik - memuatkan terbalik teks sifir

4.3 Output Feed Back - pemuatan terbalik data output

4.4 Pembilang - penyulitan dengan pembilang

4.5 Kelebihan Rantaian Blok Cipher berbanding analog

BAHAGIAN REKA BENTUK

1 Pemodelan berfungsi

2 Reka bentuk algoritma

3 Pelaksanaan perisian

BAHAGIAN EKSPERIMEN

KESIMPULAN

BIBLIOGRAFI

PENGENALAN

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

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

Contoh klasik bagi algoritma tersebut ialah algoritma kriptografi simetri yang disenaraikan di bawah: - penggantian mudah;

pilih atur tunggal dengan kunci;

pilih atur berganda;

pilih atur "Petak ajaib";

penyusunan semula yang mudah.

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

Pada masa ini, sifir simetri ialah:

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

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

Terdapat banyak algoritma sifir simetri, parameter pentingnya ialah:

· ketahanan;

· panjang kunci;

· bilangan pusingan;

· panjang blok yang diproses;

· kerumitan pelaksanaan perkakasan/perisian;

· kerumitan penukaran.

1.BAHAGIAN ANALITIK

1Algoritma IDEA

IDEA (Bahasa Inggeris: Algoritma Penyulitan Data Antarabangsa, algoritma penyulitan data antarabangsa) ialah algoritma penyulitan data blok simetri yang dipatenkan oleh syarikat Switzerland Ascom. Ini ialah algoritma penyulitan blok simetri yang dicadangkan untuk menggantikan piawaian DES. Versi awal algoritma IDEA muncul pada tahun 1990. Pembangun algoritma, Xuejia Lai dan James Massey dari Swiss Institute ETH Zurich, memberikannya nama PES (Proposed Encryption Standard).

Memandangkan IDEA menggunakan kunci 128-bit dan saiz blok 64-bit, plaintext dipecahkan kepada blok 64-bit. Jika partition sedemikian tidak mungkin, blok terakhir ditambah dalam pelbagai cara dengan urutan bit tertentu. Untuk mengelakkan kebocoran maklumat tentang setiap blok individu, pelbagai mod penyulitan digunakan. Setiap blok 64-bit asal yang tidak disulitkan dibahagikan kepada empat subblok 16 bit setiap satu, kerana semua operasi algebra yang digunakan dalam proses penyulitan dilakukan pada nombor 16-bit. IDEA menggunakan algoritma yang sama untuk penyulitan dan penyahsulitan.

IDEA menggunakan yang berikut operasi matematik:

 modulo penambahan bitwise 2 (operasi "eksklusif ATAU");

 penambahan modulo integer tidak bertanda 2 16;

 pendaraban modulo integer tidak bertanda (2 16+1), dengan blok 16 sifar dianggap sebagai 2 16;

Kelemahan yang ketara ialah IDEA dipatenkan, kerana ini menghalang pengedaran percumanya. IDEA tidak menyediakan untuk menambah panjang kunci. Kelemahan lain boleh dianggap fakta bahawa tidak semua kerja pada cryptanalysis telah diterbitkan, iaitu, agak mungkin bahawa sifir telah dipecahkan, atau akan dipecahkan pada masa akan datang.

Struktur algoritma IDEA dibentangkan di bawah (Rajah 1).

nasi. 1. Algoritma penyulitan IDEA

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

· mod rantaian blok (CBC - Rantaian Blok Cipher)

· mod maklum balas sifir (CFB - Suapan Balik Sifir)

· mod maklum balas keluaran (OFB - Suapan Balik Output).

Kerja kursus ini mengkaji pelaksanaan perisian algoritma penyulitan IDEA (mod Cipher Feed Back).

1.2Perbandingan analog algoritma IDEA

1.2.1Algoritma DES

DES (Standard Penyulitan Data) - Algoritma penyulitan simetri di mana satu kunci digunakan untuk kedua-dua penyulitan dan penyahsulitan data. DES mempunyai blok 64-bit dan struktur rangkaian Feistel 16 kitaran; ia menggunakan kunci 56-bit untuk penyulitan.

Algoritma menggunakan gabungan bukan linear (S-boxes) dan linear (permutasi E, IP, IP-1).

Memandangkan DES beroperasi dalam blok 64-bit dan menggunakan kekunci 56-bit, panjang kunci ini sepadan dengan 256 kombinasi, yang sehingga baru-baru ini menyediakan tahap keselamatan yang mencukupi (8 bit genap kunci 64-bit penuh tidak digunakan, bit pariti ialah bait kunci bit paling tidak ketara). Blok data input, yang terdiri daripada 64 bit, ditukar menjadi blok keluaran yang sama panjang.

Disebabkan oleh penggunaan kunci penyulitan 56-bit, algoritma DES boleh dipecahkan dengan kekerasan pada mana-mana sistem pengkomputeran dalam jangka masa yang sangat realistik - beberapa hari. Sistem kriptografi simetri, yang ditakrifkan sebagai sifir Feistel 16 pusingan, pada asalnya bertujuan untuk pelaksanaan perkakasan. Apabila DES digunakan untuk menghantar maklumat, untuk menyulitkan dan menyahsulit mesej atau untuk mencipta dan mengesahkan kod pengesahan mesej (MAC), pengirim dan penerima mesti mengetahui kunci rahsia.

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

Rajah.2. Algoritma penyulitan DES

1.2.2Algoritma RC6

Sifir RC6 yang menyertai pertandingan AES menyokong blok 128-bit dan kekunci 128-, 192-, dan 256-bit, tetapi algoritma itu sendiri boleh dikonfigurasikan untuk menyokong lebih banyak julat yang luas panjang kedua-dua blok dan kekunci (dari 0 hingga 2040 bit).

Ia adalah finalis AES, dan menggunakan hampir semua teknologi sedia ada yang digunakan dalam algoritma kriptografi, namun, salah satu operasi primitif ialah operasi pendaraban, yang lambat dilakukan pada beberapa peralatan dan menyukarkan untuk melaksanakan sifir pada beberapa perkakasan platform dan, yang ternyata menjadi kejutan bagi pengarang, pada sistem dengan seni bina Intel IA-64 juga agak kurang dilaksanakan. Dalam kes ini, algoritma kehilangan salah satu kelebihan utamanya - kelajuan pelaksanaan yang tinggi, yang menjadi sebab untuk kritikan dan salah satu halangan untuk dipilih sebagai standard baharu.

nasi. 3. Algoritma penyulitan RC6

Struktur penyulitan algoritma RC6 ditunjukkan dalam Rajah 3. Penerangan Ringkas algoritma: algoritma menggunakan 20 pusingan transformasi, sebelum pemutihan input separa dilakukan:

o B = B + K 0mod 2 32

o D=D+K 1mod 2 32,

di mana A, B, C, D ialah nilai semasa subblok 32-bit yang sedang diproses, dan K 0...K 43- serpihan kunci lanjutan.

Pemutihan separa keluar dilakukan dengan cara yang sama:

o A = A + K 42mod 2 32

o C=C+K 43mod 2 32.

Dalam setiap pusingan algoritma, tindakan berikut dilakukan:

o t 1= f(B)<<< 5,

o t 2= f(D)<<< 5,

o A = ((A Å t 1) <<< t2) + K 2i mod 2 32,

o C = ((C Å t 2) <<< t1) + K 2i+1 mod 2 32,

di mana t 1dan t 2- pembolehubah sementara, bilangan bit putaran setiap bilangan pembolehubah bit ditentukan oleh nilai 5 bit paling tidak bererti bagi parameter (t 1atau t 2), fungsi f() melakukan penjelmaan kuadratik berikut:

(x) = x * (2x + 1) mod 2 32.

Pada akhir setiap pusingan, subblok dialihkan.

Kelebihan algoritma:

· Struktur mudah algoritma menjadikannya lebih mudah untuk dianalisis.

· Algoritma finalis AES terpantas pada platform 32-bit.

· Penyulitan dan penyahsulitan dalam algoritma RC6 adalah hampir sama. Kelemahan algoritma:

· Kelajuan penyulitan dalam perisian sangat bergantung pada sama ada platform menyokong pendaraban 32-bit dan putaran-bit pembolehubah.

· RC6 sukar dilaksanakan dalam perkakasan dan dalam keadaan sumber yang terhad.

· Agak sukar untuk melindungi daripada serangan dari segi masa pelaksanaan dan penggunaan kuasa.

· Tidak menyokong sepenuhnya pengembangan kunci secara on-the-fly.

· Keselarian pengiraan apabila menyulitkan dengan algoritma RC6 boleh dilaksanakan dengan pengehadan.

1.2.3Algoritma GOST 28147-89

GOST 28147-89 ialah piawaian penyulitan simetri Soviet dan Rusia yang diperkenalkan pada tahun 1990, juga piawaian CIS. Nama penuh - “GOST 28147-89 Sistem pemprosesan maklumat. Perlindungan kriptografi. Algoritma penukaran kriptografi."

nasi. 4. Algoritma penyulitan GOST 28147-89

Algoritma sifir blok. Apabila menggunakan kaedah penyulitan gamma, ia boleh melaksanakan fungsi algoritma sifir strim. GOST 28147-89 ialah sifir blok dengan kunci 256-bit dan 32 kitaran penukaran, beroperasi pada blok 64-bit. Asas algoritma sifir ialah rangkaian Feistel. Terdapat empat mod pengendalian mengikut GOST 28147-89: penggantian mudah, permainan, permainan dengan maklum balas, dan mod penjanaan sisipan simulasi.

Kelebihan algoritma: kesia-siaan serangan daya, kecekapan pelaksanaan dan, oleh itu, prestasi tinggi pada komputer moden, kehadiran perlindungan terhadap pengenaan data palsu (penjanaan sisipan tiruan) dan kitaran penyulitan yang sama dalam semua empat algoritma GOST, kunci yang lebih besar berbanding dengan algoritma DESX.

Kelemahan algoritma: Masalah utama GOST berkaitan dengan ketidaklengkapan standard dari segi penjanaan kunci dan jadual penggantian. Adalah dipercayai bahawa GOST mempunyai kunci "lemah" dan jadual penggantian, tetapi piawaian tidak menerangkan kriteria untuk memilih dan menghapuskan yang "lemah". Juga, piawaian tidak menyatakan algoritma untuk menjana jadual penggantian (kotak-S). Di satu pihak, ini mungkin maklumat rahsia tambahan (sebagai tambahan kepada kunci), dan sebaliknya, ia menimbulkan beberapa masalah: adalah mustahil untuk menentukan kekuatan kriptografi algoritma tanpa mengetahui jadual penggantian terlebih dahulu. ; pelaksanaan algoritma daripada pengeluar yang berbeza mungkin menggunakan jadual gantian yang berbeza dan mungkin tidak serasi antara satu sama lain; kemungkinan peruntukan sengaja jadual penggantian yang lemah oleh pihak berkuasa pelesenan Persekutuan Rusia.

1.2.4Kelebihan IDEA berbanding analog

Dalam pelaksanaan perisian pada Intel486SX berbanding DES IDEA adalah dua kali lebih pantas, iaitu peningkatan ketara dalam kelajuan, panjang kunci IDEA ialah 128 bit, berbanding 56 bit DES, yang merupakan peningkatan yang baik terhadap kekerasan. Kebarangkalian menggunakan kekunci lemah adalah sangat kecil dan ialah 1/264. IDEA lebih pantas daripada algoritma GOST 28147-89 (dalam pelaksanaan perisian pada Intel486SX ). Menggunakan IDEA dalam mod penyulitan selari pada pemproses Pentium III dan Pentium MMX membolehkan anda mencapai kelajuan tinggi. Berbanding dengan finalis AES, IDEA 4 hala hanya lebih perlahan sedikit daripada RC6 dan Rijndael pada Pentium II , tetapi lebih pantas daripada Twofish dan MARS . Pada Pentium III IDEA 4 hala adalah lebih pantas daripada RC6 dan Rijndael . Kelebihan lain ialah ia dikaji dengan baik dan tahan terhadap alat kriptanalisis yang terkenal.

1.3Mod Rantaian Blok Cipher - rantaian blok menggunakan teks sifir

Dalam mod penyulitan CBC, semua blok mesej "digabungkan" menggunakan teks sifir.

Dalam algoritma penyulitan, input fungsi setiap kali menerima hasil penjumlahan modulo 2 bagi data terbuka bagi blok mesej seterusnya dan fungsi output untuk blok sebelumnya. Oleh kerana data output fungsi untuk blok seterusnya pergi terus ke output algoritma CBC, iaitu, ia adalah teks sifir blok ini dan pada masa yang sama pergi ke input fungsi yang sama untuk menyulitkan blok berikutnya, mereka mengatakan bahawa blok dirantai menggunakan teks sifir. Blok pertama data terbuka disimpulkan dengan apa yang dipanggil. vektor permulaan.

Vektor permulaan ini diketahui oleh kedua-dua pengirim dan penerima pada awal sesi komunikasi (oleh itu, ia selalunya dipanggil mesej penyegerakan). Penyahsulitan berlaku, sewajarnya, dalam susunan terbalik - pertama, fungsi digunakan pada teks sifir, dan kemudian dijumlahkan dengan blok teks sifir sebelumnya untuk mendapatkan blok teks biasa seterusnya pada output algoritma. Blok pertama teks biasa, sekali lagi, dibina semula menggunakan vektor permulaan.

Oleh itu, untuk semua i = 1...n, blok sifirteks C(i) ditakrifkan seperti berikut:

C(i) = IDEA(M(i) xor C(i-1)),

Penyahsulitan dilakukan seperti berikut:

M(i) = C(i-1) xatau IDEA-1(C(i)),

Bongkah M(i) ialah fungsi C(i-1) dan C(i) sahaja. Oleh itu, ralat penghantaran akan mengakibatkan kehilangan hanya dua blok teks sumber.

1.4Perbandingan analog mod penyulitan CBC

Apabila menggunakan sifir blok, skema penyulitan yang berbeza digunakan, yang dikenali sebagai mod pengendalian penyulitan untuk sifir blok. Adalah jelas bahawa penggunaan satu atau satu lagi mod penyulitan tidak seharusnya menjejaskan kecekapan dan, terutamanya, kekuatan kriptografi sifir blok. Mod penyulitan membolehkan anda melaksanakan fungsi tambahan yang tiada dalam reka bentuk sifir blok asal.

1.4.1 Buku Kod Elektronik - Buku kod elektronik

Mod ini adalah analog elektronik mod yang digunakan oleh ejen untuk menghantar mesej yang disulitkan kembali pada awal abad ke-20. Ejen menerima buku nota, setiap halamannya mengandungi urutan unik - kod yang dengannya mesej itu disulitkan. Selepas digunakan, halaman sedemikian telah dikoyakkan daripada buku nota dan dimusnahkan. Jika perlu, mesej itu telah ditambah supaya tiada kod yang tidak digunakan kekal pada halaman yang koyak. Pihak yang menerima mempunyai salinan pad nota, oleh itu, dengan syarat halaman tersebut digunakan secara serentak, mod penyulitan ini menyediakan kedua-dua penyulitan dan penyahsulitan mesej. Dalam ECB, penggunaan satu halaman buku kod semasa penyulitan sepadan dengan aplikasi transformasi kepada data input oleh fungsi CIPH k , dan apabila dinyahsulit - CIPH -1k . Untuk menyegerakkan, sudah cukup untuk kedua-dua pihak bersetuju dengan nilai kunci rahsia K.

Seperti yang dapat dilihat daripada rajah, keseluruhan algoritma ECB terdiri daripada menggunakan fungsi secara langsung pada kedua-dua mesej dan teks sifir untuk penyulitan dan penyahsulitan, yang juga boleh dinyatakan dalam bentuk persamaan: Penyulitan ECB:

DENGAN j = CIPH K (H j ) ,

Penyahsulitan ECB:

P j = CIPH K (C j ),

Oleh itu, penyulitan berlaku dalam blok yang sepadan dengan saiz data input/output untuk fungsi dan. Blok disulitkan secara berasingan dan bebas antara satu sama lain, yang membolehkan ini dilakukan secara selari. Kelebihan mod ECB ini dan kesederhanaannya disembunyikan oleh dua kelemahan yang ketara. Yang pertama ialah panjang mesej mestilah gandaan panjang blok data input sifir blok, iaitu, keseluruhan mesej boleh sama ada dibahagikan kepada nombor integer blok tersebut, atau entah bagaimana perlu menambah blok terakhir dengan data yang tidak membawa maklumat. Kelemahan kedua adalah lebih ketara.

Memandangkan semasa penyulitan blok teks sifir seterusnya ditentukan sepenuhnya hanya oleh blok teks biasa yang sepadan dan nilai kunci rahsia K, blok teks biasa yang serupa akan ditukar dalam mod ini kepada blok teks sifir yang sama. Dan ini kadang-kadang tidak diingini, kerana ia boleh memberikan kunci untuk menganalisis kandungan mesej. Sebagai contoh, jika data pada cakera keras disulitkan, maka ruang kosong akan diisi dengan bait yang sama yang ditinggalkan di sana daripada memformat cakera. Ini bermakna bahawa dari teks sifir adalah mungkin untuk meneka saiz maklumat berguna pada cakera. Dalam kes sedemikian, anda perlu menggunakan mod penyulitan lain.

1.4.2 Suapan Sifir Balik - pemuatan terbalik bagi teks sifir

Cipher Feed Back Mod maklum balas Ciphertext ialah salah satu daripada skim penyulitan simetri di mana blok teks yang disulitkan ialah penambahan sedikit demi sedikit bagi blok plaintext dengan hasil penyulitan daripada penyulitan blok sebelumnya. Ia mempunyai pengubahsuaian yang membolehkan anda menyulitkan data yang saiznya kurang daripada saiz blok sifir, yang memungkinkan untuk menyulitkan aliran data tanpa menunggu bilangan bit yang diperlukan untuk tiba pada input.

Dalam mod ini, saiz blok mungkin berbeza daripada 64. Fail sumber M dibaca dalam blok t-bit berturut-turut (t<= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

Daftar anjakan bit (blok input) mula-mula mengandungi vektor pemulaan yang dibenarkan betul IV. Untuk setiap sesi penyulitan, vektor permulaan baharu digunakan.

Untuk semua i = 1...n, blok sifirteks C(i) ditakrifkan seperti berikut:

(i) = M(i) xor P(i-1),

di mana P(i-1) ialah bit t paling ketara bagi operasi IDEA(C(i-1)), dan C(0) = IV.

Daftar anjakan dikemas kini dengan mengeluarkan t bit tertingginya dan menambah C(i) ke kanan.

Memulihkan data yang disulitkan juga mudah: P(i-1) dan C(i) dikira dengan cara yang sama dan M(i) = C(i) xor P(i-1).

1.4.3 Output Feed Back - pemuatan terbalik data output

Mod OFB, seperti CFB, adalah berasaskan benang, iaitu, fungsi dipanggil dalam algoritma sebelum menjumlahkan dengan sebahagian teks biasa. Tetapi kali ini input bukanlah teks sifir daripada lelaran sebelumnya, tetapi hanya data outputnya. Iaitu, fungsi gelung.

Oleh itu, dalam algoritma OFB, adalah perlu untuk mengelakkan bukan sahaja pengulangan vektor permulaan, tetapi juga bahawa mana-mana blok ke-j data input fungsi untuk satu mesej tidak digunakan sebagai vektor permulaan untuk mesej lain. Di bawah ialah persamaan untuk penyulitan OFB: Penyulitan OFB:

saya 1= IV

saya j =O j-1 , j = 1.2, … n

O j = CIPH K (Saya j ), j = 1,2, … n

C j = P j + O j , j = 1.2, … n-1 n = P n +MSB t (O n )

Penyahsulitan OFB:

saya 1= IV j =O j -1, j = 2, … n j = CIPH K (Saya j ), j = 1,2, … n j = C j + O j , j = 1.2, … n-1 n = C n +MSB t (O n ) ,

di mana "+" ialah operasi xor.

Masalah pelengkapan mesej untuk OFB diselesaikan dengan mudah: untuk blok mesej yang terakhir, mungkin tidak lengkap, sama banyak bit data output fungsi digunakan kerana terdapat bit dalam blok ini. Oleh itu, dalam mod ini, tidak seperti yang sebelumnya, panjang mesej kekal tidak berubah semasa proses penyulitan dan, yang paling penting, semasa penghantaran.

1.4.4 Pembilang - penyulitan dengan pembilang

Dalam mod penyulitan strim dengan pembilang, pada setiap lelaran algoritma penyulitan, nilai rawak tertentu T dibekalkan kepada input fungsi. Data input ini mestilah berbeza untuk semua lelaran algoritma di mana sifir blok menggunakan kunci penyulitan yang sama , jadi penjana nilai sedemikian kadang-kadang dipanggil pembilang ( yang menyediakan cara paling mudah untuk menjana nilai T yang unik).

Sebenarnya, keperluan keunikan data input fungsi pada nilai K tertentu akan dipenuhi dalam kes menggunakan PRC (penjana kod pseudorandom), tetapi kemudiannya vektor permulaan awal untuk PRC diperlukan pada bahagian tersebut. daripada pengirim dan penerima mesej.

Oleh itu, teks sifir dalam algoritma mod CTR diperoleh dengan menjumlahkan modulo 2 blok plaintext seterusnya dengan data output fungsi. Nilai Tj seterusnya bagi pembilang blok mesej dibekalkan kepada input fungsi. Penyahsulitan juga berlaku dengan menjumlahkan modulo 2 blok sifir teks seterusnya dan hasil penjelmaan oleh fungsi nilai seterusnya pembilang Tj. Kedua-dua operasi penyulitan dan penyahsulitan dalam mod CTR boleh dilakukan secara selari dan bebas untuk semua blok. Selain itu, mod ini juga tidak mempunyai masalah blok terakhir. penyulitan CTR:

penyahsulitan:

Mod CTR mempunyai semua kelebihan mod ECB (pelaksanaan selari, kesederhanaan dan keupayaan untuk terus menyulitkan sebarang blok mesej secara berasingan dan bebas daripada blok lain). Tetapi sebagai tambahan, mod CTR membetulkan semua kekurangan penyulitan dalam mod buku kod elektronik: blok teks biasa yang sama tidak lagi akan ditukar menjadi blok teks sifir yang sama; Tidak perlu melapik blok siferteks terakhir. Di samping itu, dalam mod ini (seperti dalam mana-mana mod aliran) hanya fungsi penyulitan digunakan, dan untuk beberapa sifir blok (contohnya, untuk AES - piawaian sifir blok Amerika yang baharu), ini memberikan beberapa keuntungan prestasi. Inilah sebabnya mengapa mod ini selalunya paling berkesan.

1.4.5 Kelebihan Rantaian Blok Cipher berbanding analog

Jadi, kita boleh membuat kesimpulan bahawa mod penyulitan simetri CBC mempunyai kelebihan yang jelas antara yang dipertimbangkan di atas, iaitu: dalam mod penyahsulitan, apabila keseluruhan teks sifir telah diterima, fungsi boleh dilaksanakan secara selari dan bebas untuk semua blok mesej. Ini memberikan keuntungan masa yang ketara.

Dalam mod ini, ia patut memberi tumpuan kepada satu lagi butiran. Hakikatnya ialah blok terakhir teks sifir, yang diperoleh pada output algoritma mod CBC, bergantung pada kedua-dua kunci sifir blok dan vektor permulaan, dan (lebih penting lagi dalam kes ini) pada semua bit teks biasa bagi mesej itu. Ini bermakna bahawa blok terakhir teks sifir ini boleh digunakan sebagai sejenis pengecam mesej. Pengecam sedemikian tidak memberi pemerhati luar apa-apa maklumat tentang kandungan keseluruhan mesej secara keseluruhan, dan pada masa yang sama, hampir dengan jelas mengenal pastinya (mesej). Selain itu, adalah sama sukar untuk memalsukan pengecam ini tanpa mengetahui kunci penyulitan K seperti juga untuk meneka kunci itu sendiri dengan betul.

2. BAHAGIAN REKA BENTUK

1 Pemodelan berfungsi

Berdasarkan keperluan untuk perisian, fungsi berikut ditakrifkan:

· Pendaftaran pengguna dengan medan:

o log masuk,

o kata laluan,

o NAMA PENUH,

o Tarikh lahir,

· Keizinan pengguna dengan medan:

o log masuk,

o kata laluan;

· Penyulitan teks sumber;

· Penyahsulitan teks sifir;

· Memaparkan peringkat akhir penyulitan dan penyahsulitan kepada pengguna setelah kebenaran berjaya.

2 Reka bentuk algoritma

Algoritma penyulitan IDEA umum ditunjukkan di bawah (Rajah 5).

Selepas memulakan program, pengguna mesti memasukkan pasangan: log masuk + kata laluan pada borang kebenaran, atau mengisi borang pendaftaran. Selepas memasukkan aksara pada borang, fungsi penyulitan akan mula berfungsi apabila anda mengklik pada butang "Log Masuk" atau "Pendaftaran", masing-masing.

Blok data 64-bit dibaca daripada fail dan dibahagikan kepada empat subblok 16-bit. Empat subblok ini menjadi input kepada gelung pertama algoritma. Dalam rajah subblok ini ditetapkan D 1, D 2, D 3, D 4Setiap pusingan menggunakan subkuncinya sendiri mengikut jadual subkunci (Rajah 6). Operasi yang diterangkan sebelum ini dan dibentangkan dalam rajah algoritma dilakukan pada subblok 16-bit dan subblok teks biasa.

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

Algoritma penyulitan 3DES

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

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

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

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

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

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

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

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

Untuk menyelesaikan masalah mencari kunci dengan cepat, pakar kriptografi asing yang bijak mencadangkan menggunakan dua kekunci dan menggunakan DES dua kali. Walau bagaimanapun, DES berganda terdedah kepada serangan bertemu di tengah. Untuk melakukan serangan ini, penyerang perlu mempunyai teks biasa dan teks sifir yang sepadan.

Penyerang menyulitkan teks biasa dengan semua kekunci yang mungkin, menulis keputusan ke Jadual 1. Kemudian menyahsulit teks sifir dengan semua kekunci yang mungkin dan menulis hasilnya ke Jadual 2. Penyerang kemudian mencari Jadual 1 dan 2 untuk padanan. Serangan jenis ini melibatkan kekunci penyulitan kuasa kasar pada kedua-dua bahagian teks sifir dan teks biasa dan memerlukan kira-kira empat kali lebih pengiraan daripada kuasa kasar kunci DES biasa dan memori yang agak banyak untuk menyimpan hasil perantaraan.

Walau bagaimanapun, dalam amalan serangan itu boleh dilaksanakan, menjadikan Double DES tidak boleh digunakan.

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

Algoritma penyulitan DES

Jadi apa yang hebat tentang DES? Algoritma penyulitan ini telah tertakluk kepada analisis yang meluas. DES mempunyai dua sifat sifir blok yang sangat penting - longsor dan kesempurnaan. Sudah tiba masanya untuk mengembangkan perbendaharaan kata kriptografi anda!

Di manakah DES digunakan? Ya, hampir di mana-mana, pelaksanaannya terdapat dalam kebanyakan perpustakaan perisian. Namun, siapa tahu betapa selamatnya menggunakan DES pada masa kini? Walaupun IBM mendakwa bahawa algoritma itu adalah hasil daripada kriptanalisis intensif selama 17 tahun, sesetengah orang bimbang bahawa NSA telah memasukkan celah ke dalam algoritma yang membolehkan agensi menyahsulit mesej yang dipintas dengan mudah.

Jawatankuasa Perisikan Senat AS mengkaji dengan teliti isu ini dan, sudah tentu, tidak menemui apa-apa, pertuduhan terhadap NSA telah digugurkan, dan hasil kajian itu bagaimanapun diklasifikasikan. Pendek kata, khabar angin dan spekulasi telah lama bertiup di Amerika mengenai sama ada DES patut dipercayai atau tidak. Tetapi, seperti yang saya percaya, situasi di sini digambarkan oleh pepatah "Orang pintar tidak akan memberitahu, orang bodoh tidak akan faham." Akhirnya, NSA mengakui bahawa ia tidak boleh mempercayai IBM dengan misi yang begitu penting dan membuat beberapa pelarasan, seperti menentukan kotak-S.

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

Algoritma penyulitan AES

Pemenang pertandingan AES, diumumkan pada akhir 1997, algoritma Rijndael telah dibangunkan oleh dua kriptografi Belgium, Joan Daemen dan Vincent Rijmen.

Untuk memastikan kekuatan kriptografi, algoritma Rijndael termasuk pusingan berulang, setiap satunya terdiri daripada penggantian, pilih atur dan penambahan kunci. Walau bagaimanapun, tidak seperti DES, penyulitan dan penyahsulitan dalam algoritma ini adalah prosedur yang berbeza.

AES beroperasi pada blok data 128-bit dan kunci 128, 192 dan 256 bit. Dari segi konsep, ia berbeza daripada DES, kerana ia tidak berdasarkan rangkaian Feistel, tetapi merupakan rangkaian pilih ganti gantian (rangkaian SP), yang kini akan kami pertimbangkan dengan lebih terperinci.

Dalam AES, bait teks biasa tidak dibahagikan kepada dua bahagian, seperti dalam rangkaian Feistel, tetapi ditulis dalam bentuk matriks (tatasusunan dua dimensi) bait yang disusun dengan cara ini:

AES beroperasi dengan operasi berikut:
1. ExpandKey - pengiraan kekunci pusingan untuk semua pusingan.
2. SubBytes - menggantikan bit mengikut jadual gantian (S-box).
3. ShiftRows - mengalihkan baris dalam bentuk secara kitaran dengan pelbagai jumlah. 4. MixColumns - mencampurkan data dalam setiap lajur borang.
5. AddRoundKey - menambah kekunci bulat pada borang.

Hari ini, AES ialah piawaian rasmi kerajaan AS untuk penyulitan simetri dan digunakan secara meluas. Malah, ini adalah salah satu sifir asing yang paling universal pada masa ini. Bagi keselamatan AES, ia, seperti kebanyakan sifir, mempunyai beberapa kelemahan, dan cryptanalysts terus mencarinya. Walau bagaimanapun, walaupun ini, AES adalah yang paling hidup daripada semua makhluk hidup.

Algoritma penyulitan IDEA

IDEA (International Data Encryption Algorithm) ialah algoritma penyulitan simetri blok yang dicadangkan untuk menggantikan piawaian DES. Versi awal algoritma IDEA muncul pada tahun 1990. Algoritma ini dipatenkan di Amerika Syarikat dan kebanyakan negara Eropah. Ascom Tech memiliki paten, tetapi algoritma boleh digunakan secara percuma untuk tujuan bukan komersial.

Saiz blok dalam sifir ini ialah 64 bit, panjang kunci ialah 128. Perlu dikatakan dengan segera bahawa algoritma IDEA adalah yang paling muda daripada yang disenaraikan dan matematiknya sangat kompleks. Sesaat kamus kriptografi.

Dalam IDEA, sifat ini dicapai melalui penggunaan operasi matematik bebas. Tidak seperti DES, yang operasi utamanya ialah XOR (tambahan modul 2), IDEA menyediakan:

XOR;
modulo tambahan 2¹6;
modulo pendaraban (2¹6; + 1).

Menggabungkan ketiga-tiga operasi ini menyediakan transformasi data input yang kompleks, menjadikan IDEA lebih sukar untuk dianalisis daripada DES.

Sifir IDEA menjalankan lapan pusingan, dan dalam setiap pusingan blok plaintext diubah melalui operasi matematik. Mereka yang suka "mencapai akar" boleh melihat gambar rajah satu pusingan sifir IDEA yang diberikan di bawah. Satu blok teks, 64 bit panjang, dibahagikan kepada subblok 16 bit. Setiap blok yang diterima adalah input kepada pusingan dan mengalami transformasi yang kompleks.

IDEA unik

"Saya fikir ini adalah algoritma blok terbaik dan paling mantap yang diterbitkan setakat ini," kata Bruce Schneier dari algoritma IDEA.

Malah, IDEA sangat teguh kerana banyak operasi matematiknya. Di samping itu, kelebihan algoritma ini termasuk kelajuan penyulitan tinggi - hampir dua kali lebih tinggi daripada algoritma DES (bergantung pada platform di mana penyulitan dilakukan). Walau bagaimanapun, kelajuan penyahsulitan dikurangkan disebabkan oleh operasi pengiraan yang berat, songsang modulo pendaraban (216 + 1).

Sudah tentu, pakar kriptografi yang bijak cuba melakukan semua jenis serangan terhadap sifir kompleks ini. Kejayaan dicapai oleh Paul Hawker, yang melaksanakan serangan itu, dengan mengandaikan bahawa cryptanalyst tidak mempunyai akses terus ke kunci yang dikehendaki (contohnya, kunci itu dibenamkan dalam beberapa jenis penyulitan perkakasan atau kad pintar), tetapi boleh menukar pelbagai serpihan kunci dengan cara tertentu.

Algoritma IDEA tidak menjadi standard penyulitan antarabangsa, seperti yang dikehendaki oleh pengarangnya. Walau bagaimanapun, ia boleh dianggap sebagai salah satu algoritma penyulitan yang paling biasa di dunia. IDEA digunakan dalam pelbagai aplikasi, termasuk protokol keselamatan data PGP yang terkenal dan digunakan secara meluas.

IKAN BRUCE SCHNEIER

Bruce Schneier ialah seorang tokoh terkemuka dalam kriptografi hari ini. Dia telah mengembara separuh dunia memberikan kuliah dan seminar, dan buku-bukunya sangat disyorkan kepada mereka yang ingin mengetahui kriptografi. Dan sudah tentu, orang terkenal seperti itu tidak mahu dikenali sebagai tukang kasut tanpa but - dia sendiri adalah sebahagian daripada kumpulan pemaju crypto.

Kami akan melihat secara ringkas beberapa ciptaannya yang paling terkenal - algoritma penyulitan Blowfish, Twofish dan Threefish.

Algoritma penyulitan blowfish

Blowfish dilahirkan dahulu. Seperti yang dikatakan oleh Schneier sendiri, algoritma ini direka untuk pelaksanaan pada mikropemproses besar. Oleh itu, ia padat (hanya 5 KB memori) dan ringkas (menggunakan operasi matematik mudah - penambahan, XOR dan pensampelan daripada jadual). Algoritma ini juga membolehkan anda menyesuaikan panjang kunci (sehingga 448 bit).

Pada pemproses 32-bit, Blowfish melakukan penyulitan jauh lebih pantas daripada DES, tetapi pada papan pintar, kerana kesederhanaannya, ia tidak begitu terpakai. Blowfish adalah berdasarkan rangkaian Feistel 16 pusingan, yang sepatutnya anda fahami dengan baik.

Algoritma ini dilaksanakan dalam beberapa produk perisian (FolderBolt, Nautilus, PGPfone), tetapi kini ia kehilangan kaitannya.

Algoritma penyulitan twofish

Selepas ikan pertama, dua lagi muncul - algoritma Twofish baharu telah dibangunkan oleh Schneier dan syarikat untuk menyertai pertandingan AES. Hasil kerja Schneier berjaya mencapai lima finalis teratas, tetapi tidak menjadi pemenang, walaupun ia mempunyai semua kelebihan yang mungkin untuk ini. ini:

Sifir blok simetri 128-bit;
panjang kunci: 128, 192 dan 256 bit;
perisian cekap (terutama pada pemproses 32-bit) dan pelaksanaan perkakasan;
fleksibiliti (keupayaan untuk menggunakan kunci yang lebih panjang, kebolehgunaan untuk penyulitan strim, fungsi cincang, dan sebagainya); Kesederhanaan algoritma menjadikannya mudah untuk dianalisis.

Walau bagaimanapun, berbanding Rijndael, yang mengambil alih kekaki AES, Twofish lebih sukar untuk dianalisis dan mempunyai kelajuan penyulitan yang lebih perlahan. Algoritma ini dibangunkan berdasarkan Blowfish dengan beberapa penambahan dan juga merupakan rangkaian Feistel.

Pada pertandingan itu, sifir telah tertakluk kepada pelbagai jenis kriptanalisis. Berbanding dengan finalis lain pertandingan AES, dia ternyata paling gigih. Walau bagaimanapun, struktur luar biasa dan kerumitan relatifnya telah menimbulkan beberapa keraguan tentang kualiti kekuatan ini. Pada masa ini, Twofish digunakan lebih kurang kerap berbanding pendahulunya.

Algoritma penyulitan Threefish

"Untuk kali ketiga lelaki tua itu melemparkan jala ke laut..." dan sepuluh tahun kemudian sifir Threefish dicipta. Kali ini, Schneier memutuskan untuk mengatasi AES dan mengambil kira segala kekurangan pengalaman terdahulu. Kriptografi tidak mengambil rangkaian Feistel sebagai asas, tetapi melaksanakan sifir berdasarkan rangkaian tukar ganti-permutasi (rangkaian SP), seperti dalam AES. Rangkaian sedemikian adalah berdasarkan gabungan operasi OR eksklusif, penambahan dan anjakan kitaran. Dalam bentuk ringkas semuanya kelihatan seperti ini:

Disebabkan oleh operasi mudah, Threefish jauh lebih pantas daripada AES. Di samping itu, menurut penulis, algoritma mempunyai tahap keselamatan yang lebih tinggi daripada AES. Terdapat serangan ke atas 25 daripada 72 pusingan Threefish, manakala untuk AES terdapat serangan ke atas 6 daripada 10. Jadi Bruce Schneier mencapai kemenangannya, walaupun lewat.

Sifir berfungsi sebagai asas untuk penciptaan fungsi cincang Skein, yang mengambil bahagian dalam pertandingan untuk kedudukan SHA-3. Threefish sendiri digunakan secara meluas dan dilaksanakan dalam perpustakaan untuk banyak bahasa pengaturcaraan.

KESIMPULAN

Sebagai kesimpulan, patut dikatakan bahawa semua kriptografi Barat, sudah tentu, hebat, mereka telah membangunkan troli dan troli kecil pelbagai algoritma penyulitan. Ada yang lebih tahan lama, ada yang lebih cepat. Tetapi buat masa ini semua orang akan membandingkannya dengan DES dan AES kerana ia adalah klasik.

Dalam artikel seterusnya kita akan berkenalan dengan tandatangan elektronik, cara kriptografi yang sangat keren dan penting.

Pautan:

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

  • Asas, sifir sejarah, cara sifir anjakan, penggantian, Richard Sorge, sifir Vernam dan mesin sifir berfungsi (dan dianalisis) (Adakah awak di sini)
  • . bahagian 2. Apakah itu, bagaimana pengagihan kunci dilakukan dan cara memilih kunci yang kuat
  • Apakah rangkaian Feistel, apakah sifir blok domestik yang digunakan dalam protokol moden - GOST 28147-89, "Grassnechik"
  • Sifir asing moden. Bahagian 4. Apakah itu, bagaimana ia berfungsi dan apakah perbezaan antara 3DES, AES, Blowfish, IDEA, Threefish daripada Bruce Schneider
  • Tandatangan elektronik. Jenis tandatangan elektronik, cara ia berfungsi dan cara menggunakannya
  • Kriptografi kuantum. Apakah itu, di mana ia digunakan dan bagaimana ia membantu dalam mengedarkan kunci rahsia, menjana nombor rawak dan tandatangan elektronik

Kemas kini terakhir pada 12 Julai 2016.

Versi asal algoritma IDEA muncul pada tahun 1990. Pembangun algoritma, Xuejia Lai dan James Massey dari Swiss Institute ETH Zurich, memberikannya nama PES (Proposed Encryption Standard) kerana algoritma ini dicadangkan untuk menggantikan standard DES. Perlu diingat bahawa ETH Zurich dan Profesor James Massey juga terkenal dengan algoritma yang mereka bangunkan dalam keluarga SELAMAT/SELAMAT+/SELAMAT++.

Setahun kemudian, algoritma telah diubah suai untuk meningkatkan rintangan kriptografi kepada kriptanalisis pembezaan. Versi baharu itu dipanggil IPES (Improved PES - improved PES), dan setahun kemudian algoritma itu menukar namanya kepada IDEA (International Data Encryption Algorithm - international data encryption algorithm).

Ciri dan struktur utama

Algoritma IDEA menyulitkan data dalam blok 64 bit, dan kunci penyulitan algoritma adalah bersaiz 128 bit. Blok data yang disulitkan dibahagikan kepada empat subblok 16-bit A, B, C dan D (Rajah 1), di mana lapan pusingan transformasi dilakukan:

A = A [x] Kr1 B = B + Kr2 C = C + Kr3 D = D [x] Kr4 T1 = A [+] C T2 = B [+] D T1 = T1 [x] Kr5 T2 = T1 + T2 T2 = T2 [x] Kr6 T1 = T1 + T2 A = A [+] T2 B = B [+] T1 C = C [+] T2 D = D [+] T1,

di mana Krn - subkunci n pusingan r, "+" - operasi penambahan operan 16-bit modulo 2 (kepada kuasa ke-16), [+] - operasi logik bitwise "eksklusif atau" (XOR), [x] - pendaraban 16 -bit operand modulo (2(kepada kuasa ke-16) + 1), dan nilai 2(kepada kuasa ke-16) diambil sebagai nilai subblok yang terdiri daripada sifar sahaja.

Selepas melengkapkan langkah yang diterangkan di atas, dua subblok dalam (B dan C) ditukar - dalam semua pusingan kecuali yang terakhir. Selepas lapan pusingan selesai, transformasi tambahan dilakukan (kadangkala dipanggil pusingan kesembilan algoritma):

A" = A [x] K91 B" = B + K92 C" = C + K93 D" = D [x] K94

Teks sifir adalah hasil daripada penyatuan nilai yang terhasil A", B", C" dan D".

Operasi penyahsulitan adalah serupa dengan penyulitan, dengan perbezaan bahawa semasa penyahsulitan subkunci yang diubah suai digunakan dalam urutan yang berbeza:

K"r1 = (K(10-r)1)-1 K"r2 = -K(10-r)3 K"r3 = -K(10-r)2 K"r4 = (K(10-r) 4)-1 K"r5 = K(9-r)5 K"r6 = K(9-r)6,

dengan pengecualian pusingan 1 dan 9, di mana subkunci K"r2 dan K"r3 ditukar. Di sini K"rn ialah subkunci n bagi pusingan penyahsulitan r, -x dan x-1 ialah nilai songsang x berbanding dengan operasi penambahan modulo 2 di atas (kepada kuasa ke-16) dan modulo pendaraban (2 (kepada kuasa ke-16) + 1) masing-masing, dengan 0(kepada kuasa -1) = 0.

Prosedur pengembangan kunci

Tujuan prosedur pengembangan kunci adalah untuk menjana 52 subkunci 16-bit yang digunakan dalam pusingan penyulitan dan transformasi tambahan (iaitu, sejumlah 832 bit maklumat utama). Prosedur ini sangat mudah, dan ia dilakukan seperti berikut:

  1. Kunci penyulitan 128-bit dibahagikan kepada lapan subkunci 16-bit; ia menjadi lapan subkunci pertama algoritma (K11, K12, K13, K14, K15, K16, K21, K22).
  2. Kunci penyulitan diputar ke kiri 25 bit.
  3. Hasilnya dibahagikan kepada lapan subkunci seterusnya.
  4. Kunci penyulitan secara kitaran dialihkan ke kiri sebanyak 25 bit, dan seterusnya sehingga bilangan subkunci yang diperlukan dijana.

Kekuatan kriptografi algoritma

Pada tahun berikutnya selepas kemunculan algoritma PES, pengarangnya menerbitkan karya di mana kelemahan algoritma berhubung dengan kriptanalisis pembezaan telah terbukti (lihat, sebagai contoh, artikel, "BYTE/Russia" No. 11"2004 ): untuk menentukan kunci penyulitan, cukup untuk melaksanakan 2 (kekuasaan ke-64) operasi penyulitan, manakala penghitungan menyeluruh nilai kunci 128-bit memerlukan pelaksanaan 2 (kepada kuasa ke-128).

Algoritma IDEA muncul hasil daripada pengubahsuaian yang agak kecil kepada algoritma PES (Rajah 2). Jika anda membandingkan skema algoritma IDEA dan PES, anda boleh melihat tidak banyak perbezaan:

  • operasi pendaraban subblok B dengan subkunci kedua pusingan digantikan dengan operasi tambah,
  • operasi penambahan subblok D dengan subkunci keempat pusingan digantikan dengan operasi pendaraban,
  • Cara lain ialah mengalihkan subblok pada penghujung pusingan.

Sebagai salah seorang pakar kriptografi yang paling terkenal di dunia, Bruce Schneier, menyatakan dalam bukunya Applied Cryptography, "...adalah menakjubkan bagaimana perubahan kecil itu boleh membuat perbezaan yang begitu besar." Algoritma IDEA hampir kebal terhadap kriptanalisis pembezaan, dan dalam buku yang sama (diterbitkan pada tahun 1996), Bruce Schneier berkata mengenainya: "Saya fikir ia adalah algoritma blok terbaik dan paling boleh dipercayai yang diterbitkan setakat ini."

Walau bagaimanapun, pada tahun 1996 yang sama, penganalisis kriptografi terkenal Paul Kocher mencipta serangan yang agak sukar untuk dilaksanakan yang membolehkan, melalui pengukuran ketepatan tinggi berulang masa pelaksanaan, untuk menyulitkan 2 (ke kuasa ke-20) teks biasa yang dipilih secara rawak pada kekunci yang berkaitan dengan hubungan tertentu dengan kunci yang dikehendaki, dan analisis seterusnya keputusan untuk mengira kunci penyulitan yang diperlukan. Serangan ini (seperti serangan lain ke atas kunci terpaut) menganggap bahawa cryptanalyst tidak mempunyai akses terus ke kunci yang dikehendaki (contohnya, kunci dibenamkan dalam beberapa jenis penyulitan perkakasan atau kad pintar), tetapi boleh menukar pelbagai serpihan kunci dengan cara tertentu.

Dan sebelum ini, pada tahun 1993, beberapa pakar kriptologi dari Belgium menemui beberapa kelas kekunci lemah dalam algoritma IDEA (jumlah 2 (kepada kuasa ke-23) + 2 (kepada kuasa ke-35) + 2 (kepada kuasa ke-51) kekunci darjah yang berbeza kelemahan), sebahagian daripadanya, sebagai contoh, boleh dikira dengan serangan cryptanalytic dengan plaintext terpilih. Walau bagaimanapun, pengarang serangan ini sendiri mencadangkan "penawar" - kunci lemah dihapuskan dengan menggunakan operasi XOR pada pemalar heksadesimal khas 0DAE pada setiap subkunci sebelum menggunakannya.

Oleh itu, walaupun terdapat kekurangan yang ditemui, algoritma IDEA dianggap sebagai algoritma dengan kekuatan kriptografi yang tinggi. Kelebihan algoritma ini yang tidak dapat dinafikan ialah kelajuan penyulitannya yang tinggi, tidak kurang daripada dua kali ganda daripada algoritma DES (bergantung pada platform di mana penyulitan dilakukan). Dan keupayaan untuk melakukan operasi pengembangan utama dengan cepat (iaitu, selari dengan pelaksanaan pusingan penyulitan) sangat dialu-alukan dalam algoritma penyulitan yang lebih moden. Walau bagaimanapun, patut dikatakan bahawa kelajuan penyahsulitan agak berkurangan kerana kehadiran operasi intensif sumber untuk mengira modulo timbal balik darab (2 (kepada kuasa ke-16) + 1).

***

Algoritma IDEA tidak menjadi standard penyulitan antarabangsa, seperti yang dikehendaki oleh pengarangnya. Walau bagaimanapun, ia boleh dianggap sebagai salah satu algoritma penyulitan yang paling biasa di dunia. IDEA masih digunakan hari ini dalam banyak aplikasi yang berbeza, termasuk program perlindungan data PGP yang diketahui dan digunakan secara meluas.

algoritma simetri penyulitan yang dibangunkan oleh Xuejia Lai dan James Massey dari Institut Teknologi Persekutuan Switzerland. Versi asal diterbitkan pada tahun 1990. Versi algoritma yang disemak, dipertingkatkan dengan perlindungan terhadap serangan kriptografi berbeza, telah diperkenalkan pada tahun 1991 dan diterangkan secara terperinci pada tahun 1992.

IDEA ialah salah satu daripada beberapa algoritma kriptografi simetri yang pada asalnya bertujuan untuk menggantikan DES.

Prinsip reka bentuk

IDEA ialah algoritma blok yang menggunakan 128-bit kunci penyulitan data dalam blok 64 bit.

Matlamat membangunkan IDEA adalah untuk mencipta algoritma kriptografi yang agak kuat dengan pelaksanaan yang agak mudah.

Kekuatan kriptografi

Ciri-ciri IDEA berikut mencirikan kekuatan kriptografinya:

  1. Panjang blok: Panjang blok mestilah mencukupi untuk menyembunyikan semua ciri statistik mesej asal. Sebaliknya, kerumitan melaksanakan fungsi kriptografi meningkat secara eksponen dengan saiz blok. Menggunakan saiz blok 64 bit pada tahun 90-an bermakna banyak kuasa. Selain itu, penggunaan mod penyulitan CBC menunjukkan pengukuhan lagi aspek algoritma ini.
  2. Panjang kunci: Panjang kunci mestilah cukup panjang untuk mengelakkan kunci daripada dipaksa secara kasar. Dengan panjang kunci 128 bit, IDEA dianggap agak selamat.
  3. Kekeliruan: Teks sifir mesti bergantung pada kunci dengan cara yang kompleks dan berbelit-belit.
  4. Penyebaran: Setiap bit teks biasa mesti mempengaruhi setiap bit teks sifir. Menyebarkan satu bit plaintext pada banyak bit yang disulitkan menyembunyikan struktur statistik plaintext. Menentukan bagaimana ciri statistik teks sifir bergantung pada ciri statistik plaintext mestilah sukar. IDEA dari sudut ini sangat algoritma yang cekap.

Dalam IDEA, dua mata terakhir dicapai menggunakan tiga operasi. Ini membezakannya daripada DES, di mana segala-galanya dibina di sekitar penggunaan operasi XOR dan kotak-S tak linear kecil.

Setiap operasi dilakukan pada dua input 16-bit dan menghasilkan satu output 16-bit. Operasi ini ialah:

Ketiga-tiga operasi ini tidak serasi dalam erti kata:

Menggunakan gabungan ketiga-tiga operasi ini menyediakan transformasi input yang kompleks, menjadikan analisis kriptografi lebih sukar berbanding dengan algoritma seperti DES, yang hanya berdasarkan fungsi XOR.

Penyulitan

Mari lihat skema penyulitan IDEA umum. Seperti mana-mana algoritma penyulitan, terdapat dua input: blok plaintext dan kunci. Dalam kes ini, blok yang tidak disulitkan adalah 64 bit panjang, kuncinya adalah 128 bit panjang.

Terdiri daripada lapan pusingan diikuti dengan transformasi terakhir. Algoritma membahagikan blok kepada empat subblok 16-bit. Setiap pusingan mengambil empat subblok 16-bit sebagai input dan menghasilkan empat subblok keluaran 16-bit. Transformasi terakhir juga mengambil empat subblok 16-bit sebagai input dan menghasilkan empat subblok 16-bit. Setiap pusingan menggunakan enam kekunci 16-bit, transformasi terakhir menggunakan empat subkunci, i.e. Secara keseluruhan, algoritma menggunakan 52 subkunci.


nasi. 3.1.
Urutan penjelmaan satu pusingan

Mari kita pertimbangkan urutan transformasi pusingan berasingan.

Salah satu elemen utama algoritma yang menyediakan penyebaran ialah struktur yang dipanggil MA (pendaraban/penambahan):


nasi. 3.2.

Input kepada struktur ini ialah dua nilai 16-bit dan dua subkunci 16-bit, dan output ialah dua nilai 16-bit. Ujian komputer yang menyeluruh menunjukkan bahawa setiap bit output struktur ini bergantung pada setiap bit input blok plaintext dan setiap bit subkuncinya. Struktur ini diulang lapan kali dalam algoritma, memberikan penyebaran yang sangat cekap.

Pusingan bermula dengan transformasi yang menggabungkan empat subblok input dengan empat subblok menggunakan operasi tambah dan darab. Empat blok keluaran transformasi ini digabungkan menggunakan operasi XOR untuk membentuk dua blok 16-bit, yang merupakan input struktur MA. Di samping itu, struktur MA mempunyai dua lagi penyambung pada input dan mencipta dua output 16-bit.


nasi. 3.3.

Akhir sekali, empat subblok keluaran transformasi pertama digabungkan dengan dua subblok keluaran struktur MA menggunakan XOR untuk mencipta empat subblok keluaran bagi lelaran yang diberikan. Ambil perhatian bahawa dua output yang sebahagiannya dicipta oleh input kedua dan ketiga (X 2 dan X 3 ) ditukar untuk mencipta output kedua dan ketiga (W 12 dan W 13 ). Ini meningkatkan sedikit shuffling dan menjadikan algoritma lebih tahan terhadap kriptanalisis pembezaan.

Pertimbangkan pusingan kesembilan algoritma, yang ditetapkan sebagai transformasi terakhir. Ini adalah struktur yang sama seperti yang diterangkan di atas. Satu-satunya perbezaan ialah input kedua dan ketiga ditukar. Ini dilakukan untuk memastikan penyahsulitan mempunyai struktur yang sama seperti penyulitan. Ambil perhatian bahawa peringkat kesembilan hanya memerlukan empat input