Soru sorDES algoritması ile s-box tablo oluşturma
Aysegul Durdu tarafından 4 yıl önce soruldu

Merhaba Görüntü şifreleme algoritması kullanarak proje geliştiriyorum. DES algoritması kullanarak s-box tabloları üretmem gerekiyor 8 tane, S-box'ta ki değerler 0,15 arasında olacak 4*16 lık bunu For döngüsü ile nasıl gerçekleştirebilirim.

6 Cevap
sayginer Yönetici tarafından 4 yıl önce cevaplandı

Merhaba,
Bu belirttiğiniz algoritmaların matematiksel karşılığı nedir? Yani çok temel düzeyle, bu işlemleri yapabilmek için ne gibi matris işlemleri yapmanız gerekiyor?

Aysegul Durdu tarafından 4 yıl önce cevaplandı

DES algoritması kullanarak görüntü şifreleyeceğim. Bunun içinde S-box tablosunu for döngüsü ile  oluşturup tablonun sütunlarına göre değer belirleyeceğim.

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Merhaba,
DES Algoritması matematiksel olarak nasıl çalışır? Kavramsal olarak şifreleme v.s yapıyor onu anladım ancak bu şifrelemeyi matematiksel olarak nasıl yapıyor? MATLAB ile yaptığımız şeyler tamamen matematiksel işlemlerin kodlanmış hali oluyor. Eğer bana matematiksel olarak ne yapmamız gerektiğini söylerseniz size yardımcı olmak isterim.
Bahsettiğiniz "S-box’ta ki değerler 0,15 arasında olacak 4*16 lık bunu For döngüsü ile nasıl gerçekleştirebilirim." matematiksel olarak ne anlama geliyor?
Ben DES, S-box v.s nedir hiç bilmiyorum. Ama bu kavramlar matematiksel bir takım hesaplamalara karşılık geliyor olmalı. Bana o matematiksel işlemlerin ne olduğunu söyler misiniz? Yukarıda yazdıklarınız dışında, yapmak istediğiniz şeyi matematiksel olarak nasıl ifade edersiniz?
 

Aysegul Durdu tarafından 4 yıl önce cevaplandı

16×32 boyutunda bir permutasyon tablosu DES s-box tablolarının rasgele birleştirilmesi ile oluşturulmuştur. Bu tablonun her bir sütunu 0-15 arasında değişen değerler içermektedir. Rand fonksiyonu kullanılarak iki adet değerleri 1-32 arasında değer
üretilir. Üretilen bu a ve b değerleri 16×32 boyutundaki tablonun hangi
sütunlarının seçileceğini belirlemede kullanılır. Tam olarak bunu yapmaya çalışıyorum. 
 

st{1} = [14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7;

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8;

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0;

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13];

st{2} = [15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10;

3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5;

0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15;

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9];

st{3} = [10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8;

13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1;

13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7;

1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12];

st{4} = [7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15;

13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9;

10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4;

3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14];

st{5} = [2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9;

14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6;

4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14;

11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3];

st{6} = [12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11;

10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8;

9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6;

4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13];

st{7} = [4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1;

13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6;

1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2;

6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12];

st{8} = [13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7;

1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2;

7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8;

2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11];

 
For döngüsü içerisinde daha sonra des [ ] şeklinde yazdığımda bu matrisin gelmesini istiyorum.

hakkans Yönetici tarafından 4 yıl önce cevaplandı

st ler ile tanımladığınız matrislerin elemanlarını for döngüsü içinde rastgele değerler üreterek oluşturmaya mı çalışıyorsunuz? Başka bir senaryo için rastgele sayı üreten bir kod parçası yazmıştım, siz de bunu kendi senaryonuza uyarlayabilirsiniz:
 

stlist=1:21; %21 adet numara rastgele dizilecek
ii=0; %Sayaç
while ~isempty(stlist) %Dizilmemiş numara olduğu sürece çalışacak
    ii=ii+1; %Sayaç bir artacak
    chosenone=randi([1 length(stlist)]); %1 ve vektör uzunluğu arasında rastgele bir sayı seç
    orderedlist(ii)=stlist(chosenone); %Seçilmiş olanı rastgele sıralanmış listeye koy
    stlist(chosenone)=[]; %Seçilmiş olanı düzenli listeden çıkar
end

 

Aysegul Durdu tarafından 4 yıl önce cevaplandı

Teşekkürler