Upload
slyone
View
50
Download
6
Embed Size (px)
DESCRIPTION
криптография
Citation preview
Криптографски методи и защита на данните
Симетрични и асиметрични
криптографски алгоритми, хеш-функции
Симетрични криптографски алгоритми
DES и Triple-DES• Des e Разработен от IBM и възприет от NIST (националният институт
на САЩ за стандартизация и технологии) като федерален стандарт през 1976 • Одобрен за ANSI стандарт през 1981• Използван за шифриране и защитаване на информация в САЩ• Препоръчван от Американската асоциация на банките (АВА)• Вграден е в множество хардуерни и софтуерни продукти• Заменен от AES (Advanced Encryption Standard) заради малкия си
ключ от 56 бита• В съвремието все още е използва Triple DES• Triple-DES се използва когато цената за разбиване на информацията
е по- голяма от стойността на самата информация
AES - Advanced Encryption Standard• Разработен е от двамата белгийски криптографи Джон Даймън и
Винсънт Рижмън
• Утвърден от NIST (националният институт на САЩ за стандартизация и технологии) през 2001
• Към момента AES стандарта се използва в цял свят
Други симетрични криптографски алгоритми• CAST • Кръстен на създателитеси: Карлисъл Адамс (Carlisle Adams) и Стафорд
Таварес (Stafford Tavares)
• Високоскоростен шифър, понастоящем не е известна по-ефективна практична криптоатака на CAST от атаката на грубата сила.
• Разпространява се безплатно
• Използва 64-битов или 128 битов ключ (CAST-128)
Други симетрични криптографски алгоритми• IDEA (International Data Encryption Algorithm)
• Създаден е през 1990 г.
• Използва се както хардуерно така и софтуерно
• Един от най-разпространените и сигурни криптографски алгоритми.
Други симетрични криптографски алгоритми• Blowfish• Създаден е през 1993 г. от Bruce Schneier от фирма Counterpane Systems.
• Не е патентован и е достъпен за общо ползване
• Около 2,5 пъти по-бърз от DES;
Други симетрични криптографски алгоритми• ГОСТ (28147-89)
• приет като държавен стандарт за шифриране на данни от Комитета по стандартизация на бившия Съветски съюз, а впоследствие - като федерален стандарт на Русия
• Използван е от Централната руска банка и други институции
• Аналог на американския DES
• По добър от DES, по бърз, по- лесен за реализация
• Използва 256 битов ключ
Други симетрични криптографски алгоритми• RC5• Представлява блоков алгоритъм проектиран от Рон Ривест (Ron Rivest) за
RSA Data Security
• Дължините на обработвания блок, на ключа и броят на итерациите са променливи величини.
• Изисква 23 такта за байт кодирана информация на Intel Pentium процесор. За сравнение някой от по- горните алгорими изискват между 40 и 120 такта.
Други симетрични криптографски алгоритми• А5
• класически потоков шифър, базиран на линейни преместващи регистри с обратни връзки (LFSR)
• Използва се в GSM стандарта - с А5 се шифрира линията от потребителския телефон до базовата станция
• FEAL• създаден в NTT-Япония от Акихиро Шимицу (Akihiro Shimizu) и Шоджи Миягучи
(Shoji Miyaguchi) и се базира на идеите на DES.
• Патентован е в САЩ и други страни. Използва 64-битов ключ и подобно на DES, обработва блокове с дължина 64 бита. В сравнение с DES, FEAL е значително по-неустойчив срещу диференциален криптоанализ.
Асиметрични криптографски алгоритми
RSA (Rivest Shamir Adleman) • Разработен през 1977 г. от Ron Rivest, Adi Shamir и Leonard Adleman• Патентован е само в САЩ със срок до 20.09.2000 г. • Възприет от ISO, CCITT (ITU-T), ANSI, американските и австралийските
банки, френската финансова сфера и т.н• Използва се в криптосистемите PGP и PEM, в електронната търговия,
кредитните картни системи, Internet-браузърите и др.• Софтуерната реализация на RSA е около 100 пъти по-бавна от DES, а
хардуерната реализация - 1000 пъти.• За реализацията на RSA са необходими специални библиотеки или
схемни решения за реализиране на целочислена аритметика за работа с големи числа, определянето на ключовете, намирането на големи прости числа (над 100 и 200-значни) .
Diffie-Hellman (ключов протокол)• Алгоритъм за обмен на ключове (Public-Key Key-Exchange
Algorithms).
• Не е предназначен за шифриране на съобщения и цифрови подписи.
• Патентован в САЩ и Канада, но срокът на патента е изтекъл на 29 април 1997 г. и към момента се разпространява свободно.
DSA (Digital Signature Algorithm)• Представен през Август 1991
• Разработен от NSA (National Security Agency) и NIST (националният институт на САЩ за стандартизация и технологии) за стандарта – “Digital Signature Standard“ (DSS)
• Защита на некласифицираната информация. Предназначен за използване в електронната поща, електронния трансфер на суми, обмяната на електронни данни и др.
• Ключове с дължина от 512 до 1024 бита
• Включен в PGP
Еднопосочнихеш-функции
Еднопосочни хеш-функця MD5• MD5 - Message Digest 5 - съкратено съобщение или извлечение на
съобщението
• Създадени от Рон Ривест (Ron Rivest) за RSA Data Security през 1991 г.
• Функцията предоставя 128 битови извлечения (хеш-стойности)
SHA (Secure Hash Algorithm)• Разработена от NSA и NIST (основно от NSA) в рамките на стандарта SHS
(Secure Hash Standard) и е предназначена за използване в DSS (Digital Signature Standard)
• SHA-1 - Функцията предоставя 160 битови (20 байтови) извлечения (хеш-стойности)
• SHA-2 – набор от криптографски функци с 224, 256, 384 или 512 битови извлечения (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256).
• Открити дефекти през 2005 г. – обявен конкурс за SHA3, който да влезе в употреба от 2012 г.
Други еднопосочни хеш- алгоритми
• Snefru
• N-hash
• Haval
• RIPEMD-128
Кодиране на криптографските алгоритми и хеш- функции
Base64 кодиране
• Base64 представлява двоично кодиран текст.
• Гарантира, че данните ще бъдат предадени и получени успешно и няма да се получи грешка предизвикана от използването на различни кодови таблици.
• Използва 6 bit за кодиране на всеки символ
11 11 11(2) = 63(10)
Base64 кодова таблица
Съпоставка на ASCII и Base64
Преобразуване между ASCII и Base64• текст: pleasure. Кодира се като: cGxlYXN1cmUu• текст: leasure. Кодира се като: bGVhc3VyZS4=• текст: easure. Кодира се като: ZWFzdXJlLg==• текст: asure. Кодира се като: YXN1cmUu• текст: sure. Кодира се като: c3VyZS4=
Шестнайсетично представянеbyte b = 0b00111111; // b=63(10); b=3F(16)
• 0011(2) = 3(16)
• 1111(2) = F(16)
Извличане на първите четири бита:byte b1 = b >>> 4; Резултат: b1 = 0000 0011(2) = 3(16)
Извличане на вторите четири бита:byte b2 = b & Ox0F; // 00111111 & Ox0F;byte b2 = b & Ob00001111; // 00111111 & 00001111;
Резултат: b2= 0011 1111 & 0000 1111 = 0000 1111(2) = F(16)