Matnni shifrlash va parolini hal qilish uchun dastur
using System;
class Program
{
static void Main(string[] args)
{
var polybius = new PolybiusSquare();
Console.Write("Matn kiriting: ");
var message = Console.ReadLine().ToUpper();
Console.Write("Parolni kiriting (harflar takrorlanmaydi): ");
var pass = Console.ReadLine().ToUpper();
var cipherText = polybius.PolibiusEncrypt(message, pass);
Console.WriteLine("Matnni shifrlash: {0}", cipherText);
Console.WriteLine("Shifrlangan matn: {0}",
polybius.PolybiusDecrypt(cipherText, pass));
Console.ReadLine();
}
}
Foydalanuvchi kaliti deb nomlangan k=(k0,k1,k2…kn) kalitning oxirgi ketma ketligidan boshlaymiz va uzluksiz ketma ketlikkacha cho`zamiz, shunday qilib
К=(к0к1....... кn ) кj=к(j mod r) 0<=j<∞ Shunday kalitga ega bo`lamiz.
Masalan : r =∞ ва 15, 8,2,10,11,4,18.
Foydalanuvchi kalitida ishchi kalit davriy ketma ketlikka aylanadi. 15,8,2,10,11,4,18,15,8,2,10,11,4,18.
AniqlashV/6k Vijiner o`rniga qo`yish quyidagi formula bilan topiladi. V/6k(х0х1 ….хn-1)→(y0y1….yn-1)=(x0+к х1+к хn-1+к)
Shunday qilib
X dastlabki matn r ga fragmentga bo`linadi 2) Хi=(xi xi+2… xi+2(n-1)) 0<=i
xi dastlabki matnning I fragmenti ск Sezarning o`rniga qo`yish yordamida shifrlanadi.
Хi=(xi xi+2… xi+2(n-1)) →(уiуi+2…уi+2(n-1)) Vijiner o`rniga qo`yish sistemasi variant M=2 daVernam sistemasi deyiladi (1971-y) bu vaqtda
(х0х1 ….хn-1) kalit qog`oz lentaga yoziladi.
Bodo kodini qo`llagan xolda G bitli simvolga o`giradi. Bodo dastlabki matnga (2-model bo`yicha) kalit qo`shiladi.
AT&T firmning eski teletaypini AQSH armiya aloqa korpusi sifatida qo`llardi. Bu teletayp Verkam qurilmasi va shifrlash asbobiga ega.
Maxfiylik nuqtai nazaridan K=(k0k1....... kn ) oson esda saqlash uchun kalit sifatida so`z yoki fraza qo`llash keng fraza qo`llash keng tarqalgan.
Information sistemada axborot xavfsizligini ta`minlash uchun buni qo`llab bo`lmaydi, kalitlar xosil qilishda kalitlarning tasodifiy generatsiyasining dasturiy va optimal varianti ishlatiladi.
Masalan : Dastlabki matn НЕ_CЛЕДУЕМ_ВЫБИРАТЪ_НЕСЛУЧАЙНЫЙ_КЛЮЧ_
Vijiner o`rniga sistemasi yordamida matn xosil qilish (r=4). Kalit:ключ (Vijiner jadvalini qo`llagan xolda) ularga kalit qo`shamiz.
H+K=R E+L=P va ….
Shifrlangan matn xosil qilamiz.
ЧРЕЗ ХРБИЙ ПЭЭШ ДМЭЖ КЕЩЦ ЧРОБ ЭБЮ ЧЭЖЦ ФЦЫИ
Vijinerning shifrlash tizimi. Birinchi bo’lib Vijiner tizimi 1586-yilda chop etilgan va u ko’p alfavitli tizimga nisbatan yuqoriroq o’rinda turadi. Bleza Vijinera o’zini XVI asrning frantsuz diplomati deb hisoblaydi. U kriptografiya tizimiga, ya’ni uning rivojlanishiga o’z hissasini qo’shgan. Vijiner tizimi TSezar shifrlash tizimiga qaraganda mukammalroq hisoblanib, unda kalit harfidan harfga almashtiriladi. Bunday ko’p alfavitli almashtirish shifrini shifrlash jadvali orqali ifodalash mumkin. Quyidagi jadvalda Vijinerning ingliz alfaviti uchun mos keluvchi jadval ko’rsatilgan.
Bu jadvaldan matnni shifrlash va uni ochish uchun ishlatiladi.
Jadvalning ikkita kirishi bo’lib:
Yuqori qatordagi xarflardan kiruvchi ochiq yozuv uchun foydalaniladi.
CHap ustundan esa kalit harflaridan foydaniladi.
Misol uchun kalit ketma-ketligini r-deb olaylik, u holda kalit r-alfavitli r- satrdan iborat bo’ladi.
π=(π0, π1,…,πr-1);
Vijinerning shifrlash tizimida ochiq matn x=(x0,x1,…,xn-1) va shifrlangann matn y=(y0,y1,…,yn-1) ko’rinishga ega. π=(π0, π1,…,πr-1) kalit yordamida quyidagicha munosabatda bo’ladi.
x=(x0,x1,…,xn-1) y= (y0,y1,…,yn-1); (y0,y1,…,yn-1)=(π0(x0),π1(x1),…,πn-1(xn-1));
Quyida Vijiner jadvali berilgan undan foydalanib biz berilgan kalit so`z yordamida axborotni shifrlaganimizda qanday kod kelib chiqishini hisoblab olishimiz mumkin va bundan tashqari shifrlangan ma`lumotni o`zimiz mustaqil programmasiz deshifrlashimiz mumkin. Ushbu jadavalda kalit so`z va matnni oson o`qib olish va tushunish imkoni mavjuddir.
Dostları ilə paylaş: |