Кіріспе
Шифрдың түрі Криптографияда блок шифры – блок деп аталатын белгілі бір ұзындықтағы биттер тобымен жұмыс істейтін детерминистік алгоритм. Блок шифрлары көптеген криптографиялық протоколдардың құрылыс бөліктері болып табылады. Олар деректерді сақтау және алмасу кезінде кеңінен қолданылады, онда деректер шифрлау арқылы қорғалады және расталады. Блок шифры өзгеріссіз түрлендіру ретінде блоктарды пайдаланады. Тіпті қауіпсіз блок шифры да бір уақытта тек бір блок деректерді шифрлеуге жарамды, бұл үшін белгілі бір кілт қолданылады. Құпиялылық және дұрыстық қауіпсіздігіне қол жеткізу үшін оларды қауіпсіз түрде қайта-қайта пайдалануға мүмкіндік беретін көптеген жұмыс режимдері әзірленген. Алайда, блок шифрлары әмбебап хэш функциялары және псевдорандомдық сандар генераторлары сияқты басқа криптографиялық протоколдарда да құрылыс бөліктері ретінде қолданылуы мүмкін.
In cryptography, a block cipher is a deterministic algorithm that operates on fixed length groups of bits, called blocks. Block ciphers are the elementary building blocks of many cryptographic protocols. They are ubiquitous in the storage and exchange of data, where such data is secured and authenticated via encryption. A block cipher uses blocks as an unvarying transformation. Even a secure block cipher is suitable for the encryption of only a single block of data at a time, using a fixed key. A multitude of modes of operation have been designed to allow their repeated use in a secure way to achieve the security goals of confidentiality and authenticity. However, block ciphers may also feature as building blocks in other cryptographic protocols, such as universal hash functions and pseudorandom number generators.
Тарих
Блок шифрлардың қазіргі заманғы дизайны итерациялық өнім шифрлары тұжырымдамасына негізделген. 1949 жылы жарық көрген «Секреттік жүйелердің байланыс теориясы» атты мақаласында Клод Шеннон өнім шифрларын талдап, оларды алмастыру және реттеу сияқты қарапайым операцияларды біріктіру арқылы қауіпсіздікті тиімді жақсарту құралы ретінде ұсынды. Итерациялық өнім шифрлары шифрлауды бірнеше раундта жүзеге асырады, олардың әрқайсысы бастапқы кілттен алынған әртүрлі кіші кілтті пайдаланады. Мұндай шифрлардың кең таралған түрі – Хорст Фейстельдің атымен аталған Фейстель желісі, ол DES шифрында қолданылады. AES сияқты блок шифрларының көптеген басқа да іске асырылулары алмастыру-реттеу желілері ретінде жіктеледі. Төлем карталары индустриясының деректерді қорғау стандартында (PCI DSS) және Америка Ұлттық Стандарттар Институтында (ANSI) қолданылатын барлық криптографиялық блок форматтарының бастауы Atalla Key Block (AKB) болып табылады, ол Atalla Box-тың маңызды жаңалығы, ал ол – бірінші аппараттық қауіпсіздік модулі (HSM) еді. Ол 1972 жылы Atalla Corporation (қазіргі Utimaco Atalla) компаниясының негізін қалаушы Мохамед М. Атала жасады және 1973 жылы жарияланды. AKB – банк саласындағы басқа қатысушылармен симметриялық кілттерді немесе PIN-кодтарды қауіпсіз алмасу үшін қажетті кілт блогы болды. Бұл қауіпсіз алмасу AKB форматында жүзеге асырылады. 1998 жылға қарай Atalla Box барлық банкомат желілерінің 90%-дан астамын қорғады, ал 2014 жылға қарай Atalla өнімдері әлемдегі банкомат операцияларының көп бөлігін қамтамасыз етеді. DES шифрын 1977 жылы АҚШ Ұлттық Стандарттар бюросы (кейіннен АҚШ Ұлттық Стандарттар және Технология институты, NIST) жариялағаннан кейін қазіргі заманғы блок шифрларын түсінуде маңызды рөл атқарды. Бұл криптоаналитикалық шабуылдардың академиялық дамуына да ықпал етті. Дифференциалдық және сызықтық криптоанализ DES дизайны бойынша жүргізілген зерттеулердің нәтижесінде пайда болды. Блок шифрдың қауіпсіз болуы үшін, күшпен бұзуға қарсы беріктігімен қатар, шабуыл жасау әдістерінің алуан түрлілігіне де төтеп беруі керек.
Ауыстыру / пермутация желілері
Қайталанатын блок шифрлаудың бір маңызды түрі – алмастыру-пермутация желісі (SPN) – кіргізу ретінде ашық мәтін мен кілттің блогын қабылдайды және әр шифрланған мәтін блогын шығару үшін алмастыру кезеңінен кейін пермутация кезеңінен тұратын бірнеше кезектесетін раундтарды қолданады. Сызықтық емес алмастыру кезеңі кілт биттерін ашық мәтін биттерімен араластырады, Шеннонның шатасуын құрайды. Сызықтық пермутация кезеңі артықшылықты таратып, диффузияны қамтамасыз етеді. Ауыстыру қорабы (S қорабы) кішкентай кіріс биттері блогын басқа шығыс биттері блогымен алмастырады. Бұл алмастыру бір-бірге сәйкес болуы керек, керіленуді (яғни, шифрды ашуды) қамтамасыз ету үшін. Қауіпсіз S қорабында бір кіріс битінің өзгеруі орташа есеп бойынша шығыс биттерінің жартысын өзгертеді, бұл лавина эффектісі деп аталады – яғни, әрбір шығыс биті барлық кіріс биттеріне тәуелді болады. Пермутация қорабы (P қорабы) – барлық биттердің орналасуын өзгерту болып табылады: ол бір раундтың барлық S қораптарының шығыстарын қабылдайды, биттерді пермутациялайды және оларды келесі раундтың S қораптарына жібереді. Жақсы P қорабының қасиеттері – кез келген S қорабының шығыс биттері мүмкіндігінше көп S қорабының кірісіне таратылады. Әр раундта раунд кілті (кілттен кейбір қарапайым операциялар арқылы алынады, мысалы, S қораптары мен P қораптарын пайдалану) әдетте XOR операциясы сияқты топтық операцияны қолдану арқылы біріктіріледі. Шифрды ашу процесті кері қайтару арқылы жүзеге асырылады (S және P қораптарының кері функцияларын қолданып, раунд кілттерін кері ретпен қолдану арқылы).
ARX (addrotateXOR)
Көптеген заманауи блок шифрлары мен хэштер ARX алгоритмдері болып табылады – олардың раунды функциясы үш операцияны ғана қамтиды: (A) модульдік қосу, (R) белгілі бір мөлшерде айналу және (X) XOR. Мысалдарға ChaCha20, Speck, XXTEA және BLAKE жатады. Көптеген авторлар мұндай раунды функцияны көрсету үшін ARX желісін, дерек ағынының диаграммасын салады. Бұл ARX операциялары аппараттық және бағдарламалық қамтамасызда салыстырмалы түрде жылдам әрі арзан болғандықтан, оларды жүзеге асыру өте қарапайым болуы мүмкін, сондай-ақ олар тұрақты уақытта жұмыс істейді, демек уақыттық шабуылдарға төтеп береді. Айналу криптоанализі әдісі мұндай раунды функцияларға шабуыл жасауға бағытталған.
Басқа операциялар
Блок шифрлеуде жиі қолданылатын басқа операциялар RC5 және RC6 сияқты деректерге тәуелді бұрылыстарды, «Деректерді шифрлау стандарты» және «Қосымша шифрлеу стандарты» сияқты іздеу кестесі түрінде іске асырылған алмастыру блогын, пермутация блогын және IDEA-дағыдай көбейтуді қамтиды.
Жұмыс істеу тәсілдері
Блок шифры өзі тек шифрдің блок ұзындығына тең бір дерек блогын шифрлеуге мүмкіндік береді. Өзгермелі ұзындығы бар хабар үшін деректерді алдымен жеке шифр блоктарына бөлу қажет. Ең қарапайым жағдайда, электрондық код кітабы (ECB) режимі деп аталатын жағдайда, хабар алдымен шифрдің блок өлшеміне сәйкес жеке блоктарға бөлінеді (мүмкін соңғы блокқа толтыру биттері қосылады), содан кейін әрбір блок тәуелсіз түрде шифрланады және дешифрленеді. Дегенмен, мұндай қарапайым әдіс көбінесе қауіпсіз емес, себебі бірдей ашық мәтін блоктары бірдей кілт үшін әрқашан бірдей шифрмәтін блоктарын тудырады, сондықтан ашық мәтіндегі үлгілер шифрмәтін шығысында көрінеді. Бұл шектеуді жою үшін бірнеше блок шифрінің жұмыс режимдері әзірленді және NIST 800 38A және BSI TR 02102 сияқты ұлттық ұсыныстарда және ISO/IEC 10116 сияқты халықаралық стандарттарда сипатталды. Жалпы түсінік – ықтималдық шифрлеу деп аталатын нәрсені жасау үшін қосымша кіріс мәніне негізделген ашық мәтін деректерін кездейсоқ ету. Шифр блок тізбегі (CBC) режимінде, шифрлеу қауіпсіз болу үшін ашық мәтін хабарымен бірге берілген инициализациялық вектор кездейсоқ немесе псевдокездейсоқ мән болуы керек, ол шифрленгенге дейін бірінші ашық мәтін блогына XOR операциясы арқылы қосылады. Нәтижесінде алынған шифрмәтін блогы келесі ашық мәтін блогы үшін жаңа инициализациялық вектор ретінде қолданылады. Шифр кері байланыс (CFB) режимінде, ол өзін-өзі синхронизациялайтын ағын шифрін имитациялайды, инициализациялық вектор алдымен шифрленеді, содан кейін ашық мәтін блогына қосылады. Шығыс кері байланыс (OFB) режимі синхронды ағын шифрін имитациялау үшін кілт ағынын жасау үшін инициализациялық векторды бірнеше рет шифрлейді. Жаңа санау (CTR) режимі де кілт ағынын жасайды, бірақ инициализациялық вектор ретінде тек бірегей және (псевдо) кездейсоқ мәндерді қажет етпейді; қажетті кездейсоқтық инициализациялық векторды блок санауы ретінде пайдалану және осы санауды әрбір блок үшін шифрлеу арқылы ішкі түрде алынады. Сондықтан соңғы ашық мәтін блогын шифрдің блок өлшеміне дейін кеңейту үшін сәйкес толтыру схемасы қажет. Стандарттарда және әдебиетте сипатталған көптеген танымал схемалар толтыру оракулына қарсы шабуылдарға осал екені көрсетілсе, ISO/IEC 9797-1 стандартында «толтыру әдісі 2» ретінде стандартталған, бір бит қосып, содан кейін соңғы блокты нөлдік биттермен кеңейтетін шешім осы шабуылдарға қарсы қауіпсіз екені дәлелденді. DES сияқты ертерек блок шифрлары әдетте 64 биттік блок өлшемін таңдайды, ал AES сияқты жаңа дизайн 128 биттік немесе одан да үлкен блок өлшемін қолдайды, кейбір шифрлар әртүрлі блок өлшемдерін қолдайды.
Сызықтық криптоанализ
Сызықтық криптоанализ – шифрдің жұмысына жуықтап келген сызықтық шамаларды табуға негізделген криптоанализдің бір түрі. Сызықтық криптоанализ блок шифрларына ең көп қолданылатын екі шабуылдың бірі болып табылады; екіншісі – дифференциалдық криптоанализ. Осы жаңалықты Мицуру Мацуи ашқан, ол алғаш рет FEAL шифріне бұл техниканы қолданған (Мацуи және Ямагиши, 1992).
Толық криптоанализ
Интегралды криптоанализ - бұл криптоаналитикалық шабуыл, ол әсіресе алмастыру-пермутация желілеріне негізделген блок шифрларына қолданылады. Дифференциалды криптоанализден айырмашылығы, ол белгілі бір XOR айырмасымен таңдалған ашық мәтіндердің жұптарын пайдаланса, интегралды криптоанализ таңдалған ашық мәтіндердің жиынтықтарын немесе тіпті көп жиынтықтарын қолданады, олардың бір бөлігі тұрақты болып қалады, ал қалған бөлігі барлық мүмкін нұсқалар арқылы өзгереді. Мысалы, шабуыл 256 таңдалған ашық мәтінді пайдалануы мүмкін, олардың барлығы 8 битінен басқа барлық биттері бірдей, бірақ осы 8 бит бойынша өзара ерекшеленеді. Мұндай жиынның XOR қосындысы міндетті түрде 0-ге тең болады, ал шифрленген мәтіндердің сәйкес жиынтықтарының XOR қосындылары шифрдің жұмыс істеуі туралы ақпарат береді. Мәтіндер жұптары арасындағы айырмашылықтар мен үлкен мәтіндер жиынтығының қосындылары арасындағы осы контраст "интегралды криптоанализ" атауына ықпал етті, бұл атау калькулустың терминологиясын қарыз алады.
Басқа әдістер
Сызықтық және дифференциалдық криптоанализден басқа, шабуылдардың саны артып келеді: қысқартылған дифференциалдық криптоанализ, ішінара дифференциалдық криптоанализ, квадраттық және интегралдық шабуылдарды қамтитын интегралдық криптоанализ, сырғанама шабуылдар, бумеранг шабуылдар, XSL шабуылы, мүмкін емес дифференциалдық криптоанализ және алгебралық шабуылдар. Жаңа блок шифрының дизайнының сенімді болуы үшін, ол белгілі шабуылдарға қарсы қорғанысқа ие екенін көрсетуі керек.
Дәлелденетін қауіпсіздік
Блок шифрі белгілі бір жұмыс режимінде қолданылғанда, нәтижесіндегі алгоритм идеалды жағдайда блок шифрінің өзі сияқты қорғалған болуы керек. ЕЦБ (жоғарыда талқыланған) бұл қасиетке ие емес: негізгі блок шифрі қаншалықты қорғалған болса да, ЕЦБ режиміне шабуыл жасау оңай. Ал CBC режимінің қорғалғандығы негізгі блок шифрі де қорғалған деген болжамға сүйеніп дәлелделуі мүмкін. Дегенмен, мұндай мәлімдемелер жасау үшін шифрлау алгоритмі немесе блок шифрінің "қорғалған болуы" дегеніміз не екенін нақты математикалық тұрғыдан анықтау қажет. Осы бөлімде блок шифрінің ие болуы тиіс екі негізгі қасиеті сипатталады. Әрқайсысы жоғары деңгейдегі алгоритмдердің, мысалы CBC-нің қасиеттерін дәлелдеуге қолданылатын математикалық модельге сәйкес келеді. Криптографиядағы осы жалпы тәсіл – жоғары деңгейдегі алгоритмдерді (мысалы, CBC) олардың құрауыштарға (мысалы, блок шифрі) қатысты нақты айтылған шарттар бойынша қорғалған екенін дәлелдеу – дәлелді қауіпсіздік деп аталады.
Стандартты үлгі
Бейресми түрде, блок шифры стандартты модельде қауіпсіз деп есептеледі, егер шабуылшы блок шифрын (келтірілген кілтпен жабдықталған) және кездейсоқ пермутацияны ажырата алмаса. Нақтырақ айтсақ, E n биттік блок шифры болсын. Келесі ойынды қарастырайық: ойынды жүргізуші тиысқанды лақтырады. Егер тиысқан басы болса, ол кездейсоқ K кілтін таңдайды және f = EK функциясын анықтайды. Егер тиысқан құйрығы болса, ол n биттік тізбектер жиынында кездейсоқ пермутацияны таңдайды және f функциясын анықтайды. Шабуылшы n биттік тізбек X-ті таңдайды, ал ойынды жүргізуші оған f(X) мәнін хабарлайды. 2-қадам барлығы q рет қайталанады (осы q өзара әрекеттесудің әрқайсысы сұраныс болып саналады). Шабуылшы тиысқанның қалай түскенін болжайды. Егер болжамы дұрыс болса, ол жеңіп шығады. Алгоритм ретінде модельделген шабуылшы қарсылас деп аталады. Шабуылшы сұранысқа ие болған f функциясы оракул деп аталады. Қарсылас кездейсоқ болжау арқылы жеңіске жетудің 50% мүмкіндігін қамтамасыз ете алатынын ескеру керек (мысалы, әрқашан «бас» деп болжау арқылы). Сондықтан, PE(A) белгісімен қарсылас A-ның E-ге қарсы ойында жеңіп алу ықтималдығын, ал A-ның артықшылығын 2(PE(A) – 1/2) деп анықтаймыз. Егер A кездейсоқ болжаса, оның артықшылығы 0-ге тең болады; ал егер A әрқашан жеңсе, оның артықшылығы 1-ге тең болады. E блок шифры псевдокезеңдік пермутация (PRP) болып саналады, егер q және қарсыластың жұмыс уақытына белгіленген шектеулер ескерілгенде, қарсыластың 0-ден айтарлықтай артықшылығы болмаса. Егер жоғарыдағы 2-қадамда қарсыластар f(X) орнына f⁻¹(X) туралы білу мүмкіндігіне ие болса (бірақ әлі де аз артықшылықтары болса), онда E – күшті PRP (SPRP). Егер қарсылас ойын басталғанға дейін X үшін барлық q мәнін таңдаса (яғни, әр X-ті таңдау үшін бұрынғы сұраныстардан алынған ақпаратты пайдаланбаса), онда ол бейімделмейтін болып саналады. Бұл анықтамалар әртүрлі жұмыс істеу режимдерін талдау үшін пайдалы болып табылды. Мысалы, блок шифрына негізделген шифрлау алгоритмінің қауіпсіздігін өлшеу үшін ұқсас ойынды анықтауға болады, содан кейін қарсыластың осы жаңа ойында жеңіп алу ықтималдығы PE(A)-дан көп емес екенін көрсеруге тырысу керек (кешіру әдетте q және A-ның жұмыс уақытын шектейді). Басқаша айтқанда, егер PE(A) барлық тиісті A үшін кішкентай болса, онда ешқандай шабуылшының жаңа ойында жеңіп алу ықтималдығы жоқ. Бұл жоғары деңгейдегі алгоритм блок шифрының қауіпсіздігін мұра етеді деген идеяны ресми түсіндіреді.
The person running the game flips a coin. If the coin lands on heads, he chooses a random key K and defines the function f = EK. If the coin lands on tails, he chooses a random permutation on the set of n bit strings and defines the function f = The attacker chooses an n bit string X, and the person running the game tells him the value of f(X). Step 2 is repeated a total of q times. (Each of these q interactions is a query.) The attacker guesses how the coin landed. He wins if his guess is correct. The attacker, which we can model as an algorithm, is called an adversary. The function f (which the adversary was able to query) is called an oracle. Note that an adversary can trivially ensure a 50% chance of winning simply by guessing at random (or even by, for example, always guessing "heads"). Therefore, let PE(A) denote the probability that adversary A wins this game against E, and define the advantage of A as 2(PE(A) − 1/2). It follows that if A guesses randomly, its advantage will be 0; on the other hand, if A always wins, then its advantage is 1. The block cipher E is a pseudo random permutation (PRP) if no adversary has an advantage significantly greater than 0, given specified restrictions on q and the adversary's running time. If in Step 2 above adversaries have the option of learning f−1(X) instead of f(X) (but still have only small advantages) then E is a strong PRP (SPRP). An adversary is non adaptive if it chooses all q values for X before the game begins (that is, it does not use any information gleaned from previous queries to choose each X as it goes). These definitions have proven useful for analyzing various modes of operation. For example, one can define a similar game for measuring the security of a block cipher based encryption algorithm, and then try to show (through a reduction argument) that the probability of an adversary winning this new game is not much more than PE(A) for some A. (The reduction typically provides limits on q and the running time of A.) Equivalently, if PE(A) is small for all relevant A, then no attacker has a significant probability of winning the new game. This formalizes the idea that the higher level algorithm inherits the block cipher's security.
Практикалық бағалау
Блок шифрлер практикада бірнеше критерий бойынша бағалануы мүмкін. Негізгі факторларға мыналар жатады: кілт мөлшері және блок мөлшері сияқты кілттік параметрлер, олардың екеуі де шифрдің қауіпсіздігінің жоғарғы шегін анықтайды. Шифрдің қауіпсіздік деңгейі, ол криптоанализдің күшті күш-жігеріне ұзақ уақыт бойы қарсы тұрғаннан кейін шифр дизайнына деген сенімге негізделген, дизайның математикалық дұрыстығы және практикалық немесе сертификациялық шабуылдардың болуы. Шифрдың күрделілігі және аппараттық немесе бағдарламалық қамтамасыз етуде іске асырылуға қолайлылығы. Аппараттық іске асыруларда күрделілік ресурстар шектеулі құрылғылар үшін маңызды параметрлер болып табылатын логикалық элементтер саны немесе энергия тұтыну арқылы өлшенуі мүмкін. Шифрдың әртүрлі платформалардағы өңдеу жылдамдығы және жад талаптары бойынша өнімділігі. Шифрдың құны – интеллектуалдық меншік құқықтарына байланысты қолданылуы мүмкін лицензиялық талаптар. Шифрдің икемділігіне бірнеше кілт мөлшерлерін және блок ұзындықтарын қолдау қабілеті кіреді.
Key parameters, such as its key size and block size, both of which provide an upper bound on the security of the cipher. The estimated security level, which is based on the confidence gained in the block cipher design after it has largely withstood major efforts in cryptanalysis over time, the design's mathematical soundness, and the existence of practical or certificational attacks. The cipher's complexity and its suitability for implementation in hardware or software. Hardware implementations may measure the complexity in terms of gate count or energy consumption, which are important parameters for resource constrained devices. The cipher's performance in terms of processing throughput on various platforms, including its memory requirements. The cost of the cipher refers to licensing requirements that may apply due to intellectual property rights. The flexibility of the cipher includes its ability to support multiple key sizes and block lengths.
Люцифер / ДЭС
Люцифер әдетте 1970 жылдары IBM-де Хорст Файстельдің жұмысына негізделген алғашқы азаматтық блок шифрі саналады. Алгоритмнің жаңартылған нұсқасы АҚШ үкіметінің Федералдық ақпаратты өңдеу стандарты ретінде қабылданды: FIPS PUB 46 Деректерді шифрлау стандарты (DES). Ол АҚШ Ұлттық стандарттар бюросы (NBS) ұсыныстарды ашық түрде қабылдағаннан кейін және NBS (және, мүмкін, NSA) ішкі өзгерістер енгізгеннен кейін таңдалды. DES 1976 жылы жарияланды және кеңінен қолданылды. DES, басқа нәрселермен қатар, NSA-ға белгілі және IBM қайта ашқан, бірақ 1980 жылдардың соңында Эли Бихам мен Ади Шамир қайта ашып, жариялағанға дейін жұртшылыққа белгісіз болған криптоанализдік шабуылға қарсы тұру үшін жасалды. Бұл әдіс дифференциалдық криптоанализ деп аталады және блок шифрлеріне қарсы жалпы шабуылдардың санатындағы бірі болып табылады; сызықтық криптоанализ де бар, бірақ Мицуру Мацуи жариялағанға дейін тіпті NSA-ға да белгісіз болған болуы мүмкін. DES ашық қауымда криптография және криптоанализ саласында көптеген жұмыстар мен жарияланымдарға түрткі болды және көптеген жаңа шифр дизайндарына әсер етті. DES блогының көлемі 64 бит, ал кілттің көлемі 56 битті құрайды. DES-тен кейін 64 биттік блоктар блок шифрлеу дизайндарында кең таралды. Кілттің ұзындығы бірнеше факторларға, соның ішінде мемлекеттік реттеуге байланысты болды. 1970 жылдары көптеген сарапшылар DES үшін қолданылған 56 биттік кілттің тым қысқа екенін айтты. Уақыт өте келе оның жеткіліксіздігі айқын болды, әсіресе 1998 жылы Electronic Frontier Foundation DES-ті бұзуға арналған арнайы машинаны көрсеткеннен кейін. DES-тің кеңейтімі, Triple DES, әр блокты екі тәуелсіз кілтпен (112 биттік кілт және 80 биттік қауіпсіздік) немесе үш тәуелсіз кілтпен (168 биттік кілт және 112 биттік қауіпсіздік) үш рет шифрлейді. Ол кеңінен алмастыру ретінде қабылданды. 2011 жылғы мәліметтер бойынша үш кілтті нұсқа әлі де қауіпсіз саналады, бірақ Ұлттық стандарттар және технология институты (NIST) стандарттары 80 биттік қауіпсіздік деңгейіне байланысты жаңа қолданбаларда екі кілтті нұсқаны пайдалануға рұқсат бермейді.
IDEA
Халықаралық деректер шифрлау алгоритмі (IDEA) – Цюрих технологиялық институты (ETH Zurich) және Xuejia Lai жасаған Джеймс Массидің блок шифрі; ол алғаш рет 1991 жылы DES-тің ізбасары ретінде сипатталды. IDEA 128 биттік кілтті пайдалана отырып, 64 биттік блоктармен жұмыс істейді және сегіз бірдей түрлендірулерден (раунд) және шығыс түрлендіруден (жартылай раунд) тұрады. Шифрлау және дешифрлеу процестері ұқсас. IDEA өзінің қауіпсіздігін әртүрлі топтардан алынған операцияларды араластыру арқылы қамтамасыз етеді – модульдік қосу және көбейту, сондай-ақ біттік эксклюзивті немесе (XOR) операциялары, олар белгілі бір жағдайда алгебралық тұрғыдан «үйлеспейді». Алгоритмді жасаушылар IDEA-ны дифференциалдық криптоанализге қарсы оның беріктігін бағалау үшін талдады және белгілі бір шарттарда оның осы талдауға төтеп беретінін анықтады. Сәтті сызықтық немесе алгебралық әлсіздіктерге қатысты ешқандай хабарлама түскен жоқ. 2012 жылға дейін барлық кілттерге қолданылатын ең тиімді шабуыл, тар бикликтік шабуыл арқылы толық 8.5 раундтық IDEA-ны күш қолдану арқылы төрт есе жылдам бұзуға мүмкіндік береді.
RC5
RC5 – 1994 жылы Рональд Ривест жасаған блок шифрі. Көптеген басқа шифрлардан айырмашылығы, RC5-тің блок өлшемі өзгермелі (32, 64 немесе 128 бит), кілт өлшемі (0-ден 2040 битке дейін) және раундтар саны (0-ден 255-ке дейін) болады. Бастапқыда ұсынылған параметрлер: 64 биттік блок, 128 биттік кілт және 12 раунд. RC5-тің ерекшелігі – дерекке тәуелді айналымдарды қолдану. RC5-тің мақсаттарының бірі – осындай операцияларды криптографиялық примитив ретінде зерттеу және бағалауға мүмкіндік беру болды. RC5 сонымен қатар бірнеше модульдік қосымшалар мен XOR операцияларынан тұрады. Алгоритмнің жалпы құрылымы Фейстель желісіне ұқсас. Шифрлау және шифрды шешу процедураларын кодтың бірнеше жолында көрсетуге болады. Дегенмен, кілт кестесі күрделірек, кілтті кеңейту үшін негізінен бір бағытты функция қолданылады, ал "жеңімдегі сандар" көзі ретінде e санының және алтын қатынастың екілік кеңейтімдері пайдаланылады. Алгоритмнің таңғажайып қарапайымдығы және дерекке тәуелді айналымдардың жаңалығы RC5-ті криптоанализшілер үшін тартымды зерттеу нысанына айналдырды. 12 раундты RC5 (64 биттік блоктары бар) 244 таңдалған қара мәтінді пайдалана отырып, дифференциалдық шабуылға ұшырауы мүмкін. 18–20 раунд жеткілікті қорғаныс ретінде ұсынылады.
Rijndael / AES
Бельгиялық криптографтар Джоан Деймен мен Винсент Риджмен әзірлеген Рийндейл шифры DES-ті алмастыруға үміткер болған жобалардың бірі еді. Ол 5 жылдық ашық бәйгеде жеңіске жетіп, AES (Advanced Encryption Standard) стандарты болды. 2001 жылы NIST қабылдаған AES-тің блогының мөлшері 128 бит, кілттің мөлшері 128, 192 немесе 256 бит. Ал Рийндейл блогы мен кілтінің мөлшері 32 биттің кез келген еселігімен, кемінде 128 битпен белгіленеді. Блоктың максималды мөлшері 256 бит, бірақ кілттің теориялық шегі жоқ. AES байттардан құралған 4×4 бағандық матрицада жұмыс істейді, бұл матрица "күй" деп аталады (Рийндейлдің үлкен блок мөлшері бар нұсқаларында "күй" матрицасында қосымша бағандар болады).
Балық
Blowfish – Брюс Шнайердің 1993 жылы жасаған және көптеген шифрлау жиынтықтары мен шифрлау өнімдеріне енгізілген блок шифрі. Blowfish-тің блок көлемі 64 бит, ал кілттің ұзындығы 1 биттен 448 битке дейін өзгеріп отыруы мүмкін. Бұл 16 раундтық Фейстель шифрі және үлкен кілтке тәуелді S-қораптарды пайдаланады. Дизайнның ерекшеліктері – кілтке тәуелді S-қораптар және өте күрделі кілттік кесте. Ол жалпы мақсаттағы алгоритм ретінде, ескірген DES-ке балама ретінде және басқа алгоритмдерге байланысты проблемалар мен шектеулерден босатылған күйде жасалған. Blowfish жарыққа шыққан кезде көптеген басқа да дизайн патенттелген, патенттермен шектелген немесе коммерциялық/мемлекеттік құпиялар болып келген. Шнайер: «Blowfish патенттелмеген және барлық елдерде осылай болып қала береді. Алгоритм осымен қоғамдық доменге берілді және оны кез келген адам еркін пайдалана алады» деді. Бұл Шнайердің мұрагер алгоритмі Twofish-ке де қатысты.
Өзгертілетін блок шифрлары
М. Лисков, Р. Ривест және Д. Вагнер блок шифрларының жалпыланған нұсқасын сипаттады, оны "өзгертілетін" блок шифрлары деп атайды. Өзгертілетін блок шифры әдеттегі ашық мәтін немесе шифрланған мәтінмен қатар, "өзгерту" деп аталатын екінші кіріс алады. Өзгерту кілтпен бірге шифрмен есептелген алмасуды таңдайды. Егер өзгертулерді өзгерту операциясы кілтті орнату операциясымен салыстырғанда жеңіл болса (кілтті орнату операциясы көбінесе қымбат болады), онда қызықты жаңа жұмыс режимдері пайда болуы мүмкін. Диск шифрлау теориясы туралы мақалада осы режимдердің кейбіреулері сипатталған.
Форматты сақтаушы шифрлау
Блок шифрлеу әдетте екілік әліпбимен жұмыс істейді. Яғни, кіріс және шығыс екеуі де n нөлдер мен бірліктерден тұратын екілік тізбектер болып табылады. Дегенмен, кейбір жағдайларда, басқа әліпбиде жұмыс істейтін блок шифрлеуді пайдалану қажет болуы мүмкін; мысалы, шифрмәтін де 16 таңбалы сан болса, 16 таңбалы кредиттік карта нөмірлерін шифрлеу, ескі бағдарламалық құралға шифрлеу қабатын қосуды жеңілдетуі мүмкін. Бұл форматты сақтаушы шифрлеудің мысалы. Жалпы алғанда, форматты сақтаушы шифрлеу белгілі бір шекті тілде кілттелген өзгерісті (пермутацияны) талап етеді. Бұл форматты сақтаушы шифрлеу схемаларын (өзгертілетін) блок шифрлеулердің табиғи жалпылауы жасайды. Керісінше, CBC сияқты дәстүрлі шифрлеу схемалары пермутация емес, себебі бірдей қара мәтін тіпті тұрақты кілт қолданылғанда да бірнеше түрлі шифрмәтінге шифрленуі мүмкін.
Басқа криптографиялық примитивтермен байланысы
Блок шифрлары төмендегілер сияқты басқа криптографиялық құралдарды құру үшін қолданылуы мүмкін. Басқа құралдар криптографиялық тұрғыдан қауіпсіз болу үшін оларды дұрыс құрастыруға көңіл бөлу керек. Ағындық шифрларды блок шифрларын пайдалана отырып құруға болады. OFB режимі және CTR режимі – блок шифрлауды ағындық шифрлауға айналдыратын блок режимдері. Криптографиялық хэш-функциялар блок шифрларын пайдалана отырып құрылуы мүмкін. Мұндай әдістердің сипаттамалары үшін бір бағытты сығу функциясын қараңыз. Бұл әдістер әдетте шифрлау үшін қолданылатын блок шифрлау режимдеріне ұқсас. Криптографиялық қауіпсіз псевдокездейсоқ сандар генераторларын (CSPRNG) блок шифрларын пайдалана отырып құруға болады. Кездейсоқ өлшемдегі шекті жиынтықтардың қауіпсіз псевдопермутацияларын блок шифрларымен құрастыруға болады; Форматты сақтау шифрлауды қараңыз. Жалпыға белгілі болжамсыз пермутация, кілтті ағартумен біріктірілгенде, Even–Mansour шифры сияқты блок шифрын құруға жеткілікті, бәлкім, ең қарапайым және дәлелді қауіпсіз блок шифры. Хабарламаларды аутентификациялау кодтары (MAC) көбінесе блок шифрларынан құрылады. CBC MAC, OMAC және PMAC – осындай MAC-тер. Аутентификацияланған шифрлау да блок шифрларынан құрылады. Бұл бір уақытта шифрлау және MAC жасауды білдіреді, яғни құпиялылықты және аутентификацияны қамтамасыз етуді. CCM, EAX, GCM және OCB – осындай аутентификацияланған шифрлау режимдері. Блок шифрларын хэш-функцияларды құру үшін де пайдалануға болады, мысалы, SHA 1 және SHA 2 блок шифрларына негізделген, олар SHACAL ретінде дербес қолданылады, ал хэш-функцияларды блок шифрларын құру үшін пайдалануға болады. Мұндай блок шифрларының мысалдары – BEAR және LION.