| Назва: | Криптографічний алгоритм 3DES |
| Тип: | Реферати |
| Мова: | Українська |
| Розмiр: | 67,09 KB |
| Скачувань: | 52 |
Параметр hHash дозволяє паралельно із шифруванням/дешифруванням проводити хеширування даних для наступного електронного підпису або його перевірки. Прапор Final визначає, чи є шифрований блок даних останнім. Він необхідний, оскільки дані можна шифрувати по частинам, але для останнього блоку завжди виконується певна деініціалізація алгоритму (звільняються внутрішні структури), і багато алгоритмів роблять додавання (і перевірку коректності при дешифруванні) заповнювача (padding) після основних даних. Параметри pbData й pdwDataLen задають адреса буфера й розмір шифрованих даних. Для блоку даних (Final=FALSE) розмір даних повинен бути завжди кратний розміру шифрованого алгоритмом блоку (для 3DES й DES цей розмір дорівнює 64 бітам). Для останнього блоку допускається порушення цієї умови.
Помітимо, що зашифровані дані містяться в тому самому буфері поверх вихідних.
Останній параметр функції CryptEncrypt - dwBufLen може здатися дивним. Навіщо нам розмір буфера, якщо ми й так знаємо розмір вхідних даних? Однак насправді він необхідний. Багато алгоритмів додають заповнювач в останній блок після основних даних. У цьому випадку розмір зашифрованих даних може виявитися більшим, ніж розмір вихідних даних. І результат може просто не вміститися в буфер! Тому варто заздалегідь вказати розмір буфера, що перевищує максимальний розмір відкритих даних, що поміщають у його. Для DES й 3DES максимально можливий довісок становить 64 біта, тобто 8 байт.
Криптографічний алгоритм потрійний DES
Ідея використання потрійного DES з парою ключів відносно проста: якщо ключі однакові, то результат шифрування еквівалентний однократному шифруванню. Це забезпечує повну сумісність із існуючими системами розподілу й використання ключів як на однократному, так і на подвійному DES (подвійний DES - послідовне застосування однократного). Алгоритм 3DES створювався для запобігання шахрайства при заснованих на PIN-коді транзакціях ініційованих банкоматом або POS-терміналом. Існуючі зараз стандарти описують керування майстрами-ключами 3DES і процедуру обчислення унікального ключа транзакції - 3DES DUKPT (Derived Unique Key Per Transaction). Однак у них відсутній стандарт, що визначає керування ключами сесії. Без цього стандарту кожному виробникові доводитися розробляти власні реалізації обміну ключами сесії, що тільки ускладнює їхні системи.
DES означает Data Encryption Standard - стандарт шифрування даних. DES – це 64-бітовий блочний шифр з 64-бітовим ключем. Останній біт кожного байта в ключі є бітом парності, так що ефективна довжина ключа складає тільки56 біт. Це занадто мало, атака грубою силою на спеціалізованій машині займе менше доби. Потрійний DES (Triple DES) чи 3DES – це DES, що виконується тричі з різними ключами. Таким чином потрійний DES – це 64-бітовий блочний шифр з 168-бітови ключем (плюс 24 біта парності). Оригінальний DES досліджувався багато років, тому експерти вважають 3DES дуже надійним. Недоліком є те, що він значно повільніше всіх інших алгоритмів: DES сам по собі доволі повільний через застосування бітових перестановок, що ефективно розробляються на спеціальних мікросхемах, але набагато гірше на універсальних комп’ютерах, а з 3DES потрібно виконати три операції, щоб отримати захищеність двох. Єдина причина, чому варто застосовувати потрійний DES – це те, що він дуже добре вивчений. Це шифр для консерваторів.
3DES – найцікавіший блочний шифр PGP. Багаторазове зашифровування робить шифр сильнішим, але не обходиться і без проблем. Крім того, DES не є таким хорошим як інші шифри. Є атаки на 16-раундне шифрування DES, що робить 3DES найсумнівнішим шифром PGP.
Вже досить давно інформація шифрується не одинарним, а потрійним DES. Де Ek й Dk позначають відповідно зашифрування й розшифрування ключем k. Цей режим шифрування іноді називається DES-EDE. Інший варіант - DES-EEE, що складається із трьох послідовних шифрувань. Існують три можливих варіанти, певні в ANSI X9.52 для DES-EDE:
Три ключі k1, k2 й k3 незалежні.
k1 й k2 незалежні, але k1 = k3.
k1 = k2 = k3.
У третьому випадку TripleDES назад сполучимо з DES. Подібно всім блоковим шифрам, TripleDES може використовуватися різними способами. ANSI X9.52 описує сім таких способів, з яких широко використовуються чотири.
Використання подвійного й потрійного шифрування не завжди забезпечує додаткову безпеку, як цього можна було очікувати. Наприклад, розглянемо атаку “зустріч посередині” на подвійне шифрування [DH77]. Є симетричний блоковий шифр із розміром ключа n; нехай Ek (P) позначає шифрування повідомлення P ключем k. При шифруванні двома різними ключами повний розмір ключа становить 2n.
Помітимо, що зашифровані дані містяться в тому самому буфері поверх вихідних.
Останній параметр функції CryptEncrypt - dwBufLen може здатися дивним. Навіщо нам розмір буфера, якщо ми й так знаємо розмір вхідних даних? Однак насправді він необхідний. Багато алгоритмів додають заповнювач в останній блок після основних даних. У цьому випадку розмір зашифрованих даних може виявитися більшим, ніж розмір вихідних даних. І результат може просто не вміститися в буфер! Тому варто заздалегідь вказати розмір буфера, що перевищує максимальний розмір відкритих даних, що поміщають у його. Для DES й 3DES максимально можливий довісок становить 64 біта, тобто 8 байт.
Криптографічний алгоритм потрійний DES
Ідея використання потрійного DES з парою ключів відносно проста: якщо ключі однакові, то результат шифрування еквівалентний однократному шифруванню. Це забезпечує повну сумісність із існуючими системами розподілу й використання ключів як на однократному, так і на подвійному DES (подвійний DES - послідовне застосування однократного). Алгоритм 3DES створювався для запобігання шахрайства при заснованих на PIN-коді транзакціях ініційованих банкоматом або POS-терміналом. Існуючі зараз стандарти описують керування майстрами-ключами 3DES і процедуру обчислення унікального ключа транзакції - 3DES DUKPT (Derived Unique Key Per Transaction). Однак у них відсутній стандарт, що визначає керування ключами сесії. Без цього стандарту кожному виробникові доводитися розробляти власні реалізації обміну ключами сесії, що тільки ускладнює їхні системи.
DES означает Data Encryption Standard - стандарт шифрування даних. DES – це 64-бітовий блочний шифр з 64-бітовим ключем. Останній біт кожного байта в ключі є бітом парності, так що ефективна довжина ключа складає тільки56 біт. Це занадто мало, атака грубою силою на спеціалізованій машині займе менше доби. Потрійний DES (Triple DES) чи 3DES – це DES, що виконується тричі з різними ключами. Таким чином потрійний DES – це 64-бітовий блочний шифр з 168-бітови ключем (плюс 24 біта парності). Оригінальний DES досліджувався багато років, тому експерти вважають 3DES дуже надійним. Недоліком є те, що він значно повільніше всіх інших алгоритмів: DES сам по собі доволі повільний через застосування бітових перестановок, що ефективно розробляються на спеціальних мікросхемах, але набагато гірше на універсальних комп’ютерах, а з 3DES потрібно виконати три операції, щоб отримати захищеність двох. Єдина причина, чому варто застосовувати потрійний DES – це те, що він дуже добре вивчений. Це шифр для консерваторів.
3DES – найцікавіший блочний шифр PGP. Багаторазове зашифровування робить шифр сильнішим, але не обходиться і без проблем. Крім того, DES не є таким хорошим як інші шифри. Є атаки на 16-раундне шифрування DES, що робить 3DES найсумнівнішим шифром PGP.
Вже досить давно інформація шифрується не одинарним, а потрійним DES. Де Ek й Dk позначають відповідно зашифрування й розшифрування ключем k. Цей режим шифрування іноді називається DES-EDE. Інший варіант - DES-EEE, що складається із трьох послідовних шифрувань. Існують три можливих варіанти, певні в ANSI X9.52 для DES-EDE:
Три ключі k1, k2 й k3 незалежні.
k1 й k2 незалежні, але k1 = k3.
k1 = k2 = k3.
У третьому випадку TripleDES назад сполучимо з DES. Подібно всім блоковим шифрам, TripleDES може використовуватися різними способами. ANSI X9.52 описує сім таких способів, з яких широко використовуються чотири.
Використання подвійного й потрійного шифрування не завжди забезпечує додаткову безпеку, як цього можна було очікувати. Наприклад, розглянемо атаку “зустріч посередині” на подвійне шифрування [DH77]. Є симетричний блоковий шифр із розміром ключа n; нехай Ek (P) позначає шифрування повідомлення P ключем k. При шифруванні двома різними ключами повний розмір ключа становить 2n.