UA55496C2 - Спосіб криптографічного перетворення l-бітових вхідних блоків цифрових даних в l-бітові вихідні блоки - Google Patents

Спосіб криптографічного перетворення l-бітових вхідних блоків цифрових даних в l-бітові вихідні блоки Download PDF

Info

Publication number
UA55496C2
UA55496C2 UA2000063692A UA00063692A UA55496C2 UA 55496 C2 UA55496 C2 UA 55496C2 UA 2000063692 A UA2000063692 A UA 2000063692A UA 00063692 A UA00063692 A UA 00063692A UA 55496 C2 UA55496 C2 UA 55496C2
Authority
UA
Ukraine
Prior art keywords
binary vector
block
data
sub
blocks
Prior art date
Application number
UA2000063692A
Other languages
English (en)
Russian (ru)
Inventor
Алєксандр Андрєєвіч Молдовян
Александр Андреевич Молдовян
Ніколай Андрєєвіч Молдовян
Николай Андреевич Молдовян
Original Assignee
Откритоє Акціонєрноє Общєство "Московская Городская Тєлєфонная Сєть"
Открытое акционерное общество "Московская городская телефонная сеть"
Алєксандр Андрєєвіч Молдовян
Александр Андреевич Молдовян
Ніколай Андрєєвіч Молдовян
Николай Андреевич Молдовян
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Откритоє Акціонєрноє Общєство "Московская Городская Тєлєфонная Сєть", Открытое акционерное общество "Московская городская телефонная сеть", Алєксандр Андрєєвіч Молдовян, Александр Андреевич Молдовян, Ніколай Андрєєвіч Молдовян, Николай Андреевич Молдовян filed Critical Откритоє Акціонєрноє Общєство "Московская Городская Тєлєфонная Сєть"
Publication of UA55496C2 publication Critical patent/UA55496C2/uk

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Emergency Protection Circuit Devices (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)
  • Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
  • Complex Calculations (AREA)

Abstract

Винахід відноситься до галузі електроніки і обчислювальної техніки, а конкретніше - до способів і пристроїв для шифрування цифрових даних. Спосіб полягає в розбитті блоку даних на підблоки, почерговому перетворенні підблоків шляхом формування принаймні одного бінарного вектора за значенням підблоку і зміни підблоку з використанням бінарного вектора. Новим в способі є те, що формування бінарного вектора на наступному кроці перетворення підблоку здійснюють залежно від структури бінарного вектора на попередньому кроці перетворення підблоку. Новим є також те, що формують два бінарних вектори і один з них перетворюють за допомогою операції циклічного зсуву на число бітів, що дорівнює значенню другого бінарного вектора. Крім того, новим є те, що зміну одного з підблоків здійснюють шляхом виконання над ним операції циклічного зсуву на число бітів, що дорівнює поточному значенню бінарного вектора. Новим є також те, що при перетворенні підблоків використовують таблиці підстановок, число яких при цьому за бінарним вектором вираховують номер (v) таблиці і підблок змінюють за допомогою операції підстановки, що задається v-тою таблицею.

Description

