Кіріспе
Хабарды шифрлау әдісі
Криптологияда код – мағына деңгейінде жұмыс істейтін хабарды шифрлау әдісі, яғни сөздер немесе сөз тіркестері басқа нәрсеге ауыстырылады. Кодпен «өзгеріс» сөзін «CVGDK» немесе «коктейль зал» деп өзгертуге болады. АҚШ Ұлттық қауіпсіздік агенттігі кодты былай анықтады: «Ашық мәтін элементтері негізінен сөздер, сөз тіркестері немесе сөйлемдер болып табылатын, ал кодтық баламалар («кодтық топтар» деп аталады) әдетте әріптерден немесе цифрлардан (немесе екеуінен де) тұрады, әйтпесе бірдей ұзындықтағы мағынасыз комбинациялар». Фразаларды немесе сөздерді шифрлау және дешифрлеу үшін кодтар кітабы қажет. Ал шифрлар жеке әріптер, әріптердің шағын топтары немесе тіпті қазіргі шифрларда жеке биттер деңгейінде хабарларды шифрлайды. Хабарлар алдымен кодпен, содан кейін шифрмен түрлендірілуі мүмкін. Мұндай көп ретті шифрлау немесе «супершифрлау» криптоанализді қиындатуға бағытталған. Кодтар мен шифрлар арасындағы тағы бір айырмашылық – код әдетте математика қолданбай-ақ әріптерді немесе әріптер тобын тікелей көрсетеді. Сондықтан сандар осы үш мәнді көрсету үшін конфигурацияланады: 1001 = A, 1002 = B, 1003 = C. Соның нәтижесінде алынған хабар 1001 1002 1003 болып, ABC хабарламасын жеткізеді. Шифрлар болса, әріптерді немесе әріптер тобын көрсету үшін математикалық формула қолданады. Мысалы, A = 1, B = 2, C = 3. Осылайша ABC хабарламасы әр әріптің мәнін 13-ке көбейту арқылы алынады. ABC хабарламасы 13 26 39 болады. Кодтардың түрлі кемшіліктері бар, оның ішінде криптоанализге осалдығы және ауыр код кітаптарын басқарудың қиындығы. Сондықтан шифрлар қазіргі заманғы криптографияда басым техника болып табылады. Кодтар бейнелеуші болғандықтан, олар жеке код кітапшасының элементтерін математикалық талдауға жарамсыз. Мысалы, 13 26 39 хабарламасын әр санды 13-ке бөліп, оларды әліпбилік ретпен орналастыру арқылы бұзуға болады. Алайда, код кітапшасының криптоанализінің негізгі мақсаты – жиілік талдауын қолдана отырып, ашық мәтіндегі әріптердің жиілігімен сәйкес келетін жеке код элементтерінің салыстырмалы жиілігін анықтау. Жоғарыдағы мысалда, 1001, 1002, 1003 кодтық тобы бірнеше рет кездесуі мүмкін, ал бұл жиілік ABC жай мәтіндік хабарламаларда кездесетін рет санымен сәйкес келуі мүмкін. (Бұрынғыда немесе техникалық емес контексттерде код және шифрлау сөздері шифрлаудың кез келген түрін білдіруі мүмкін).
Бір және екі бөлімді кодтар
Кодтар «код кітаптарымен» (физикалық немесе ойдағы) анықталады, олар код топтарының сөздіктері болып табылады, олар сәйкес келетін қарапайым мәтінмен тізімделеді. Кодтар бастапқыда код топтарын «қарапайым мәтін тәртібімен» тағайындады, бұл кодты жасаушының немесе кодтаушының ыңғайлылығы үшін жасалған. Мысалы, сандық код топтарын пайдаланатын кодта «a» әріпінен басталатын қарапайым мәтіндік сөздің төменгі мәнді тобы болады, ал «z» әріпінен басталатын сөздің жоғары мәнді тобы болады. Осы код кітабын қарапайым мәтінді хабарды кодталған хабарға немесе «кодталған мәтінге» «кодтау» үшін және кодталған мәтінді қарапайым мәтінді хабарға «декодтау» үшін пайдалануға болады. Кодты бұзушылардың жұмысын қиындату үшін код жасаушылар код топтары мен сәйкес келетін қарапайым мәтіннің реті арасында болжамды байланыссыз кодтар жасады. Іс жүзінде бұл екі код кітабы қажет болды: біреуі кодтау үшін код топтарын табуға, екіншісі декодтау үшін код топтарын қарапайым мәтінді табуға. Мұндай «екі бөлімді» кодтарды әзірлеуге көбірек күш-жігер қажет болды, таратуға екі есе көп күш-жігер жұмсалды (және ауыстырылған кезде қауіпсіз түрде жою қажет болды), бірақ оларды бұзу қиын болды. 1917 жылдың қаңтар айында Циммерманн телеграммасында неміс дипломатиялық «0075» екі бөлімді код жүйесі қолданылды, онда 10 000-нан астам сөз тіркестері мен жеке сөздер болды.
Ақымақ код
Идиоттық код – оны қолданушы тараптар құратын код. Бұл коммуникация түрі, әскерлердегі қол сигналдарына ұқсас. Мысал: «күн» және «түн» сөздері қолданылған кез келген сөйлем «шабуыл» дегенді білдіреді. Келесі сөйлемде көрсетілген орын шабуылға түсуге тиіс жерді анықтайды. Ашық мәтін: X-ке шабуыл жасау.
Кодталған мәтін: Біз күні-түні көшеде жүрдік, бірақ таба алмадық! Ертең X-ке бет түзеуіміз керек. Бұл терминнің алғашқы қолданылуы Роберт А. Хайнлайнның ғылыми-фантастикалық «Жұма» кітабындағы Джордж Перро есімді кейіпкерге жатқызылады:
Codetext: We walked day and night through the streets but couldn't find it! Tomorrow we'll head into X. An early use of the term appears to be by George Perrault, a character in the science fiction book Friday by Robert A. Heinlein:
Ең қарапайым [код] түрі және осылайша бұзу мүмкін емес. Бірінші хабарда тиісті адамға немесе адамдарға жеті санды орындау немесе жеті санын күту туралы айтылған, немесе жеті деп белгіленген бір нәрсе туралы мәлімдеме жасалған. Бұл да кодтың 10-шы тармағына қатысты солай. Бірақ сандардың мағынасын статистикалық талдау арқылы анықтауға болмайды, себебі код пайдалы статистикалық мәліметтер жинақталғанға дейін көп рет өзгертілуі мүмкін. Бұл – ақымақ код, және егер пайдаланушы жиі бір орынға бармаса, оны бұзу мүмкін емес. Терроризм сарапшысы Магнус Рансторп АҚШ-қа жасалған 11 қыркүйек шабуылын ұйымдастырған адамдар өз жоспарларын талқылау үшін қарапайым электрондық пошта мен «ақымақ кодты» қолданғанын айтты.
Үстеме шифрлау
Хабарды криптоанализді қиындату үшін, алдымен кодтаудан кейін шифрлеу әдеттегі жағдай болды. Сандық кодтарда бұл көбінесе "қосымша" арқылы жасалатын, яғни кодтық топтарға сандық түрде ұзын кілт нөмірін 10-дық модуль бойынша қосу. Код кітаптарынан өзгеше, қосымшалар жиі өзгертіліп отыратын. Жапондық Әскери-теңіз күштерінің танымал JN 25 коды осы принцип бойынша құрылған.