Ek2 (Ek1 (P)) = P
DES shuningdek, yaratilishi mumkin bo'lgan 48 zaif kalitlarga ega faqat 4 xil dumaloq kalitchalar; boshqacha qilib aytganda, 16 ta kalitlar 4 guruhga bo'linadi va har bir guruh 4 ta bir xilni round kalitlarin hosil qiladi. Tasodifiy ravishda zaif, yarim zaif yoki tanlab olish ehtimolini hisoblaylik ehtimol zaif kalit. Yuqoridagi kalitlarning umumiy soni: 4 + 12 + 48 = 64. Ushbu kalitlardan birini tanlash ehtimoli eksklyuzivdir kichik: 64/256 = 8.8*10-16. Shuning uchun asosiy kamchilik bu emas sezilarli kamchilik, chunki dasturiy yoki apparat vositalarida
Satrning biroz teskari aylanishini bildiraylik (0 1.1 0). Topadi Feistel shifriga ega bo'lgan shart to'ldiruvchi: y = Ek (x) => y = E k(x). Shifrning kirishiga ruxsat bering
oddiy matn va x tugmachasi K beriladi. Shubhasiz, x = x ⊕1, K = K ⊕1.
Keyin x ⊕ K =x ⊕ 1⊕ K ⊕ 1 = x ⊕ K. Feistel shifri shifrlangan bloklarga dumaloq tugma bilan 2-modul qo'shiladi. E k(x)= E k-(x), ya'ni. agar shifr XOR operatsiyasidan foydalansa, unda shifr mavjud komplementarlik xususiyati (komplimentarlik ).
Ushbu xususiyat DES algoritmiga ham xosdir. Ba'zi beri kalitlarni boshqa tugmachalardan bitlarni teskari aylantirish orqali olish mumkin qo'shimcha kriptovalyutani jarayonini soddalashtiradi faqat yarim kalitni tekshirish uchun etarli bo'sh joy i.e. 256 emas, balki 255 mumkin bo'lgan kalitlar.
3) Des shifrlash algoritmini istalgan dasturlash tilida yaratish mumkin .Dasturiy ta’minotning java dasturlash tilida yaratamiz.
Dastur kodi.
package dess;
public class DESS {
public static void main(String args[]) {
DES_1 des = new DES_1();
}}
package dess;
import java.security.SecureRandom;
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.swing.JOptionPane;
class DES_1 {
byte[] skey = new byte[1000];
String skeyString;
static byte[] raw;
String inputMessage,encryptedData,decryptedMessage;
public DES_1() {
try {
generateSymmetricKey();
inputMessage=JOptionPane.showInputDialog(null,"SHifrlanuvchi habarni kiriting!!!");
byte[] ibyte = inputMessage.getBytes();
byte[] ebyte=encrypt(raw, ibyte);
String encryptedData = new String(ebyte);
System.out.println("Shifrlangan xabar "+encryptedData);
JOptionPane.showMessageDialog(null,"Shifrlangan ma'lumotlar "+"\n"+encryptedData);
byte[] dbyte= decrypt(raw,ebyte);
String decryptedMessage = new String(dbyte);
System.out.println("Deshifrlangan xabar "+decryptedMessage);
JOptionPane.showMessageDialog(null,"Deshifrlangan ma'lumot "+"\n"+decryptedMessage); }
catch(Exception e) {
System.out.println(e); }}
void generateSymmetricKey() {
try {
Random r = new Random();
int num = r.nextInt(10000);
String knum = String.valueOf(num);
byte[] knumb = knum.getBytes();
skey=getRawKey(knumb);
skeyString = new String(skey);
System.out.println("DES Simmetrik kalit= "+skeyString); }
catch(Exception e) {
System.out.println(e); }}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("DES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(56, sr);
SecretKey skey = kgen.generateKey();
raw = skey.getEncoded();
return raw; }
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted; }
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted; }}
BU dastur kodini yozishda dess nomli alohida main klasi va DES_1 nomli klaslardan foydanlanildi.
Natijalrni ko’rib o’tamiz
Xabar kiritish oynashiga shifrlanadigan ma’lumotni kiritamiz.Masalan “Dasturiy injineringi”
Yuqorida rasmda shifrlangan xabarni ko’rishimiz mumkin.
Kalitlar generatsiyasin dastur o’zi bajarib bizga natija chiqarib beradi.
Ko’rib turganingizdek dastur orqali matn shifrlashga va deshifrlashga erishdik
III.Kriptoanalitikalar algoritmidan foydalanishning boshidanoq hamma narsa DESni yo'q qilish uchun dunyo juda ko'p sa'y-harakatlarni amalga oshirdi. Aslida DES Kriptoanalitikani rivojlanishiga misli ko'rilmagan turtki berdi. Yuzlab odamlar chiqdi
Kriptoanalitikaning turli usullariga bag'ishlangan asarlar DES algoritmiga ilova, shuningdek algoritmning o'zi va ularning tafsilotlari kriptografik kuchga ta'sir. Bu rahmat deb ta'kidlash mumkin DES Kriptoanalitikaning barcha sohalari mavjud, masalan:
- chiziqli Kriptoanalitika - o'zaro bog'liqlikni tahlil qilish aniq matn va shifrlangan matn;
- differentsial Kriptoanalitika - qaramlikni tahlil qilish
Ikki yoki undan ortiq da'vogarlarning nisbati va ularning tegishli shifrekslari;
- tegishli kalitlar bo'yicha Kriptoanalitika - qidirish va tahlil qilish va kerakli kalitda olingan shifrlangan matnlar orasidagi bog'liqlik kerakli kalit bilan taklif qilinadigan munosabatlar bilan bog'liq kalitlar; ammo, DES bu turdagi hujumga qarshi emas edi, chunki kalitlar jadvali, kalitchalarning aylanish o'zgarishi amalga oshiriladi har xil turlarda turli xil pozitsiyalar soni.
DES 20 yil davomida dunyo miqyosida keng miqyosli Kriptoanalitikaga duch keldi
- o'nlab yillar davomida Kriptoanalitikalar jiddiy kashfiyotga olib kelmadi algoritmdagi zaifliklar. Hakerlik harakatlarining asosiy natijalari
DES quyidagicha ko'rib chiqilishi mumkin:
1. Yapon mutaxassisi Mitsuru Matsui (Mitsuru Matsui), chiziqli Kriptoanalitikaning ixtirochisi, 1993 yilda buni ko'rsatdi shifrlangan kalitni chiziqli Kriptoanalitika yordamida hisoblashingiz mumkin tajovuzkorda 247 "oddiy matn - shifr matn" juftligi mavjud.
2. Isroil kriptologlari, differentsial ixtirochilar 1991 yilda Eli Biham va Adi Shamir tomonidan kriptoanaliz shifrlash kaliti hisoblangan hujumni taqdim etdi differentsial Kriptoanalitikani nazarda tutganda tajovuzkor 247 maxsus tanlangan "oddiy matn" - shifr matn. "
Ushbu hujumlar yanada kuchaytirildi (masalan, hujum) 247 o'rniga 243 juft mavjudligida chiziqli Kriptoanalitikalar paydo bo'ldi shuningdek, DES-ga yangi hujumlar (masalan, hujum qilishga imkon beradigan hujum) kalitni apparat aniqlagichining yuqori aniqlikdagi nurlanishiga qarab hisoblang va
shifrlash xatolarini keyingi tahlil qilish).
Biroq, bu hujumlarning barchasi juda ko'p sonli juftlikni talab qiladi. "Oddiy matn - shifr tekst", uni olish amalda juda ko'p vaqt talab qiladigan operatsiya bo'lib, eng oson
DESga qilingan hujumni hali ham kalitlarning to'liq ro'yxati deb hisoblash mumkin.
Foydalanilgan adabiyotlar
Sushko S.A.”Amaliy kriptologiya” 2010.Moskva
A. Menezes, Pvan Oorschot, S. Vanstone. Handbook of Applied Cryptography 2001 yil avgust oyida qayta nashr (5-nashr).
Yu. Semenov (ITEP-MIPT) Алгоритм DES 2001.
Internet materiallari.
1.ru.wikepidiya.org
2.ziyonet.uz
Do'stlaringiz bilan baham: |