Винахід відноситься до галузі електрозв'язку і обчислювальної техніки, а саме до галузі криптографічних способів та пристроїв для шифрування повідомлень (інформації).
В описі способу, що заявляється, використовуються такі терміни: секретний ключ - це бінарна інформація, яка відома тільки законному користувачу; криптографічне перетворення - це перетворення цифрової інформації, яке забезпечує вплив одного біта початкових даних на багато бітів вихідних даних, наприклад, з метою захисту інформації від несанкціонованого читання, формування цифрового підпису, виробляння коду виявлення модифікацій, важливими видами криптографічних перетворень є одностороннє перетворення, хеширування і шифрування; хеширування інформації - це спосіб формування так званого хеш-коду, розмір якого є фіксованим (звичайно 128 бітів) для повідомлень будь-якого розміру; широко застосовуються способи хеширування, які базуються на ітеративних хеш-функціях із застосуванням блочних механізмів криптографічного перетворення інформації (див І аі Х, Маззеу У І. Назп Рипсіїоп5 Вазей оп Віоск Сірпег5/ЛМогкеПпор оп Тпеогу апа Арріїсайопвг ої
Стуріодгарпіс Тесппіднез ЕОВОСАУРТО92 Ниподагу, Мау 24 - 28, 1992 Ргосеєдіпов Р 53 - 66 шифрування - це процес перетворення інформації, який залежить від секретного ключа і який перетворює початковий текст в шифртекст, який являє собою псевдовипадкову послідовність знаків, з якої отримання інформації без знання секретного ключа є практично неможливим; дешифрування - це процес, зворотний процедурі шифрування, дешифрування забезпечує відновлювання інформації за криптограмою за умови знання шифрключа; шифр - це сукупність елементарних кроків перетворення вхідних даних з використанням секретного ключа, шифр може бути реалізований у вигляді програми для комп'ютера або у вигляді окремого пристрою; бінарний вектор - це деяка послідовність нульових і одиничних бітів, наприклад 101101011, конкретна структура бінарного вектора може бути інтерпретована як бінарне число, якщо вважати, що позиція кожного біта відповідає бінарному розряду, тобто бінарному вектору може відповідати числове значення, яке визначається однозначно структурою бінарного вектора; криптоаналіз - метод обчислювання секретного ключа для отримання несанкціонованого доступу до зашифрованої інформації або розробка методу, який забезпечує доступ до зашифрованої інформації без обчислення секретного ключа; одностороннє перетворення - це таке перетворення І -бітового вхідного блока даних в І -бітовий вихідний блок даних, яке дозволяє легко обчислити вихідний блок за вхідним блоком, а обчислення вхідного блока, який би перетворювався у випадково вибраний вихідний блок, є практично нездійсненим завданням; одностороння функція - це функція, значення якої легсо обчислюється за даним аргументом, однак обчислення аргументу за даним значенням функції є важким завданням; односторонні функції реалізуються як послідовність процедур одностороннього перетворення деякого вхідного блока (аргументу), вихідне значення якого приймається за значення функції; криптостійкість - це міра надійності захисту зашифрованої інформації і являє собою трудомісткість, що вимірюється кількістю елементарних операцій, які необхідно виконати для відновлення інформації за криптограмою за умови знання алгоритму перетворення, але без знання секретного ключа; в разі односторонніх перетворень під криптостійкістю розуміється складність обчислення вхідного значення блока за його вихідним значенням; - операції циклічного зсуву, що залежать від перетворюваних підблоків або від бінарного вектора, - це операції циклічного зсуву на число бітів, яке задається значенням підблока або значенням бінарного вектора; операції циклічного зсуву ліворуч (праворуч) позначаються знаком "«««" ("»»»"), наприклад, запис Ві ««« Во позначає операцію циклічного зсуву ліворуч підблока Ві на число бітів, яке дорівнює Вг2 ; подібні (схожі) операції є базовими для шифру ВС5 | В. Вімезі, Тпне АС5 Епсгуріїоп АІдопт, Равзі Зоймаге Епсгуріїп, Зесопа
Іпіегпайопа! М/огкепор Ргосеєдіпдз (Геймеп, Веїдішт, ЮОесетрег 14 - 16, 1994), І есіште Моїез іп Сотршег
Зсієпсе, у. 1008, 5ргіпдег-Мепад, 1995, рр. 86 - 96); одномісна операція - це операція, яка виконується над одним операндом (блоком даних або бінарним вектором); значення підблока після виконання деякої даної одномісної операції залежить тільки від його початкового значення; прикладом одномісних операцій є операції циклічного зсуву; двомісна операція - це операція, яка виконується над двома операндами; результат виконання деякої даної двомісної операції залежить від значення кожного операнда; прикладом двомісних операцій є операції складання, віднімання, множення та ін.
Відомі способи блочного шифрування даних, див. наприклад стандарт США ОЕ5 | Маїйопа! Вигеацм ої
Зіапаагавз. Оага Епсгуріїоп 5іапдага. Еєдегаї! Іпгоптайоп Ргосеввіпд біападагав Рибіїсайоп 46. дапиагу 1977 |. В цьому способі шифрування блоків даних виконують шляхом формування секретного ключа, розбиття блока даних, який перетворюється, на два підблоки І і ВА і зміни їх по черзі шляхом виконання операції порозрядного складання за модулем два над підблоком ІГ і бінарним вектором, який формується як вихідне значення деякої функції Е від значення підблока В. Після цього блоки переставляються місцями. Функція Е в цьому способі реалізується шляхом виконання операцій перестановки і підстановки, які виконуються над підблоком А. Цьому способу властива висока швидкість перетворень при втіленні у вигляді спеціалізованих електронних схем.
Однак відомий спосіб використовує секретний ключ малого розміру (56 бітів), що робить його вразливим до криптоаналізу шляхом підбору ключа. Останнє пов'язано з високою потужністю сучасних комп'ютерів масового використання.
Найближчим за своєю технічною суттю до способу криптографічного перетворення І-бітових вхідних блоків цифрових даних в І1-бітові вихідні блоки, що заявляється, є спосіб, описаний в праці (| Каїїпекі В.5.,
Вор5памж М.У.В. Равзі Віоск Сірпег Ргороза!/ Базі Зоймаге Епсгуріоп.Ргосеєдіпд5 ої (Ше Сатогпдде Зесипу
Мо кепор, І есіштге Моїев іп Сотршцег бсієпсе м. 809, бргіпдег/-Мепад, 1994, рр. 26 - 39; див. також В. 5сппеїег, "Арріїва Стурюдгарну", Зесопа Едайоп, дхойп УМпеу 5 Бопв, Іпс., Мем Моїк, 1966, рр. 342 - 344). Цей спосіб включає формування секретного ключа, розбиття вхідного 1024-байтового блока даних на 32-бітові підблоки
Во, Ві, В2...Вов5х і почергового перетворення підблоків. Секретний ключ формується у вигляді таблиці перестановки і упорядкованої послідовності із 2048 підключів Оо, С, О2... Огому, КОЖНИЙ З яких має довжину 32 біти. Шифрування блока даних виконується у вигляді чотирьох раундів перетворення. Один раунд шифрування полягає в наступному. Згідно з таблицею перетворення, яка задається секретним ключем, виконується перестановка підблоків даних. Потім по черзі перетворюються всі підблоки. Підблок, наприклад підблок Ві, перетворюють таким чином. Формується 32-бітовий бінарний вектор М за значенням підблоків Ви,
Вк, Ву, де П, і, ), К є різними номерами; згідно з аналітичним виразом М-Ви - Е(Ви, Вк, Ві) - Од, де знаком "я" позначена операція складання за модулем 232, 4 - номер поточного підключа.
Номери ПП, і, ), К обирають в залежності від номеру раунда шифрування і номеру кроку перетворення підблока. Сформований бінарний вектор використовується під час перетворення підблока В; таким чином.
Виконується операція порозрядного складання за модулем 2 над підблоком В; і М і значення яке отримується після виконання цієї операції присвоюється підблока Ві. Це записується у вигляді співвідношення Ві«-ВІФМ, де знак "«-" означає операцію присвоювання і знак "Ф" означає операцію порозрядного складання за модулем 2.
Після цього аналогічно виконується перетворення іншого підблока і т.д., поки не будуть перетворені всі підблоки. Кожний новий крок формування 32-бітового бінарного вектора виконується незалежно від значення бінарного вектора, який був сформований на попередньому кроці. В одному раунді шифрування індекс і приймає за деякою черговістю 256 різних значень, що відповідають всім номерам підблоків (від 0 до 255).
Спосіб забезпечує високу криптостійкість завдяки великій довжині блока даних і використанню великої кількості операцій перетворення, які припадають на один підблок.
Однак цей спосіб має недоліки, а саме: під час програмної реалізації він не забезпечує високої швидкості криптографічного перетворення даних, яка є необхідною для побудови програмних систем захисту комп'ютерної інформації що працюють в масштабі реального часу. Наприклад, для мікропроцесора
Репіїмт/200 швидкість шифрування не перевищує б Мбітів/с. Цей недолік пов'язаний з тим, що для забезпечення стійкості до диференційного криптоаналізу потрібно виконувати велику кількість операцій перетворення, які припадають на один біт вхідних даних.
В основу винаходу поставлена задача розробити спосіб криптографічного перетворення І -бітових вхідних блоків цифрових даних в І -бітові вихідні блоки, в якому перетворення вхідних даних здійснювалося б таким чином, щоб забезпечувалося зменшення кількості операцій перетворення, які припадають на один біт вхідних даних, при одночасному забезпеченні високої стійкості до диференційного криптоаналізу, завдяки чому підвищується швидкість шифрування.
Розкриття винаходу
Поставлена задача вирішується тим, що в способі криптографічного перетворення І-бітових вхідних блоків цифрових даних в І-бітові вихідні блоки, який полягає в розподілі блока даних на М 2» 2 підблоків, почерговому перетворенні підблоків шляхом формування принаймні одного бінарного вектора за значенням підблока і змінюванні підблока з використанням бінарного вектора, згідно з винаходом формування бінарного вектора на наступному кроці перетворення підблока здійснюють залежно від структури бінарного вектора на попередньому кроці перетворення підблока.
Завдяки такому вирішенню забезпечується краще розсіювання впливу бітів вхідного блока даних на біти вихідного блока, завдяки чому забезпечується висока стійкість до диференційного криптоаналізу одночасно із зменшенням кількості операцій перетворення, які виконуються, що і забезпечує підвищення швидкості криптографічного перетворення. Краще розсіювання забезпечується за рахунок того, що біти підблоків, які перетворені на попередніх кроках перетворення впливають на хід перетворення поточного блока подвійним чином: (1) безпосередньо впливаючи на поточне значення бінарного вектора і (2) впливаючи на поточне значення бінарного вектор через значення бінарного вектора на попередніх кроках перетворення.
Новим є також те, що формують два бінарні вектори і один з них перетворюють за допомогою операції циклічного зсуву на кількість біт, яка дорівнює значенню другого бінарного вектора.
Завдяки такому вирішенню забезпечується додаткове підвищення криптостійкості перетворення блоків інформації довжиною І -512, 1024, 2048, 4096 і 8192 бітів, оскільки операції циклічного зсуву такого типу є нелінійними і задають більш складну функцію формування бінарного вектору.
Новим також є те, що змінювання одного з підблоків здійснюють шляхом виконання над ним операції циклічного зсуву на кількість біт, яка дорівнює поточному значенню бінарного вектора.
Завдяки такому рішенню забезпечується додаткове підвищення криптостійкості перетворення, оскільки операції циклічного зсуву такого типу є нелінійними і виконуються безпосередньо над підблоками, які перетворюються.
Новим є також те, що під час перетворення підблоків використовують таблиці підстановок, кількість яких тТ22, при цьому за бінарним вектором обчислюють номер (хм) таблиці і підблок змінюють за допомогою операції підстановки, яка задається у-тою таблицею.
Завдяки такому вирішенню забезпечується додаткове підвищення криптостійкості перетворення блоків інформації довжиною І -64 і 128 бітів, оскільки операції підстановки є нелінійними і ефективні для реалізації при порівняно малому розмірі блока інформації, який перетворюється. Використання заздалегідь не визначених операцій підстановки є способом досягнення високої криптостійкості до найбільш сильних методів криптоаналізу, зокрема до диференційного криптоаналізу, який описано, наприклад, в праці |Вінат Е., Зпатіг
А. Оінегепіза! Стуріапаїувзіз ої ОЕ5-ЇїКе Стуріозувіетв/ дЧошгпаї ої Стуріоіоду, у. 4, п. 1, 1991, рр. З - 7211.
Нижче суть винаходу, який заявляється, більш докладно роз'яснюється прикладами його здійснення з посиланням на креслення, що додаються.
Скорочений опис креслень
На фіг. 1 наведена узагальнена схема криптографічного перетворення згідно зі способом, який заявляється.
На фіг. 2 наведена схема шифрування відповідно до прикладу 2.
На фіг. З наведена схема одностороннього перетворення відповідно до прикладу 3.
Кращі варіанти здійснення винаходу
Винахід пояснюється узагальненою схемою криптографічного перетворення блоків даних на основі способу, що заявляється, яка показана на фіг. 1, де: В - блок, який перетворюється, ьі, Ьаг,..... Оп - підблоки, які перетворюються, Е - операційний блок, який здійснює зміну підблоків, 7 - операційний блок, який здійснює формування бінарного вектора, Мо - початкове значення бінарного вектора. Вхідний І -бітовий блок цифрових даних, де І -кількість бінарних розрядів в блоці, розбивається на М22 підблоків, кожний з яких має розмір Г/М бітів. Суцільна лінія відповідає передаванню підблоків, які перетворюються, пунктирна - передаванню бінарного вектора.
Підблоки по черзі перетворюються шляхом їх зміни за допомогою операційного блока РЕ, який використовує в перетвореннях значення бінарного вектора, що обумовлює залежність вихідного значення підблока, який перетворюється, від значення бінарного вектора. Операційний блок Її для виконання перетворення бінарного вектора використовує значення підблока, перетвореного на попередньому кроці, тобто операційний блок ї формує бінарний вектор за структурою одного з підблоків, які перетворюються, і за значенням бінарного вектора, яке він мав на попередньому кроці перетворення підблока з використанням бінарного вектора. Це обумовлює залежність значення бінарного вектора від даних, які перетворюються.
Виконання процедур перетворення, які задаються функцією Е, над підблоком будемо називати одним кроком змінювання підблока. Виконання процедур перетворення, що задаються функцією Її, над бінарним вектором будемо називати кроком формування бінарного вектора. Крок перетворення підблока включає крок формування бінарного вектора і крок змінювання підблока. Кроки перетворення виконуються послідовно над усіма підблоками, після чого здійснюється перестановка підблоків.
В окремих випадках реалізації способу, що заявляється, перестановка блоків може не використовуватися.
Виконання М кроків змінювання підблока, М кроків формування бінарного вектора і перестановка підблоків, що показані на фіг. 1, складають один раунд перетворення. Значення бінарного вектора після М-го кроку формування бінарного вектора править за початкове значення бінарного коду для наступного раунда перетворення при побудові односторонніх функцій перетворення І-бітових блоків цифрових даних. При побудові шифрів початкове значення бінарного вектора для кожного раунда формується в залежності від секретного ключа. Кількість раундів перетворення може бути заданим в залежності від конкретних варіантів побудови операційних блоків Е і ї. Важливим в наведеній схемі є те, що бінарний вектор формують залежно від його структури на попередньому кроці перетворення підблока з використанням бінарного вектора.
Під перетворенням підблока з використанням бінарного вектора розуміють (1) виконання двомісної операції, операндами якої є підблок і бінарний вектор, або (2) виконання над підблоком одномісної операції (наприклад, підстановки чи перестановки бітів), модифікацію якої вибирають залежно від значення бінарного вектора, або (3) виконання двомісної операції, що виконується над підблоком і підключем, номер якого залежить від значення бінарного вектора. Наприклад, в першому випадку це може бути перетворення 32 - бітового бідблока В, коли даному підблоку присвоюють значення рівне результату складання за модулем 232 підблока В і бінарного вектора М: В--В-М. В другому випадку це може бути операція циклічного зсуву ліворуч, що виконується над підблоком В на число розрядів рівне значенню бінарного вектора, яку аналітично виражають співвідношенням В«-В««-М. В третьому випадку це може бути, наприклад, перетворення, що задається виразом В--В 4 Оу, де Су - підключ з номером м, який обчислюється за значенням бінарного вектора: м - М той 2"! Останнє співвідношення задає вибір номера рівного значенню 11 молодших розрядів бінарного вектора.
Важливим поодиноким випадком другого варіанту використання бінарного вектора в перетвореннях підблока є виконання операції підстановки над підблоком, яка залежить від бінарного вектора. Такий тип підстановок може бути використаний при задаванні великої кількості різних таблиць підстановок, кожній з яких присвоєно порядковий номер, і для виконання операції підстановки над підблоком використовують таблицю, номер якої вибирають залежно від значення М, наприклад, якщо використовують 32 таблиці підстановки, номер таблиці можна обчислювати за формулою м - М той 25. Рація вибору таблиці підстановки, яка використовується для виконання операції підстановки над підблоком на поточному кроці, за спеціально формованим бінарнним вектором полягає в тому, щоб зробити не визначеним наперед вибір таблиці підстановки для кожного кроку перетворення підблоків, що підвищує стійкість криптографічного перетворення.
Під формуванням бінарного вектора ми розуміємо запис, наприклад, в реєстр чи комірку пам'яті обчислювального пристрою деякої послідовності одиничних чи нульових бітів. Під формуванням бінарного вектора залежно від його структури на попередньому кроці перетворення підблока з використанням бінарного коду ми розуміємо задання залежності поточного значення бінарного вектора, що формується, від значення, яке бінарний вектор мав на попередньому корці використання при перетворенні підблока даних. Наприклад, скажімо, блок В був перетворений з використанням значення бінарного вектора М. Перед використанням бінарного вектора на деякому іншому кроці перетворення, наприклад підблока В, бінарний вектор може формуватися у відповідності з виразом М «-М-О», де Б-Вітой 2!! - номер підключа, який обчислюється в залежності від значення підблока Ві.
Можливість технічної реалізації способу, що заявляється, пояснюється конкретними прикладами його здійснювання.
Приклад 1.
Цей приклад є варіантом способу, що заявляється, який виконує шифрування блоків даних по 512-байт (4096 бітів). Використання такого розміру вхідних блоків обумовлене тим, що в комп'ютерних системах цей розмір блоків є стандартним. При використанні блочних шифрів, які обробляють блоки такого розміру, зберігається можливість довільного доступу до даних, які зберігаються на вбудованому магнітному носії в зашифрованому вигляді. В цьому прикладі використовується 8192-байтовий секретний ключ у вигляді сукупності з 2048 пронумерованих 32-бітових підключів (04, де м - 0,1, .2,...., 2047. Секретний ключ формують, наприклад, шляхом його копіювання з магнітного носія в оперативну пам'ять комп'ютера.
Криптографічне перетворення за прикладом 1 описується таким алгоритмом.
Алгоритм 1: Шифрування 4096-бітових блоків.
ВХІД: 4096-бітовий блок, виконаний у вигляді сукупності 128 32-бітових підблоків «Ві, В»... В 128,). 1. Встановити номер блока, що обробляється, і - 1 і початкове значення бінарних векторів Мі, М», Мз і м:
Мі« 0; Моє О2; Мз« Ов; м «-79. 2. Сформувати бінарний вектор м згідно з структурою бінарного вектора Мі: ме-м Ф (Мі той 2"), де "Є" - операція складання за модулем 2. 3. Сформувати бінарний вектор Мо: Мо «- | (Ме -. 04) 9 Мі | х»»11, де "- - операція складання за модулем 232, 4. Сформувати бінарний вектор м за структурою бінарного вектора М: ме-м Є (М2 той 211). 5. Сформувати бінарний вектор Мз : Мз «- (ЦЧ( (Ма з»» М2) З ОМ - Мі) х»» 22, де "-" означає операцію віднімання за модулем 232. 6. Сформувати бінарний вектор м за структурою бінарного вектора Мз: мє-м Є (Мз той 211). 7. Сформувати бінарний вектор Мі: Міє-Мі - СУ. 8. Перетворити підблок Ві : Ві | (Ві ««« Мг) Ф Мз | 4 Мі 9. Сформувати бінарний вектор Мі: Міє- ВІ. 10. Перетворити підблок Ві: Ві «- Ві -- Мо. 11. Якщо і 25 128, змінити значення номера: і «- і я 1 і перейти до п. 2. 12. Переставити бідблоки у зворотному порядку.
ВИХІД: 4096 - бітовий блок шифртексту у вигляді сукупності перетворених підблоків «Ві Ві ..... Ві2в).
Алгоритм 1 описує один раунд шифрування. Після першого раунда виконують другий раунд шифрування, беручи вихідний блок першого раунда як вхідний для другого раунда. Потім виконують останній (третій) раунд шифрування, беручи вихідний блок другого раунда як вхідний блок для третього раунда. При програмному втіленні швидкість шифрування при використанні трьох раундів перетворення складає біля 30 Мбіт/с для мікропроцесора Репійшт/2000.
Приклад 2.
Розглянемо варіант способу, що заявляється, з використанням операцій підстановок, які задаються таблицями підстановок. Нехай операції підстановки виконуються над підблоками цифрових даних довжиною К бітів, де К - ціле число. Тоді для задання операції підстановки, яка перетворює К - бітовий вихідний підблок, необхідно використовувати таблицю, яка має два рядки чисел: 012 Мч-1 ас ат аг ...ак-, де М-2К
В цій таблиці в нижньому рядку є всі можливі значення К-бітового блока рівно по одному разу, але в довільному порядку. Черговість розташування чисел в нижньому рядку визначає конкретний варіант таблиці підстановки, а значить і конкретний варіант операції підстановки, яка виконується за допомогою цієї таблиці.
Виконання операції підстановки здійснюється таким чином. Вибирають у верхньому рядку число, рівне значенню вхідного блока. Значення в нижньому рядку, яке знаходиться під цим числом, береться як вихідний блок. Таким чином, таблицю підстановки можна розмістити в оперативній пам'яті комп'ютера як послідовний запис К-бітових комп'ютерних слів, розташованих в комірках з адресами мо, мМ, УМ... .., Мм-ї. В цьому випадку значення вхідного блока Б служить для обчислення адреси мо-р слова, яке береться як вхідний блок. Цей спосіб подавання таблиці підстановки потребує використання об'єму пам'яті рівного КМ бітів.
Виберемо кількість таблиць підстановки рівну 2- (об'єм пам'яті складатиме при цьому 2'КМ бітів) і розмістимо таблиці підстановок неперервно одна за одною. Як адресу таблиці з номером м візьмемо значення адреси мо її першого К-бітового слова. Нехай адреса таблиці з номером 0 є 5. В цьому випадку адреса таблиці підстановки з довільним номером м рівний 5 -- УМ. Якщо задано бінарний вектор, який визначає номер поточної таблиці підстановки м і поточний вхідний підблок для виконання операції підстановки, то вона виконується заміною поточного вхідного блока на К-бітове слово, розташоване за адресою 5-уМ-р, де Б - значення підблока, над яким виконується поточна операція підстановки. Використовуючи це співвідношення легко задати вибір таблиці підстановки з номером м і виконати підстановку над підблоком зі значенням б. У випадку, що розглядається, задавання залежності таблиць підстановок від значення бінарного вектора і виконання операції підстановки здійснюється мікропроцесором дуже швидко при виборі відповідних значень параметрів І. і К, наприклад при І -5 і К-8. При зазначених параметрах для розміщення таблиць підстановки необхідно 8
Кбайт оперативної пам'яті, що є прийнятним, оскільки сучасні комп'ютери мають об'єм оперативної пам'яті на багато порядків більші цієї величини (від 1 до 64 Мбайт і більше).
Нехай І -5 і К-8, тобто дані 32 таблиці, які задають операції підстановки над 8-бітовими підблоками даних.
Сформуємо секретний ключ, поданий у вигляді сукупності із 7А 8-бітових підключів
Ки, Кі, ...... Кі7 (перший рядок підключів)
Кат, Ко», ...... Ко (другий рядок підключів)
Ки, Ке,......, Кі? (і-тий рядок підключів)
Кні, Кна, ..... Кв? (В-тий рядок підключів), де А - число раундів шифрування. На г-тому раунді шифруваання використовується г-тий рядок підключів.
Позначимо таблиці підстановки, які використовуються, так: То, Ті, Т3,...., Тзі, а операцію підстановки, що задається таблицею Ту, як Бу, дем 0,1,2,...., 31. Таблиці підстановок То, Ті, Т2,...., Т1і5 можуть бути вибрані довільними, а таблиці підстановок Тів, Ті17,...., Тзі беруться такими, щоб операції підстановок Оу |і зі були взаємно зворотними. Остання умова виконується, коли пари таблиць Тв і Ті5; Ті17 і Та; Тіві Ті3;....;
Тзі і То будуть задавати взаємно зворотні операції підстановки. Для набору довільних таблиць підстановки То,
Ті, Т8,...., Ті5 легко скласти таблиці, які відповідають зворотним операціям підстановки. Наприклад, для операції підстановки, що задається такою таблицею 012...255 ао ат аг ... а2в5,
а зворотна підстановка задається таблицею 012...255 707172... 7255, де рядок (20, 21, 72, .... 7255) одержують як верхній рядок після упорядковування стовпців попередньої таблиці в порядку зростання чисел в нижньому рядку.
На фіг. 2 показана схема першого раунда шифрування. На фіг. 2 суцільна вертикальна лінія відповідає передачі 8-бітових підблоків даних, пунктирна лінія відповідає передачі 5-бітових підблоків, горизонтальна суцільна лінія відповідає передачі 8-бітового підключа. Операція порозрядного складання за модулем два позначена знаком "Ф", м позначає номер вибраної таблиці підстановки, блок 5 позначає операцію підстановки,
КЦ, Киї, Кі2. ...3., Кі? - підключі, які використовуються на першому раунді. Стрілки на лініях позначають напрям передачі сигналів. Приклад 2 відповідає шифруванню блоків цифрових даних розміром 64 біти. Шифрування виконують так. Вхідний блок розбивають на 8 підблоків бо, Бі, Ьз,...., 07, розміром 8 бітів кожний. Після цього формують бінарний вектор му, який має значення 5 молодших бінарних розрядів підблока ро: м «- Бо той 25.
Потім над підблоком бі і підключем Кії виконують операцію порозрядного складання за модулем 2 і вихідне значення цієї операції присвоюють блоку рі, що можна записати аналітично так: бі «- бі Є і.Потім за таблицею підстановки з номером м виконують операцію підстановки над підблоком бі: бі «- Зм (Бі). Потім за значенням бі формують бінарний вектор у: м «- м Є (рі тоа 25), причому нове значення бінарного вектора залежить від його попереднього значення. Після цього виконують перетворення підблока Бр: ро «- ро Ф Кіг і потім боє- Зм(рг).
Аналогічно виконують перетворення підблоків рз, ра, р», бе і б7. На останньому кроці кожного раунду шифрування виконують перестановку підблоків в зворотному порядку, тобто попарно міняються місцями блоки Б; і ро, бв і Бі; Б і р», Ба і рз.
Другий раунд виконують аналогічно, за винятком того, що замість першого рядка підключів використовують другий рядок підключів Після цього виконують третій раунд шифрування з використанням третього рядка підключів і т д Всього виконують А раундів шифрування, де А - 4 При програмній реалізації даний приклад реалізації способу, що заявляється, забезпечує швидкість шифрування біля 25 Мбіт/с для мікропроцесора Репійшт/200. При необхідності може бути задане і інше число раундів, наприклад В - 2, 3, 5,6.
Приклад 2
Приклад описується таким алгоритмом
Алгоритм 2
Вхід 64-бітовий вхідний блок цифрових даних, поданий як конкатенація 8-бітових підблоків бо | бі | Б» | бз
Ба | б5 | бв | б7, де знак "|" означає операцію конкатенації 1 Встановити число раундів шифрування В--4 і лічильник числа раундів г - 1. 2 Встановити лічильник і - 1
З Сформувати бінарний вектор м: м «- біл той 25. 4 Перетворити підблок Брі: «- бі Ф Ки, бі є- Зм (Бі),
Сформувати бінарний вектор у: м Ф (рі той 25). б Якщо і 5 7, приростити і «- і ї- 1 і перейтидо п 4. 7 Якщо г 52 ВА, приростити г «- г - 1 Інакше СТОП. 8 Переставити підблоки в зворотному порядку і перейти до п 3.
Вихід 64 - бітовий блок шифртексту.
В цьому прикладі видно, що номер таблиці підстановки, що використовується, залежить від блоків, що перетворюються, і є невизначеним для поточного кроку перетворення, тобто операція підстановки наперед невідома для всіх кроків перетворення. Вона визначається секретним ключем і блоком даних, що перетворюються. Дешифрування здійснюється аналогічно і описується таким алгоритмом.
Алгоритм З
Вхід 64-бітовий вхідний блок шифртексту бо | бі | бг | з | Ба | б | бе | б7 1 Встановити число раундів шифрування А - 4 і лічильник числа раундів г - 1 2 Встановити лічильник і - 1
З Сформувати бінарний вектор м: м «- біл той 25. 4. Зберегти значення бі в змінній д: д «- бі. Перетворити підблок Бі: Бі «- Ззі-х (Бі), бі «- Бі Ки, дег - 5-1. 5. Сформувати бінарний вектор у: м«- м Ф (д той 25). 6. Якщо і «5 7, приростити і «- і 4. 1 і перейти до п. 4. 7. Якщо г 2 А, приростити г «- г - 1 . Інакше СТОП. 8. Переставити підблоки в зворотному порядку і перейти до п. 3.
Вихід: 64-бітовий блок початкового тексту.
Приведені алгоритми шифрування і дешифрування можуть бути легко модифіковані для перетворення блоків даних другого розміру, наприклад 128 і 256 бітів.
Приклад 3.
Цей приклад відноситься до побудови односторонньої функції, основаної на способі криптографічного перетворення, що заявляється. Так, як і в прикладах 1 і 2, передбачається використання 32 таблиць підстановки То, Ті, Т3, . ..., Тзі. Таблиці підстановок вважаються відомими і секретні ключі не використовуються. Одностороння функція задається алгоритмом 4. Послідовність операцій перетворення підблоків даних для одного раунду перетворення показана на фіг. 2.
Алгоритм 4.
Вхід. 64-бітовий вхідний блок даних, поданий як конкатенція 8-бітових підблоків бо | б: | б2 |... | б7 1. Встановити число раундів перетворення Н-8, лічильник числа раундів г-1 і початкове значення бінарного вектора у-13. 2. Встановити лічильник і - 1.
3. Сформувати бінарний вектор м: м «- м Є (б іл той 25). 4. Перетворити підблок Б 1: бі «- біл « о« «бле Зб). 5. Якщо і 7 8, приростити і «- і - 1 і перейти до п. 3. 6. Переставити підблоки бо, би, Б», ... б7 у зворотному порядку. 7. Якщо г 2 А, приростити г «-г 1 і перейти до п. 2. Інакше СТОП.
Вихід: 64-бітове значення функції Е.
Аналогічно може бути побудована одностороння функція для перетворення 128-бітових блоків даних, яка може бути використана для хеширування даних.
Наведені приклади показують, що запропонований спосіб криптографічних перетворень блоків цифрових даних технічно може бути реалізований і дозволяє вирішити поставлену задачу.
Промислова придатність
Спосіб, що заявляється, може бути реалізований, наприклад, на персональних комп'ютерах і дає можливість створення на його базі швидкісних програмних модулів шифрування і заміни коштовної спеціалізованої апаратури шифрування персональним комп'ютером, оснащеним програмною системою швидкісного шифрування.
В в, р Би.
Фіг. 1 бо б б; Б. 5; бо 5;
Ки Ф | Й 2 : - -Ф сь
Кз п Ф
Кг : ще Ф і "ері в кв 05 і
В 5
Кв : п ня
Би п пи
ШИ й ваша
Фіг. 2 бо Б, Ь; 53 Б. о; бе 5; і з У у Н : -й о
М8| ее ів| фіз) ев ФМ еі5| Фів) й Перестановка підблоків .
Фіг. З

