Symmetric cryptosystems. IDEA algorithm. Algoritmo ng pag-encrypt ng blowfish. Samakatuwid, sa OFB algorithm kinakailangan upang maiwasan hindi lamang ang pag-uulit ng mga inisyal na vectors, kundi pati na rin ang katotohanan na ang anumang j-th block ng input data ng function para sa isang mensahe ay hindi ginagamit.

Ang orihinal na bersyon ng IDEA algorithm ay lumabas noong 1990. Ang mga nag-develop ng algorithm, sina Xuejia Lai at James Massey mula sa Swiss Institute ETH Zurich, ay nagbigay dito ng pangalang PES (Proposed Encryption Standard) dahil iminungkahi ng algorithm na ito na palitan ang DES standard. Kapansin-pansin na kilala rin sina ETH Zurich at Professor James Massey sa mga algorithm na kanilang binuo sa mga pamilyang SAFER/SAFER+/SAFER++.

Pagkalipas ng isang taon, binago ang algorithm upang mapahusay ang paglaban ng cryptographic sa differential cryptanalysis. Bagong bersyon nakatanggap ng pangalang IPES (Pinahusay na PES - pinahusay na PES), at pagkaraan ng isang taon binago ng algorithm ang pangalan nito sa IDEA (International Data Encryption Algorithm - internasyonal na algorithm pag-encrypt ng data).

Pangunahing katangian at istraktura

Ang IDEA algorithm ay nag-encrypt ng data sa mga bloke ng 64 bits, at ang encryption key ng algorithm ay 128 bits ang laki. Ang bloke ng naka-encrypt na data ay nahahati sa apat na 16-bit na subblock na A, B, C at D (Larawan 1), kung saan ginaganap ang walong pag-ikot ng mga pagbabago:

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,

kung saan ang Krn ay subkey n ng round r, ang "+" ay ang operasyon ng pagdaragdag ng 16-bit operand modulo 2 (sa ika-16 na kapangyarihan), [+] ay bitwise lohikal na operasyon"eksklusibo o" (XOR), [x] - multiplikasyon ng 16-bit operand modulo (2 (hanggang sa ika-16 na kapangyarihan) + 1), at ang halaga ng isang subblock na binubuo lamang ng mga zero ay kinuha bilang halaga 2 (sa ika-16 na kapangyarihan) ika-degree).

Pagkatapos makumpleto ang mga hakbang na inilarawan sa itaas, ang dalawang panloob na subblock (B at C) ay ipinagpapalit - sa lahat ng round maliban sa huli. Pagkatapos makumpleto ang walong round, ang mga karagdagang pagbabago ay isinasagawa (minsan ay tinatawag na ikasiyam na round ng algorithm):

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

Ang ciphertext ay ang resulta ng pagsasama-sama ng mga nagresultang halaga A", B", C" at D".

Ang operasyon ng pag-decryption ay katulad ng pag-encrypt, na may pagkakaiba na sa panahon ng pag-decryption, ang mga binagong subkey ay ginagamit sa ibang pagkakasunud-sunod:

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,

maliban sa round 1 at 9, kung saan ang mga subkey na K"r2 at K"r3 ay pinagpalit.

Narito ang K"rn ay ang n subkey ng decryption round r, -x at x-1 ay ang mga kabaligtaran na halaga ng x na nauugnay sa mga operasyon sa itaas ng karagdagan modulo 2 (sa ika-16 na kapangyarihan) at multiplication modulo (2 (sa ang ika-16 na kapangyarihan) + 1) ayon sa pagkakabanggit Sa kasong ito, 0 (sa -1st na kapangyarihan) = 0.

Pamamaraan ng pangunahing pagpapalawak Ang layunin ng pangunahing pamamaraan ng pagpapalawak ay upang makabuo ng 52 16-bit na mga subkey na ginagamit sa mga round ng pag-encrypt at mga karagdagang pagbabago (ibig sabihin, isang kabuuang 832 bits). pangunahing impormasyon Ang pamamaraang ito

  1. Ito ay medyo simple, at ito ay gumagana tulad nito:
  2. Ang 128-bit encryption key ay nahahati sa walong 16-bit na subkey; sila ang naging unang walong subkey ng algorithm (K11, K12, K13, K14, K15, K16, K21, K22).
  3. Ang encryption key ay iniikot sa kaliwang 25 bits.
  4. Ang resulta ay nahahati sa susunod na walong subkey.

