Ключ (криптография)
- Вижте пояснителната страница за други значения на Ключ.
Ключ в криптографията е секретна информация, използвана от криптографски алгоритъм при шифриране/дешифриране на съобщения, подписване и проверка на електронен подпис, изчисляване на кодовете за автентичност (MAC). При използване на един и същ алгоритъм резултатът от шифрирането зависи от ключа. За съвременните алгоритми за силна криптография загубата на ключа води до практическа невъзможност за дешифриране на информацията.
Съгласно принципа на Керховс (Auguste Kerckhoffs), надежността на една криптографска система трябва да се определя от скриването на секретните ключове, а не от скриването на използваните алгоритми или техните особености (т.е. трябва да се допуска, че неприятелят познава алгоритъма, но не знае ключа).
Дължина на ключа
[редактиране | редактиране на кода]Количеството информация в ключа, като правило се измерва в битове.
За съвременните симетрични алгоритми (AES, CAST5, IDEA, Blowfish, Twofish) основна характеристика за криптоусточивост е дължината на ключа в битове. Шифрирането с ключове с дължина 128 бита и повече се счита за силно, понеже за дешифрирането на информацията без валиден ключ са необходими много години работа на мощни суперкомпютри. За по-особените асиметрични алгоритми, основани на проблемите в теорията на числата (проблема Факторизация – RSA, проблема Дискретен логаритъм – Elgamal) за минимална сигурна дължина на ключа се приема 1024 бита. За асиметричните алгоритми, основани на използването на теорията на елиптичните криви (ECDSA, ГОСТ Р 34.10-2001, ДСТУ 4145-2002), минималната сигурна дължина на ключа е 163 бита, но се препоръчва дължина от 191 бита и повече.
Класификация на ключовете
[редактиране | редактиране на кода]Криптографските ключове се различават според алгоритмите, в които се изпълняват.
- Симетрични ключове – ключове, използвани в симетрични алгоритми (шифриране, изработване на код за автентичност). Главно свойство на симетричните ключове: за изпълнение както на правото, така и на обратното криптографско преобразуване (шифриране/дешифриране, изчисляване на MAC/проверка на MAC) е необходимо да се използва един и същ ключ. От една страна това осигурява по-висока конфиденциалност на съобщенията, от друга страна затруднява разпространяването на ключове в системи с много потребители.
- Асиметрични ключове – ключове, използвани в асиметрични алгоритми (шифриране, електронен подпис); общо взето са двойка ключове, понеже се състоят от два ключа:
- Частен ключ – ключ, известен само на притежателя му. Само съхраняването на тайната на частния ключ гарантира невъзможността за фалшификация от злоумишленици на документа и цифровият подпис от името на подписващия. Според българския закон това е „единият от двойка ключове, използван в асиметрична криптосистема за създаване на електронен подпис“[1]
- Публичен ключ – ключ, който може да бъде публикуван и се използва за проверка на истинността на подписания документ, а също така позволява еднозначно и по неоспорим начин да бъде определен подписващия. Публичният ключ се изчислява като стойност на някаква функция от частния ключ, но знанието му не позволява определянето на частния ключ. Според българския закон това „е единият от двойка ключове, използван в асиметрична криптосистема, който е достъпен и може да се използва от всеки за проверка на електронен подпис“.
Главното свойство на двойката ключове: с частния ключ лесно се изчислява публичния ключ, но с известен публичен ключ практически е невъзможно да се изчисли частния.
В алгоритмите на електронния подпис, обикновено се подписва с частния ключ на потребителя, а се проверява с публичния. По такъв начин, всеки може да провери действително ли дадения потребител е поставил подписа. Така асиметричния алгоритъм осигурява не само цялостност на информацията, но и нейната автентичност. При шифриране е обратно, съобщенията се шифрират с публичния ключ, а се дешифрират с частния. Така само адресатът може да дешифрира съобщението и никой друг, дори и изпращача.
Използването на асиметрични алгоритми премахва проблема с разпространението на ключове в системата, но поставя нови проблеми: достоверността на получените ключове. Тези проблеми се решават успешно с помощта на инфраструктурата за публични ключове (PKI).
- Сеансови (сесийни) ключове – ключове, изработвани между двама потребители, обикновено за защита на канала за връзка.
Източници
[редактиране | редактиране на кода]- ↑ Закон за електронния документ и електронния подпис // Архивиран от оригинала на 2009-05-25. Посетен на 2010-03-05.