Claims (4)

1. Спосіб криптографічного перетворення І-бітових вхідних блоків цифрових даних в 1.- бітові вихідні блоки, який полягає в розбитті блоку даних на М 22 підблоки, почерговому перетворенні підблоків шляхом формування принаймні одного бінарного вектора за значенням підблоку 1 зміни підблоку з використанням бінарного вектора, який відрізняється тим, що формування бінарного вектора на наступному кроці перетворення підблоку здійснюють залежно від структури бінарного вектора на попередньому кроці перетворення підблоку.
2. Спосіб за п. 1, який відрізняється тим, що формують два бінарні вектори і один з них перетворюють за допомогою операції циклічного зсуву на число бітів, що дорівнює значенню другого бінарного вектора.
3. Спосіб за п. 1, який відрізняється тим, що зміну одного з підблоків здійснюють шляхом виконання над ним операції циклічного зсуву на число бітів, що дорівнює поточному значенню бінарного вектора.
4. Спосіб за п. 1, який відрізняється тим, що при перетворенні підблоків використовують таблиці підстановок, число яких т22, при цьому за бінарним вектором вираховують номер (у) таблиці 1 підблок змінюють за допомогою операції підстановки, що задається у-тою таблицею.
UA2000063692A 1997-11-28 1997-11-28 Спосіб криптографічного перетворення l-бітових вхідних блоків цифрових даних в l-бітові вихідні блоки UA55496C2 (uk)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU1997/000394 WO1999000930A1 (fr) 1997-11-28 1997-11-28 Procede de transformation cryptographique de blocs d'entree de donnees numeriques a l bits en blocs de sortie a l bits