Ang encryption key ay paikot na inililipat sa kaliwa ng 25 bits, at iba pa hanggang sa mabuo ang kinakailangang bilang ng mga subkey.

Lakas ng cryptographic ng algorithm

Sa susunod na taon pagkatapos ng paglitaw ng algorithm ng PES, ang mga may-akda nito ay naglathala ng isang gawain kung saan napatunayan ang kahinaan ng algorithm na may kaugnayan sa differential cryptanalysis (tingnan, halimbawa, ang artikulo, "BYTE/Russia" No. 11"2004 ): upang matukoy ang susi sa pag-encrypt, sapat na upang magsagawa ng 2 (sa ika-64 na kapangyarihan) na mga pagpapatakbo ng pag-encrypt, samantalang ang kumpletong pagbilang ng mga halaga ng isang 128-bit na key ay mangangailangan ng pagsasagawa ng 2 (sa ika-128 na kapangyarihan) na mga operasyon.

  • Ang IDEA algorithm ay lumitaw bilang isang resulta ng medyo maliit na pagbabago sa PES algorithm (Larawan 2). Kung ihahambing mo ang mga scheme ng algorithm ng IDEA at PES, hindi ka makakakita ng maraming pagkakaiba:
  • ang pagpaparami ng pagpapatakbo ng subblock B na may pangalawang subkey ng pag-ikot ay pinapalitan ng isang karagdagang operasyon,
  • ang pagdaragdag ng operasyon ng subblock D na may ikaapat na subkey ng round ay pinalitan ng pagpaparami ng operasyon,

Ang isa pang paraan ay ang paglilipat ng mga subblock sa dulo ng round.

Gayunpaman, sa parehong 1996, ang sikat na cryptanalyst na si Paul Kocher ay nag-imbento ng isang medyo mahirap na ipatupad ang pag-atake na nagpapahintulot, sa pamamagitan ng paulit-ulit na mataas na katumpakan na mga sukat ng oras ng pagpapatupad, upang i-encrypt ang 2 (sa ika-20 na kapangyarihan) na random na piniling mga plaintext sa mga key na nauugnay sa isang tiyak na kaugnayan sa nais na susi, at kasunod na pagsusuri ng mga resulta upang makalkula ang kinakailangang susi sa pag-encrypt. Ang pag-atakeng ito(tulad ng iba pang mga pag-atake sa mga naka-link na key) ay ipinapalagay na ang cryptanalyst ay walang direktang access sa hinahanap na key (halimbawa, ang key ay naka-embed sa ilang uri ng hardware encryptor o smart card), ngunit maaaring baguhin ang iba't ibang mga fragment ng key sa isang tiyak na paraan.

At mas maaga, noong 1993, natuklasan ng ilang cryptoologist mula sa Belgium ang ilang mga klase ng mahihinang key sa IDEA algorithm (kabuuang 2 (sa ika-23 na kapangyarihan) + 2 (sa ika-35 na kapangyarihan) + 2 (sa ika-51 na kapangyarihan) na mga susi ng iba't ibang antas ng kahinaan), ang ilan sa mga ito, halimbawa, ay maaaring kalkulahin sa pamamagitan ng isang cryptanalytic attack na may napiling plaintext. Gayunpaman, ang mga may-akda ng pag-atake na ito mismo ay nagmungkahi ng isang "antidote" - ang mga mahihinang susi ay tinanggal sa pamamagitan ng pagpapataw operasyon ng XOR isang espesyal na hexadecimal constant na 0DAE para sa bawat subkey bago ito gamitin.

Kaya, sa kabila ng mga natuklasang pagkukulang, ang IDEA algorithm ay itinuturing na isang algorithm na may mataas na lakas ng cryptographic. Ang hindi maikakaila na bentahe ng algorithm na ito ay mataas na bilis encryption, hindi bababa sa dalawang beses kaysa sa DES algorithm (depende sa platform kung saan ginaganap ang pag-encrypt). At ang kakayahang magsagawa ng isang pangunahing pagpapalawak na operasyon "on the fly" (ibig sabihin, kasabay ng pagpapatupad ng mga round ng pag-encrypt) ay malugod na tinatanggap at higit pa modernong mga algorithm pag-encrypt.

***

Gayunpaman, ito ay nagkakahalaga ng pagsasabi na ang bilis ng pag-decryption ay medyo nabawasan dahil sa pagkakaroon ng mga resource-intensive na operasyon para sa pagkalkula ng multiplicative reciprocals modulo (2 (sa ika-16 na kapangyarihan) + 1). Ang IDEA algorithm ay hindi internasyonal na pamantayan encryption, ayon sa nais ng mga may-akda nito. Gayunpaman, maaari itong ituring na isa sa mga pinakakaraniwang algorithm ng pag-encrypt sa mundo. Ginagamit pa rin ang IDEA sa maraming paraan iba't ibang mga aplikasyon

, kabilang ang malawak na kilala at ginagamit na PGP data protection program. Algorithm (IDEYA International Data Encryption Algorithm ) ay isang block cipher. Gumagana ito sa 64-bit na mga bloke plaintext

Ang unang bersyon ng algorithm ng IDEA ay iminungkahi noong 1990, ang mga may-akda nito ay sina H. Lei at J. Massey. Ang orihinal na algorithm ay tinawag PES(Iminungkahing Pamantayan sa Pag-encrypt). Ang isang pinahusay na bersyon ng algorithm na ito, na binuo noong 1991, ay tinawag IPES(Pinahusay na Iminungkahing Pamantayan sa Pag-encrypt). Noong 1992, binago ng IPES ang pangalan nito sa IDEA. Ang algorithm ng IDEA ay gumagamit ng mga proseso ng paghahalo at pagkakalat para sa pag-encrypt, na madaling ipatupad sa hardware at software.

    Ginagamit ng IDEA ang mga sumusunod na mathematical operations:
  • bitwise karagdagan modulo 2 (eksklusibo O operasyon); ang operasyon ay tinutukoy bilang (+);
  • pagdaragdag ng unsigned integers modulo 2 16 ; ang operasyon ay itinalaga bilang [+];
  • pagpaparami ng unsigned integers modulo (2 16 +1), na may isang bloke ng 16 na zero na itinuturing bilang 2 16 ; ang operasyon ay tinutukoy bilang (·).

Ang lahat ng mga operasyon ay isinasagawa sa 16-bit na mga subblock.

    Ang tatlong operasyong ito ay hindi magkatugma sa kahulugan na:
  • walang pares ng tatlong operasyong ito ang nakakatugon sa kaugnay na batas,
    halimbawa a[+] (b(+)c) # (a[+]b) (+)c;
  • walang pares ng tatlong operasyong ito ang nakakatugon sa distributive law,
    halimbawa a[+] (b(·)c) # (a[+]b) (·) (a[+]c) .

Ang kumbinasyon ng tatlong operasyong ito ay nagbibigay ng isang kumplikadong pagbabago ng input data, na ginagawang mas mahirap i-cryptanalyze ang IDEA kumpara sa DES, na nakabatay lamang sa operasyon ng XOR.

Ang pangkalahatang diagram ng IDEA algorithm ay ipinapakita sa Fig. 1. Ang isang 64-bit na data block ay nahahati sa apat na 16-bit na subblock. Ang apat na subblock na ito ay nagiging input sa unang loop ng algorithm. Isang kabuuang walong cycle ang ginagawa. Sa pagitan ng mga cycle, ang pangalawa at pangatlong subblock ay nagbabago ng mga lugar. Sa bawat cycle ang sumusunod na pagkakasunud-sunod ng mga operasyon ay ginaganap:

  1. (+) - pagdaragdag ng mga resulta ng hakbang 1 at 3.
  2. (+) - pagdaragdag ng mga resulta ng mga hakbang 2 at 4.
  3. (·) - pagpaparami ng resulta ng hakbang 5 at ang ikalimang subkey.
  4. [+] - pagdaragdag ng mga resulta ng hakbang 6 at 7.
  5. (·) - pagpaparami ng resulta ng hakbang 8 at ang ikaanim na subkey.
  6. [+] - pagdaragdag ng mga resulta ng mga hakbang 7 at 9.
  7. (+) - pagdaragdag ng mga resulta ng hakbang 1 at 9.
  8. (+) - pagdaragdag ng mga resulta ng hakbang 3 at 9.
  9. (+) - pagdaragdag ng mga resulta ng hakbang 2 at 10.
  10. (+) - pagdaragdag ng mga resulta ng hakbang 4 at 10.

Fig.1. IDEA algorithm diagram (encryption mode)

Ang output ng loop ay apat na subblock, na nakuha bilang mga resulta ng mga hakbang 11, 12, 13 at 14. Sa dulo ng loop, ang pangalawa at pangatlong subblock ay pinapalitan (maliban sa huling loop). Bilang resulta, nabuo ang input para sa susunod na cycle.

    Pagkatapos ng ikawalong cycle, ang pangwakas na pagbabagong-anyo ng output ay isinasagawa:
  1. (·) - pagpaparami ng subblock X 1 at ang unang subkey.
  2. [+] - pagdaragdag ng subblock X 2 at pangalawang subblock.
  3. [+] - pagdaragdag ng subblock X 3 at ikatlong subblock.
  4. (·) - pagpaparami ng subblock X 4 at ang ikaapat na subblock.

Ang resultang apat na subblock Y 1 ...Y 4 ay pinagsama sa isang ciphertext block.

Ang paggawa ng mga subkey Z 1 ...Z 6 ay medyo madali din. Gumagamit ang algorithm ng kabuuang 52 subkey (anim para sa bawat isa sa walong loop at isa pang apat upang baguhin ang output). Una, ang 128-bit key ay nahahati sa walong 16-bit na subkey. Ito ang unang walong subkey para sa algorithm (anim na subkey para sa unang cycle at ang unang dalawang subkey para sa pangalawa). Ang 128-bit key ay pagkatapos ay paikutin pakaliwa ng 25 bits at muling nahahati sa walong subkey (apat na subkey para sa ikalawang round at apat na subkey para sa ikatlo). Ang susi ay muling pinaikot pakaliwa ng 25 bits upang makagawa ng susunod na walong subkey, at iba pa, hanggang sa makumpleto ang algorithm.

Isinasagawa ang pag-decryption sa katulad na paraan, maliban na ang pagkakasunud-sunod ng paggamit ng mga subkey ay nababaligtad, at ang isang bilang ng mga subkey ng decryption ay alinman sa additive (-x) o multiplicative (1/x) na mga reciprocal ng mga encryption subkey (Talahanayan 1) .

Talahanayan 1
Ikonekta ang encryption at decryption algorithm IDEA
Ikot Encryption key I-plug in ang decryption
1 Z 1 (1) Z 2 (1) Z 3 (1) Z 4 (1) Z 5 (1) Z 6 (1) Z 1 (9)-1 -Z 2 (9) -Z 3 (9) Z 4 (9)-1 Z 5 (8) Z 6 (8)
2 Z 1 (2) Z 2 (2) Z 3 (2) Z 4 (2) Z 5 (2) Z 6 (2) Z 1 (8)-1 -Z 3 (8) -Z 2 (8) Z 4 (8)-1 Z 5 (7) Z 6 (7)
3 Z 1 (3) Z 2 (3) Z 3 (3) Z 4 (3) Z 5 (3) Z 6 (3) Z 1 (7)-1 -Z 2 (7) -Z 3 (7) Z 4 (7)-1 Z 5 (6) Z 6 (6)
4 Z 1 (4) Z 2 (4) Z 3 (4) Z 4 (4) Z 5 (4) Z 6 (4) Z 1 (6)-1 -Z 3 (6) -Z 2 (6) Z 4 (6)-1 Z 5 (5) Z 6 (5)
5 Z 1 (5) Z 2 (5) Z 3 (5) Z 4 (5) Z 5 (5) Z 6 (5) Z 1 (5)-1 -Z 2 (5) -Z 3 (5) Z 4 (5)-1 Z 5 (4) Z 6 (4)
6 Z 1 (6) Z 2 (6) Z 3 (6) Z 4 (6) Z 5 (6) Z 6 (6) Z 1 (4)-1 -Z 3 (4) -Z 2 (4) Z 4 (4)-1 Z 5 (3) Z 6 (3)
7 Z 1 (7) Z 2 (7) Z 3 (7) Z 4 (7) Z 5 (7) Z 6 (7) Z 1 (3)-1 -Z 2 (3) -Z 3 (3) Z 4 (3)-1 Z 5 (2) Z 6 (2)
8 Z 1 (8) Z 2 (8) Z 3 (8) Z 4 (8) Z 5 (8) Z 6 (8) Z 1 (2)-1 -Z 3 (2) -Z 2 (2) Z 4 (2)-1 Z 5 (1) Z 6 (1)
Ibahin ang anyo
tumatawag
labasan
Z 1 (9) Z 2 (9) Z 3 (9) Z 4 (9) Z 1 (1)-1 -Z 2 (1) -Z 3 (1) Z 4 (1)-1

Upang ipatupad ang algorithm ng IDEA, napagkasunduan na ang multiplicative reciprocal (1/x) ng 0 ay katumbas ng 0.

Ang IDEA algorithm ay may ilang mga pakinabang sa DES algorithm. Ito ay higit na ligtas kaysa sa DES algorithm dahil ang 128-bit na IDEA key ay dalawang beses ang laki ng DES key. Panloob na istraktura Ang algorithm ng IDEA ay nagbibigay ng mas mahusay na pagtutol sa cryptanalysis u. Ang mga kasalukuyang pagpapatupad ng software ay humigit-kumulang doble mas mabilis na pagpapatupad DES algorithm. Ang IDEA algorithm ay patented sa Europe at USA.

PANIMULA

Ang mga simetriko na cryptosystem (din ang simetriko na pag-encrypt, simetriko cipher) ay isang paraan ng pag-encrypt kung saan ang parehong data ay ginagamit para sa pag-encrypt at pag-decryption. cryptographic na susi. Bago ang pag-imbento ng circuit asymmetric encryption ang tanging paraan na umiral ay simetriko encryption. Ang algorithm key ay dapat na itago ng parehong partido. Ang algorithm key ay pinili ng mga partido bago magsimula ang pagpapalitan ng mga mensahe.

Ang data encryption at decryption algorithm ay malawakang ginagamit sa teknolohiya ng kompyuter sa mga sistema para sa pagtatago ng kumpidensyal at komersyal na impormasyon mula sa malisyosong paggamit ng mga third party. Ang pangunahing prinsipyo sa kanila ay ang kondisyon na alam ng transmitter at receiver nang maaga ang algorithm ng pag-encrypt, pati na rin ang susi sa mensahe, kung wala ang impormasyon ay isang hanay lamang ng mga simbolo na walang kahulugan.

Ang isang klasikong halimbawa ng naturang mga algorithm ay ang simetriko cryptographic algorithm na nakalista sa ibaba: - simpleng pagpapalit;

Single permutation sa pamamagitan ng key;

Dobleng permutasyon;

Permutation "Magic Square";

Simpleng muling pagsasaayos.

Ang kumpletong pagkawala ng lahat ng istatistikal na pattern ng orihinal na mensahe ay isang mahalagang kinakailangan para sa isang simetriko cipher. Upang gawin ito, ang cipher ay dapat magkaroon ng "avalanche effect", i.e. dapat mangyari malakas na pagbabago encryption block na may 1-bit na pagbabago sa input data (perpekto, ang mga halaga ng 1/2 bits ng encryption block ay dapat magbago).

Sa kasalukuyan, ang mga simetriko cipher ay:

· harangan ang mga cipher. Iproseso ang impormasyon sa mga bloke ng isang tiyak na haba (karaniwan ay 64, 128 bits), paglalapat ng isang susi sa bloke sa sa inireseta na paraan, kadalasan sa pamamagitan ng ilang mga cycle ng shuffling at substitution, na tinatawag na rounds. Ang resulta ng paulit-ulit na pag-ikot ay isang avalanche effect - isang pagtaas ng pagkawala ng bit correspondence sa pagitan ng mga bloke ng bukas at naka-encrypt na data.

· stream ciphers, kung saan ang pag-encrypt ay isinasagawa sa bawat bit o byte ng orihinal (plain) na teksto gamit ang gamma. Ang isang stream cipher ay madaling malikha batay sa isang block cipher (halimbawa, GOST 28147-89 sa gamma mode), na inilunsad sa isang espesyal na mode.

Mayroong maraming mga algorithm simetriko cipher, ang mahahalagang parameter kung saan ay:

· tibay;

· haba ng susi;

· bilang ng mga round;

haba ng naprosesong bloke;

· pagiging kumplikado ng pagpapatupad ng hardware/software;

· pagiging kumplikado ng conversion.

ANALYTICAL BAHAGI

IDEA algorithm

Ang IDEA (Ingles: International Data Encryption Algorithm, international data encryption algorithm) ay isang simetriko block data encryption algorithm na patent ng Swiss company na Ascom. Ito ay isang simetriko block encryption algorithm na iminungkahi upang palitan ang pamantayan ng DES. Ang unang bersyon ng IDEA algorithm ay lumitaw noong 1990. Ang mga developer ng algorithm, sina Xuejia Lai at James Massey ng Swiss Institute ETH Zurich, ay nagbigay dito ng pangalang PES (Proposed Encryption Standard).

Dahil ang IDEA ay gumagamit ng 128-bit key at 64-bit block size, ang plaintext ay nahahati sa 64-bit na mga bloke. Kung hindi posible ang naturang split, ang huling bloke ay may palaman sa iba't ibang paraan isang tiyak na pagkakasunud-sunod ng mga bit. Upang maiwasan ang pagtagas ng impormasyon tungkol sa bawat indibidwal na bloke, iba't ibang mga mode pag-encrypt. Ang bawat orihinal na hindi naka-encrypt na 64-bit block ay nahahati sa apat na subblock ng 16 bit bawat isa, dahil ang lahat ng algebraic na operasyon na ginagamit sa proseso ng pag-encrypt ay ginagawa sa 16-bit na mga numero. Gumagamit ang IDEA ng parehong algorithm para sa pag-encrypt at pag-decryption.

Ginagamit ng IDEA ang mga sumusunod na mathematical operations:

Bitwise karagdagan modulo 2 (eksklusibo O operasyon);

Pagdaragdag ng unsigned integers modulo 2 16 ;

Pagpaparami ng unsigned integers modulo (2 16 +1), na may bloke ng 16 na zero na itinuturing bilang 2 16 ;

Ang isang makabuluhang kawalan ay ang IDEA ay patented, dahil pinipigilan nito ang libreng pamamahagi nito. Ang IDEA ay hindi nagbibigay para sa pagtaas ng haba ng key. Ang isa pang kawalan ay maaaring isaalang-alang ang katotohanan na hindi lahat ng mga gawa sa cryptanalysis ay nai-publish, iyon ay, posible na ang cipher ay nasira, o masira sa hinaharap.

Ang istraktura ng IDEA algorithm ay ipinakita sa ibaba (Larawan 1).

· electronic code book mode (ECB -- Electronic Code Book)

· block chaining mode (CBC - Cipher Block Chaining)

· mode puna sa pamamagitan ng ciphertext (CFB -- Cipher Feed Back)

· Output feedback mode (OFB -- Output Feed Back).

Dito gawaing kurso ay isinasaalang-alang pagpapatupad ng software IDEA encryption algorithm (Cipher Feed Back mode).

Ang algorithm ng IDEA (International Data Encryption Algorithm) ay kabilang sa klase ng mga simetriko na encryptor. Ang algorithm na ito ay binuo noong 1990 bilang isang kahalili sa DES algorithm(Pamantayang Pag-encrypt ng Data). Ang algorithm ay batay sa ideya ng isang halo-halong pagbabago, na random na pantay na namamahagi ng orihinal na teksto sa buong espasyo ng ciphertext.

Ang mga pinaghalong pagbabago ay ipinapatupad gamit ang mga alternating sequence ng mga substitution at mga simpleng operasyon mga permutasyon.
Ang conversion ng data ay isinasagawa sa mga bloke na ang laki ay 64 bits. Ang pangunahing haba sa IDEA algorithm ay 128 bits.

Ang bawat 64-bit block ay itinuturing bilang apat na 16-bit na subblock, na kino-convert gamit ang mga sumusunod na integer operations.
1. Bitwise na karagdagan modulo 2 (XOR) ng dalawang 16-bit na operand, na tutukuyin namin bilang ..
2. Pagdaragdag ng dalawang integer 16-bit operand modulo 216, na tinutukoy bilang .
3. Pagpaparami ng dalawang unsigned number modulo. Ang resulta ng pagpaparami ng pagpaparami ay pinutol sa haba na 16 bits. Kapag kinakalkula ang operasyong ito, mayroong isang pagbubukod para sa code na may lahat ng mga zero, na itinuturing bilang isang numero kapag nagpaparami. Ang operasyong ito ituturing natin ito bilang .
Ang pamamaraan ng pag-encrypt ay binubuo ng walong magkakaparehong round at karagdagang ika-9 na output round (Larawan 8, A).


kanin. 8. IDEA algorithm:
a – scheme ng pamamaraan ng pag-encrypt; b – multiplicative-additive na istraktura
Sa output ng ika-9 na round, ang mga nilalaman ng apat na 16-bit na subblock ay nabuo, na bumubuo ng isang ciphertext block.
Ang pangunahing bahagi ng bawat pag-ikot ay ang multiplicative-additive na istraktura (Fig. 8, b).

Dito F 1i F 2 16-bit na mga halaga na nagmula sa plaintext,
Z 5i Z 6 – 16-bit na mga subkey.

Ang lahat ng mga operand na kasangkot sa pamamaraan ng pag-encrypt ay 16 bits ang laki.
Sa Fig. Ipinapakita ng Figure 9 ang execution diagram ng unang round ng IDEA algorithm.


kanin. 9 . Unang round ng IDEA encryption
Output data i ika-ikot ng pag-encrypt, ay ibinibigay sa input ( i+1) ika-ikot. Ang 1st round input ay apat
16-bit na subblock ( X 1, X 2, X 3, X 4) 64-bit na bloke pinagmulang teksto.

Ang execution diagram ng ika-9 na round ng encryption ay ipinapakita sa Fig. 10.


kanin. 10. Ikasiyam na round ng IDEA encryption
Dapat tandaan na ang pangalawa at pangatlong subblock ng intermediate na halaga W ay pinapalitan pagkatapos ng bawat pag-ikot ng pag-encrypt maliban sa ikawalo.

Ang bawat isa sa siyam na round ay gumagamit ng 16-bit na iterative key value Zi, na nakukuha sa pamamagitan ng pag-convert ng orihinal na 128-bit key K.

Unang 8 iteration key Z 1…Z 8 ay kinuha bilang walong magkakasunod na bahagi ng isang 128-bit key. Upang makuha ang susunod na walong iterative key, ang 128-bit key value K cyclically shifts 25 bits sa kaliwa at key Z 9…Z 16 ay muling kinuha bilang 8 magkakasunod na bahagi nito. Ang prosesong ito umuulit hanggang sa makuha ang lahat ng 52 iterative key.

Ang pamamaraan ng pag-decryption ay binubuo ng parehong siyam na pag-ikot, ngunit ginanap lamang gamit ang iba't ibang mga value ng iterative key. Ang iterative decryption key ay nakuha mula sa iterative encryption keys batay sa correspondence table (Talahanayan 3).

Talahanayan 3
Mga pangunahing halaga na ginamit sa algorithm ng IDEA
para sa decryption

Sa kasong ito, ang mga sumusunod na relasyon ay nasiyahan:
(9)
(10)
Kaya para sa susi Zj ang halaga ay tinutukoy bilang - Zj, ay additive inverse modulo , at ang halaga ay tinutukoy bilang
– multiplicative inverse modulo +1.

Ang pagkakasunud-sunod ng paggamit ng mga iterative key para sa pag-encrypt ay ipinapakita sa Fig. 11.


kanin. 11. Ang pagkakasunud-sunod ng paggamit ng mga iterative key ng IDEA algorithm

Kapag ang pag-decryption ay ginanap, ang mga round ng algorithm ay isinasagawa sa parehong pagkakasunud-sunod. Ang input sa unang round ay apat na 16-bit subblock ng isang 64-bit ciphertext block. Ang mga value na nakuha pagkatapos isagawa ang output round ay mga subblock ng 64-bit source block. Ang pagkakaiba sa pamamaraan ng pag-encrypt ay sa halip na mga susi Z 1...Z 52 na susi ang ginamit U 1...U 52.