Кіріспе

Шифрмәтін ұзындығы шифрды нақты бұзу үшін қажет. Криптографияда бірлік қашықтығы – күшпен іздеу арқылы шифрды бұзу үшін, мүмкін болатын қате кілттер санын нөлге дейін азайтуға қажетті шифрмәтін ұзындығы. Яғни, барлық мүмкін кілттерді сынап көргеннен кейін, тек бір ғана дұрыс шешілім болуы керек, яғни негізгі хабарламада қайталану болса, кілтті толық анықтау үшін қажетті шифрмәтін мөлшері. Клод Шеннон 1949 жылғы "Секретті жүйелердің коммуникация теориясы" атты мақаласында бірлік қашықтығын анықтады. "WNAIW" шифрмәтін тізбегіне шабуыл жасауды қарастырайық, ол бес әріпті кілтті пайдаланып Vigenère шифрымен шифрланған. Теориялық тұрғыдан алғанда, бұл тізбекті кез келген басқа тізбекке ашуға болады – RIVER және WATER белгілі бір кілттер үшін мүмкін жауаптар. Бұл криптоанализдің жалпы ережесі: қосымша ақпарат болмаса, бұл хабарды ашу мүмкін емес. Әрине, тіпті осы жағдайда да, бес әріпті кілттердің тек белгілі бір саны ғана ағылшын тіліндегі сөздерді шығарады. Барлық мүмкін кілттерді сынап көрсек, біз тек RIVER және WATER ғана емес, сонымен қатар SXOOS және KHDOP-ты да аламыз. "Жұмыс істейтін" кілттердің саны барлық мүмкін кілттер жиынынан әлдеқайда аз болады. Мәселе – осы "жұмыс істейтін" кілттердің қайсысы дұрыс екенін білуде; қалғандары – жалған.

Кілттің өлшемімен және мүмкін жай мәтінмен байланыс

Жалпы, кілттің мөлшері және мүмкін болатын хабарламалар саны туралы нақты болжамдарды ескере отырып, оқылмалы хабарламаны шығаратын бір ғана кілт (орташа есеп бойынша) болатын шифрмәтіннің орташа ұзындығы бар. Жоғарыдағы мысалда тек үлкен әріптермен жазылған ағылшын әріптерін көреміз, сондықтан жай мәтін осы форматта екенін есептесек, тізбектегі әр позиция үшін 26 мүмкін әріп болады. Сол сияқты, егер бес таңбалы үлкен әріптерден тұратын кілттерді қарастырсақ, онда K = 26⁵ мүмкін кілт болады, олардың көпшілігі «жұмыс істемейді». Тіпті осы шектеулі әріптер жиынтығын пайдаланып, N = 26ᴸ болатын, өте көп мүмкін хабарламалар N жасауға болады, мұнда L – хабарламаның ұзындығы. Дегенмен, олардың тек шағын бөлігі ғана тілдің ережелеріне сәйкес оқылмалы жай мәтін болады, шамамен M, мұнда M-нің N-ден әлдеқайда кіші болуы мүмкін. Сонымен қатар, M жұмыс істейтін кілттер санымен бір-бірге сәйкес келеді, сондықтан K мүмкін кілт болғанда, олардың тек K × (M/N) бөлігі «жұмыс істейді». Олардың бірі дұрыс кілт, ал қалғаны – жалған кілттер. Хабарламаның ұзындығы L ұлғайған сайын M/N мәні кез келгендей кішірейетініне байланысты, ақырында жалған кілттердің санын нөлге теңетейтін жеткілікті үлкен L болады. Дәл осы L, KM/N = 1 теңдеуін қанағаттандырады. Осы L – бірлік қашықтық.

Қосалқы шифрдың бірлік арақашықтығы

Қарапайым алмастыру шифры үшін мүмкін кілттер саны алфавитты ауыстырудың мүмкін жолдарының санына тең. Барлық кілттердің тең мүмкіндікке ие екенін ескерсек, бит. Ағылшын тілі үшін, сондықтан 28 таңбалы шифрмәтін берілген жағдайда, теориялық тұрғыдан ағылшын тіліндегі түпнұсқа мәтінді және осы арқылы кілтті анықтау мүмкін.

Іс жүзінде қолдану

Бірлік қашықтығы пайдалы теориялық өлшем, бірақ нақты ресурстарға (шектелген) ие қарсылас шабуыл жасағанда блок шифрінің қауіпсіздігі туралы көп мәлімет бермейді. Шифрмәтіннің үш блогынан тұратын бірлік қашықтығы бар блок шифрін қарастырайық. Егер есептеу мүмкіндіктері шектеулі қарсыласқа дұрыс кілтті табу үшін жеткілікті ақпарат болса да (қарапайым толық іздеу), бұл практикада есептеу жағынан мүмкін болмауы мүмкін. Бірлік қашықтығын ашық мәтіннің артық ақпаратын азайту арқылы арттыруға болады. Мұны істеудің бір жолы – шифрлау алдында деректерді сығу техникаларын қолдану, мысалы, оқылымдылықты сақтай отырып, артық дауысты әріптерді жою. Бұл бәрібір жақсы идея, себебі ол шифрлауға жататын дерек көлемін азайтады. Бірлік қашықтығынан үлкен шифрмәтіндердің тек бір ғана мағыналы түсіндірілуі бар деп есептеуге болады. Бірлік қашықтығынан қысқа шифрмәтіндердің бірнеше мүмкін түсіндірілулері болуы мүмкін. Бірлік қашықтығы криптоанализ үшін қанша шифрмәтін қажеттігін өлшемейді, бірақ криптоанализ үшін тек бір ғана логикалық шешім болуы үшін қанша шифрмәтін қажеттігін көрсетеді.