Publications (1)

Publication Number Publication Date
UA55496C2 true UA55496C2 (uk) 2003-04-15

Family

ID=20130174

Family Applications (1)

Application Number Title Priority Date Filing Date
UA2000063692A UA55496C2 (uk) 1997-11-28 1997-11-28 Спосіб криптографічного перетворення l-бітових вхідних блоків цифрових даних в l-бітові вихідні блоки

Country Status (10)

Country Link
US (1) US7142673B1 (uk)
EP (1) EP1043863B1 (uk)
JP (1) JP2001509608A (uk)
KR (1) KR100350207B1 (uk)
AT (1) ATE363783T1 (uk)
DE (1) DE69737773D1 (uk)
ES (1) ES2293665T3 (uk)
PL (1) PL341508A1 (uk)
UA (1) UA55496C2 (uk)
WO (1) WO1999000930A1 (uk)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061835A1 (en) * 2005-08-05 2007-03-15 Realnetworks, Inc. System and method for registering users and devices
KR100972517B1 (ko) * 2008-02-28 2010-07-28 쌍용자동차 주식회사 자동차용 시트의 엑티브 헤드레스트
CN104022872B (zh) * 2014-04-09 2015-03-25 广州赛意信息科技有限公司 数据加密方法
US9774443B2 (en) * 2015-03-04 2017-09-26 Apple Inc. Computing key-schedules of the AES for use in white boxes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH558993A (de) 1973-03-19 1975-02-14 Patelhold Patentverwertung Verfahren und einrichtung zur verschluesselten nachrichtenuebertragung.
DE3905667A1 (de) 1989-02-24 1990-08-30 Ant Nachrichtentech Verfahren zum ver- und entschluesseln eines nachrichtenstromes
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten
US5142578A (en) * 1991-08-22 1992-08-25 International Business Machines Corporation Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
RU2024209C1 (ru) 1991-10-30 1994-11-30 Борис Владимирович Березин Устройство шифрования двоичной информации "албер"
RU2032990C1 (ru) 1992-04-28 1995-04-10 Борис Владимирович Березин Способ шифрования двоичной информации
JPH0812537B2 (ja) * 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
JP3992742B2 (ja) * 1996-05-20 2007-10-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データブロックおよび鍵を非線形的に結合する暗号方法および装置
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US6301362B1 (en) * 1998-06-12 2001-10-09 International Business Machines Corporation Method and apparatus for cryptographically transforming an input block into an output block
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels

