Affin shifri - Affine cipher

Afinaviy shifr - bu turi monoalfabetik almashtirish shifri, bu erda alfavitdagi har bir harf raqamli ekvivalenti bilan xaritada olinadi, oddiy matematik funktsiya yordamida shifrlanadi va yana harfga aylantiriladi. Amaldagi formulalar shuni anglatadiki, har bir harf boshqa bir harfga shifrlanadi va yana qaytib keladi, ya'ni shifr aslida qaysi harf qaysi tomonga borishini belgilaydigan qoida bilan standart almashtirish shifridir. Shunday qilib, u barcha almashtirish shifrlarining zaif tomonlariga ega. Har bir harf funktsiya bilan shifrlangan (bolta + b) 26-mod, qayerda b siljish kattaligi.

Tavsif

Afinali shifrda kattalikdagi alifbo harflari m birinchi navbatda diapazondagi butun sonlarga mos keladi 0 … m − 1. Keyin foydalanadi modulli arifmetik har bir oddiy matnli harf mos keladigan butun sonni shifrlangan matn harfiga mos keladigan boshqa butun songa aylantirish uchun. Bitta harf uchun shifrlash funktsiyasi

qaerda modul m alfavitning kattaligi va a va b shifrning kalitlari. Qiymat a shunday tanlanishi kerak a va m bor koprime. Parolni hal qilish funktsiyasi quyidagicha

qayerda a−1 bo'ladi modulli multiplikativ teskari ning a modul m. Ya'ni, bu tenglamani qondiradi

Multiplikativ teskari a faqat agar mavjud bo'lsa a va m nusxa ko'chirish. Shuning uchun cheklovsiz a, parolni hal qilishning iloji bo'lmasligi mumkin. Quyidagi tarzda ko'rsatish mumkinki, parol hal qilish funktsiyasi shifrlash funktsiyasiga teskari,

Zaif tomonlari

Afinali shifr hali ham mono alifbo bilan almashtiriladigan shifr bo'lganligi sababli, u ushbu shifrlar sinfining zaif tomonlarini meros qilib oladi. The Qaysar shifri bilan affin shifridir a = 1 chunki shifrlash funktsiyasi shunchaki chiziqli siljishgacha kamayadi. The Atbash shifri foydalanadi a = -1.

