- •Відповідальний за випуск а.П. Власюк, доктор технічних наук, професор,
- •Лабораторна робота №5. Тема: Програмна реалізація блочного алгоритму шифрування des
- •Var j:byte;
- •Var I,j,n,n1,n2:byte;
- •Var b:block64bits);
- •Var I:byte;
- •Var I:byte;
- •Var I:byte;
- •Var b:block64bits);
- •Var I:byte;
- •Var I:integer;
- •Var I:byte;
- •Var j:byte;
- •I:byte;
- •Var I:byte;
- •Interface
- •Var end_block64 :block64bits);// результуючий блок
- •Implementation
- •I:byte;// лічильник
- •Var end_block64 :block64bits);// результуючий блок
- •InitialTransposition64(start_block64,block64);
- •Var Sen:Tobject;
- •Var f,f1:file of char;
- •If not eof(f) then
- •Лабораторна робота №6. Тема: Режими використання блочних алгоритмів шифрування
- •1. Режим електронної шифрувальної книги (electronic codebook, ecb) або інша назва - режим простої заміни.
- •3. Режим зворотнього зв’язку по шифротексту (cipher-feedback, сfb)
- •4. Режим зворотнього зв’язку по виходу ofb (output-feedback)
- •Лабораторна робота №7. Тема: Блочні алгоритми шифрування на основі des
- •Var end_block64 :block64bits);// результуючий блок
- •Завдання для самостійної роботи.
- •Перелік питань до заліку з предмету "Основи захисту і кодування інформації"
- •Interface
- •I,j,FileLen:integer; f,f1,f2: file of char;
- •If not eof(f) then
- •Англо-український словник криптографічних термінів
- •Матеріали в Інтернеті
- •Література
- •Методичні вказівки та матеріали
Лабораторна робота №6. Тема: Режими використання блочних алгоритмів шифрування
Мета роботи. Вивчити особливості використання блочних шифрів в режимах електронної шифрувальної книги ECB , зчеплення блоків шифру CBC, зворотнього зв’язку по шифротексту CFB та вихідного зворотнього зв’язку OFB.
Теоретичні відомості
При використанні блочного шифру інформація поступає на вхід шифруючого пристрою (мікросхеми чи програми) порціями однакової довжини - блоками, кожен з яких шифрується окремо.
1. Режим електронної шифрувальної книги (electronic codebook, ecb) або інша назва - режим простої заміни.
Самий простий і поширений режим роботи - кожен блок тексту шифрується окремо і незалежно один від одного. Однакові частини тексту будуть також однаковими в зашифрованому вигляді, що значно ослаблює ефективність шифрування, бо в електронній пошті часто зустрічаються однакові чи дуже подібні документи, наприклад, грошові рахунки, запити, стандартні заголовки і закінчення документів, а також довгі послідовності однакових символів - нулів чи пропусків.
Позитивна властивість - якщо при передачі будуть спотворені окремі біти чи байти, спотворення не вплине на інші блоки і вони будуть успішно розшифровані. Цей режим реалізований в попередніх лабораторних роботах.
Рис.12 "Викрадення" останнього блоку в режимі ЕСВ.
Проблема останнього неповного блока.
Більшість повідомлень точно не діляться на довжину блока шифрування, тому в кінці опиняється останній вкорочений блок. В режимах ЕСВ і СВС блоки повинні бути 64-бітовими. Простим способом розв’язку цієї проблеми є набивка: останній блок доповнюється регулярним шаблоном - деякою комбінацією нулів і одиниць. Якщо потрібно вилучати набивку після дешифрування, в останній байт останнього блока записують кількість байтів набивки. Для коректної роботи методу потрібно доповнювати пустий блок навіть для випадку, якщо повідомлення містить ціле число блоків.
Інший варіант - "викрадення" шифротексту наведений на рис.17. Pn-1 - останній повний блок відкритого тексту, Pn - останній, короткий блок відкритого тексту, Сn-1 - останній повний блок шифротексту, Pn - останній, короткий блок шифротексту, С' -проміжний результат.
2
.
Режим зчеплення блоків шифру (cipher
block chaining, CBC)
Результати
шифрування попередніх блоків впливають
на шифрування чергового блока. Кожен
блок шифротексту залежить не тільки
від блоку тексту, який шифрується, але
і від всіх попередніх блоків тексту.
Рис.13 Режим зчеплення блоків шифротексту СВС.
Перед шифруванням чергового блоку тексту виконується побітова логічна операція XOR з ним та попереднім вже зашифрованим блоком, який зберігається у спеціальному буфері (регістрі) зворотнього зв’язку після закінчення попереднього кроку. Розшифровування відбувається за тією ж схемою.
Математичний запис шифрування Ci = Ek ( Pi Ci-1 )
розшифровування Pi = Ci-1 Dk ( Ci )
Вектор ініціалізації. В методі СВС однакові блоки будуть виглядати по-різному, але однакові повідомлення, так само, як і в ЕСВ, виглядатимуть однаково. Для запобігання цього на початку шифрування в регістр зворотнього зв’язку можна записувати згенероване випадкове значення, яке можна передавати відкрито на початку повідомлення і завантажувати в буфер розшифровуючого пристрою. В цей нульовий блок С0 рекомендується включати мітки дати та часу, які зчитуються із системного годинника, кодуються чи шифруються за певною схемою і ускладнюють підробку чи повторне посилання перехоплених документів (наприклад, грошових переказів) зловмисниками.
П
роблема
останнього блоку. Нехай
останній блок містить L
бітів.
Після шифрування останнього повного
блока знову шифрується шифротекст, з
результату вибирається L
бітів
і виконується
операція XOR
з
коротким блоком. Хоча останній блок не
може бути розшифрований, але він може
бути непомітно спотворений зловмисниками.
Якщо останні біти повідомлення містять
важливу інформацію, це небезпечно.
Кращим методом є "викрадення"
шифротексту (рис.14)
Рис.14 "Викрадення" останнього блоку шифротексту в режимі СВС.
Поширення помилки. Режим СВС характерний прямим зворотнім зв’язком з шифротекстом при шифруванні та інверсним оберненим зв’язком при дешифруванні. Єдина бітова помилка у відкритому тексті вплине на даний блок та на всі інші. Це не страшно, бо дешифрування інвертує цей ефект і відновлений після дешифрування текст міститиме ту саму єдину помилку. Частіше зустрічаються помилки в шифротексті. Блок, який містить єдину помилку, буде повністю спотворений при дешифруванні. Ця помилка вплине також при дешифруванні на наступний блок. Тому одна бітова помилка викликає спотворення двох блоків. Поширення помилки шифротексту є головним недоліком режиму СВС.
Потокові шифри. В багатьох випадках, наприклад, при передачі термінових команд чи повідомлень, інформацію потрібно передавати негайно, не чекаючи накопичення повного блоку, необхідного для початку шифрування. Для негайного шифрування послідовностей бітів чи байтів найчастіше використовуються алгоритми гамування - накладання послідовностей псевдовипадкових чисел (див. лабор. роботу 4). Можна також використовувати для шифрування блочні алгоритми (мікросхеми) в спеціальних криптографічних режимах для k бітів (1<k<63) зі зворотнім зв’язком. Це, зокрема, дозволяє шифрувати дані посимвольно (k=8).