Also Published As

Publication number Publication date
EP1043863A1 (en) 2000-10-11
EP1043863B1 (en) 2007-05-30
JP2001509608A (ja) 2001-07-24
KR20010032479A (ko) 2001-04-25
PL341508A1 (en) 2001-04-23
DE69737773D1 (de) 2007-07-12
ES2293665T3 (es) 2008-03-16
ATE363783T1 (de) 2007-06-15
US7142673B1 (en) 2006-11-28
WO1999000930A1 (fr) 1999-01-07
KR100350207B1 (ko) 2002-08-28
EP1043863A4 (en) 2002-05-22

Similar Documents

Publication Publication Date Title
Maddodi et al. A new image encryption algorithm based on heterogeneous chaotic neural network generator and dna encoding
CN100511331C (zh) 密码处理装置、密码处理方法及其计算机程序
US5623548A (en) Transformation pattern generating device and encryption function device
KR100610367B1 (ko) 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
Aboytes-González et al. Design of a strong S-box based on a matrix approach
US8787563B2 (en) Data converter, data conversion method and program
EP1927212B1 (en) Homophonic substitution symmetric key encryption
KR101032592B1 (ko) 암호 장치, 기록 매체, 및 방법
US20130132706A1 (en) Table lookup operation on masked data
US5214704A (en) Nonlinear dynamic substitution devices and methods for block substitutions
CN110572255B (zh) 基于轻量级分组密码算法Shadow的加密方法、装置及计算机可读介质
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
Verma et al. 3D-Playfair cipher with additional bitwise operation
UA55496C2 (uk) Спосіб криптографічного перетворення l-бітових вхідних блоків цифрових даних в l-бітові вихідні блоки
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
KR100411684B1 (ko) 이진 데이터 블록의 암호 변환 방법
US20090022310A1 (en) Cryptographic device and method for generating pseudo-random numbers
CN113726975A (zh) 基于混沌系统的图像加密方法、装置、介质及电子设备
CN112543096A (zh) 基于simd指令的数据处理方法、装置、设备及介质
Singh et al. Developing 3D-Playfair Cipher algorithm using structure rotation
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
RU2140709C1 (ru) Способ криптографического преобразования блоков цифровых данных
KR100308893B1 (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법
CN111342951B (zh) 流密码系统的生成方法、装置及终端设备