Ingliz tilidagi xabarlarni shifrlashning aniq holatini ko'rib chiqish (ya'ni. m = 26), 26 ta ahamiyatsiz Qaysar shifrlarini hisobga olmaganda, jami 286 ta ahamiyatsiz afine-shifr mavjud. Bu raqam 12 ta raqam mavjudligidan kelib chiqadi koprime 26 bilan 26 dan kam (bu mumkin bo'lgan qiymatlar a). Ning har bir qiymati a 26 xil qo'shimcha siljishlarga ega bo'lishi mumkin (the b qiymati); shuning uchun 12 × 26 yoki 312 ta kalit mavjud. Ushbu xilma-xillikning yo'qligi tizimni juda xavfli deb hisoblaydi Kerxofs printsipi.

Shifrning asosiy zaifligi shundaki, agar kriptanalizator kashf eta olsa (yordamida) chastota tahlili, qo'pol kuch, taxmin qilish yoki boshqa usulda) ikkita shifrlangan matnning aniq matnini, keyin kalitni echish orqali olish mumkin bir vaqtning o'zida tenglama. Biz bilganimiz uchun a va m nisbatan sodda, bu avtomatlashtirilgan tizimdagi ko'plab "noto'g'ri" tugmachalarni tezda yo'q qilish uchun ishlatilishi mumkin.

Afinaviy shifrlarda ishlatiladigan aylantirishning bir xil turi ishlatilgan chiziqli konstruktiv generatorlar, turi pseudorandom tasodifiy generator. Ushbu generator a emas kriptografik xavfsiz pseudorandom raqamlar generatori shu sababli afinali shifr xavfsiz emas.

Misollar

Ushbu ikkita misolda bitta shifrlash va bitta parolni hal qilishda alifbo A dan Z gacha bo'lgan harflar bo'ladi va quyidagi jadvalda tegishli qiymatlarga ega bo'ladi.

ABCD.EFGHMenJKLMNOPQRSTUVVXYZ
012345678910111213141516171819202122232425

Shifrlash

Ushbu shifrlash misolida,[1] shifrlanadigan oddiy matn "AFFINE CIPHER" bo'lib, yuqorida ko'rsatilgan jadval yordamida har bir harfning raqamli qiymatlari uchun a 5 yoshda, b 8 bo'lishi va m 26 bo'lishi kerak, chunki alifboda 26 ta belgi ishlatilmoqda. Faqat qiymati a cheklovga ega, chunki u 26 bilan tenglashtirilishi kerak. Buning mumkin bo'lgan qiymatlari a 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 va 25 bo'lishi mumkin. b ekan, o'zboshimchalik bilan bo'lishi mumkin a 1 ga teng emas, chunki bu shifrning siljishi. Shunday qilib, ushbu misol uchun shifrlash funktsiyasi bo'ladi y = E(x) = (5x + 8) mod 26. Xabarni shifrlashning birinchi bosqichi har bir harfning raqamli qiymatlarini yozishdir.

Oddiy matnAFFMenNECMenPHER
x055813428157417

Endi, ning har bir qiymatini oling xva tenglamaning birinchi qismini echib oling, (5x + 8). Ning qiymatini topgandan keyin (5x + 8) har bir belgi uchun natijani taqsimlashda qoldiqni oling (5x + 8) 26. Quyidagi jadvalda shifrlash jarayonining dastlabki to'rtta bosqichi ko'rsatilgan.

Oddiy matnAFFMenNECMenPHER
x055813428157417
(5x + 8)83333487328184883432893
(5x + 8) mod 26877222121822517215

Xabarni shifrlashning oxirgi bosqichi - jadvaldagi har bir raqamli qiymatni tegishli harflar uchun izlash. Ushbu misolda shifrlangan matn IHHWVCSWFRCP bo'lishi mumkin. Quyidagi jadvalda Affin shifrida xabarni shifrlash uchun to'ldirilgan jadval ko'rsatilgan.

Oddiy matnAFFMenNECMenPHER
x055813428157417
(5x + 8)83333487328184883432893
(5x + 8) mod 26877222121822517215
shifrlangan matnMenHHVVCSVFRCP

Shifrni ochish

Ushbu parolni echish misolida shifrlangan matn shifrlash misolidagi shifrlangan matndir. Tegishli parol hal qilish funktsiyasi D.(y) = 21(y - 8) mod 26, qayerda a−1 21 ga teng deb hisoblanadi va b 8. Boshlash uchun quyidagi jadvalda ko'rsatilgandek, har bir harfga raqamli ekvivalentlarni shifrlangan matnga yozing.

shifrlangan matnMenHHVVCSVFRCP
y877222121822517215

Endi, keyingi qadam hisoblashdir 21(y − 8), so'ngra natijani 26 ga bo'lgandan keyin qoldiqni oling. Quyidagi jadvalda ikkala hisoblash natijalari ko'rsatilgan.

shifrlangan matnMenHHVVCSVFRCP
y877222121822517215
21(y − 8)0−21−21294273−126210294−63189−126147
21(y - 8) mod 26055813428157417

Shifrlangan matnni parolini hal qilishning oxirgi bosqichi - bu jadval yordamida raqamli qiymatlarni harflarga qaytarish. Ushbu shifrni ochishdagi aniq matn AFFINECIPHER. Quyida yakuniy qadam to'ldirilgan jadval mavjud.

shifrlangan matnMenHHVVCSVFRCP
y877222121822517215
21(y − 8)0−21−21294273−126210294−63189−126147
21(y - 8) mod 26055813428157417
Oddiy matnAFFMenNECMenPHER

Butun alifbo kodlangan

Shifrlash va parolni echishni tezroq qilish uchun butun alifboni shifrlash va aqlli matn va shifr matni harflari o'rtasida bittadan xaritani yaratish mumkin. Ushbu misolda birma-bir xarita quyidagicha bo'ladi:

aqlli matndagi xatABCD.EFGHMenJKLMNOPQRSTUVVXYZ
aqlli matndagi raqam012345678910111213141516171819202122232425
(5x + 8) mod 26813182327121722161116210510152025491419243
shifrlangan matnMenNSXCHMRVBGLQVAFKPUZEJOTYD.

Dasturlash misollari

Quyidagi Python kodni affin shifri bilan matnni shifrlash uchun ishlatilishi mumkin:

# Afinali shifr uchun transpozitsiya jadvalini chop etadi.# a m = 26 ga tenglashtirilishi kerak.def afine(a: int, b: int) -> Yo'q:    uchun men yilda oralig'i(26):        chop etish(chr(men+ord("A")) + ": " + chr(((a*men+b)%26)+ord("A")))# Misol uchun qo'ng'iroqafine(5, 8)


Shuningdek qarang

Adabiyotlar

  1. ^ Kozdron, Maykl. "Yangi shifrlar" (PDF). Olingan 22 aprel 2014.