-
Dj_Taleh
Old User / Hack3r
Öncelikle, kriptografinin temellerini arayanlarınız için, önceki "Kriptosistemleri kırma sanatına kısa ama güçlü bir bakış." başlıklı makaleme göz atmanızı tavsiye ederim. burada kısaca bu yöntemin üzerinden geçecektir.
Link: https://spyhackerz.org/forum/threads/kriptosistemleri-kırma-sanatına-kısa-ama-güçlü-bir-bakış.34205/
Tamam o zaman! Kriptografi aslında bilgiyi koruma sanatıdır. Bunu, bilgiyi okunamaz bir forma dönüştürerek yapar (Steganografinin aksine, bu tür bilgilerin varlığını gizler). Bunu yapmanın en basit yollarından biri "Monoalfabetik İkame" olarak adlandırılan şeydir.
Monoalfabetik İkame
Bu form Arrexels makalesinde anlatılan şekildir. Esasen, fikir, harfleri önceden belirlenmiş bir şekilde diğer harflerle değiştirmektir. Örneğin, bu sistemde şu şekilde şifreleme ve şifre çözme için bir arama tablosu yapabiliriz:
a b c d e f g h i j k l m n o p q r s t u v w x y z
b c d e f g h i j k l m n o p q r s t u v w x y z a
Eğer "düzmetin" kelimesini şifrelemek istersek, ilk önce p harfini alıp masamızın ilk satırına bakarız ve hemen altındaki harfi buluruz: q. Böylece "p", "q" olur. Bu aramayı baştan sona yapmak şifreli bir form verir: "qmbjoufyu." İşlemi tersine çevirmek için tablonun ikinci satırına bakın ve ilk satırda karşılık gelen harfi bulun.
Bu tür kodlar, frekans analizine ve daha ilginç olarak, Markov Zinciri Monte Carlo Yöntemleri (yeni başlayanlar için korkunç derecede erişilebilir olmasa da, burada bulunan çok ilginç bir makale) olarak adlandırılan şeylere karşı savunmasızdır. Bilgisayar güvenliği için bu nedenle pratik değildir.
Polifafetik Değiştirme
Yukarıdaki örnekte, yalnızca bir şifreli metin alfabesi (yukarıdaki ikinci satırın adı verildiği gibi) kullanılmıştır. Polialfabetik Değiştirme durumunda, birden fazla kullanılır. Bunu yapmanın bir yolu, birinciden başlayarak her harfe bir alfabe, ikinciden başlayarak diğer her harfe başka bir alfabe uygulamaktır. Bu biraz kafa karıştırıcı olabilir, işte bir örnek. İlk olarak, bir çift arama tablosu yapalım: ve:
a b c d e f g h i j k l m n o p q r s t u v w x y z
b c d e f g h i j k l m n o p q r s t u v w x y z a
a b c d e f g h i j k l m n o p q r s t u v w x y z
c d e f g h i j k l m n o p q r s t u v w x y z a b
"düz metin" i tekrar kodlamak istiyoruz. Bu yüzden, ilk harfi "p" alırız ve ilk arama tablosuna bakarız. Daha önce olduğu gibi "q" ya dönüşür. İkinci harf için "l" yi "n" ye çeviren ikinci arama tablosunu kullanıyoruz. Üçüncü harf için, ilk tabloyu tekrar kullanıyoruz vb. Bu şekilde devam edersek: qnbkovfzu .
Gördüğünüz gibi, "t" harfi bir yerde "v" ve diğerinde "u" olarak kodlanmıştır. Doğal olarak, bu tür kodlar Monoalfabetik İkame'den daha güvenlidir. Bununla birlikte, yine de, (değiştirilmiş) frekans analizine ve MCMC Yöntemlerinin bir versiyonuna karşı savunmasızdır. Bu yüzden yine, oldukça pratik değildir.
aktarma
Transpozisyon, tamamen farklı bir canavar türüdür. Bir transpozisyon şifresiyle, bir arama tablosuyla harfleri farklı harflere değiştirmek yerine, harfleri hareket ettirirsiniz. Örneğin, her zamanki gibi "düz metin" i şifrelemek istediğimizi varsayalım. Sözcüğü iki sütuna yazalım:
p t
l e
a x
i t
n
Şimdi, satırları şifreli metnimiz olarak okuyoruz. Bu durumda şöyle olur: "pt le ax it n."
Bu sadece bir örnek. Tahmin edebileceğiniz gibi, harfleri karıştırmanın birçok, birçok yolu vardır (aslında "düz metin" için 362.880 farklı yol). Bununla birlikte, bilgisayarlar çok fazla sorun yaşamadan bu tür şeyleri çözmek için yeterince hızlıdır, bu nedenle, diğer bazı hususlara ek olarak (ki alacağız), modern kriptografi de bu yöntemi kullanmaz.
Karma hakkında özel bir not
Bilgisayar korsanları için karşılaşabileceğiniz en önemli şifreleme türlerinden biri karmadır. Hashing, hiç kimsenin, yani hiç kimsenin orijinal bilgileri tekrar alamayacağı bir şey şifrelemek anlamına gelir. Bunu tek yönlü kodlama olarak düşünün, yani, bir kez kodladıktan sonra, DEcode edemezsiniz. Kendinize şu soruyu sorabilirsiniz: "Şimdi neden böyle bir şey yapmak istesiniz? Kimseyi bir daha okuyamayacak şekilde bilgileri şifreleyin? Akıl almaz!" Ama korkma! Bunu yapmak için akılcı bir neden var.
Yalnızca sizin bildiğiniz bir şifreniz olduğunu ve güvenli olmayan bir yerde saklamak istediğinizi varsayalım. Bu şifre sizin için çok önemlidir, çünkü bilgisayarınızda oturum açmanıza izin verir. Bilgisayarınız, oturum açarken girdiğiniz şifreyi, kimsenin şifrenizin gerçekte ne olduğunu görmesine izin vermeden güvenli olmayan bir yerde sakladığınız şifreyle nasıl karşılaştırabilir? Cevap karmadır. Bu algoritmayı göz önünde bulundurun:
1. Kayıtlı şifrenizi karıştırın.
2. Güvenli olmayan bir yere koyun.
3. Bir sonraki oturum açışınızda, girdiğiniz şifreyi girin.
4. Girilen parola karmasını saklanan parola karmasıyla karşılaştırın.
5. Eğer bunlar aynıysa, oturum açarsınız, aksi halde kilitli kalırsınız.
Gördüğünüz gibi, bilgisayar, şifreyi okunabilir bir durumda saklamadan şifrenizin eşleşip eşleşmediğini kontrol edebilir. Bazı yaygın karma algoritmalar MD5, SHA 1 ve Blowfish'tir (Bununla birlikte, yakın zamanda iki farklı parolanın MD5'te aynı karma olabileceğini gösterildiğini duydum, ancak bu sadece bir söylenti olabilir).
"Ama bekleyin," diyorsunuz ki, "Karmaları çözdüğüm birkaç gerçekçi zorluk yaşadım! Neler oluyor ??" Eh, aslında yaptığınız hash'ları "çözdüğünüzde" olası her harf kombinasyonunu almak, bunu bir karma olarak şifrelemek ve kaydettiğiniz karma ile karşılaştırmaktır. Yani kendi başınıza kod çözmüyordunuz, bunun yerine kaydedilen karma olarak hangi metnin kodlandığını kontrol ediyorsunuz. Temel olarak, hile yaptın.
AES / Rijndael
Rijndael (prounounced rain-doll) Amerika Birleşik Devletleri hükümeti tarafından kullanılan şifreleme standardıdır. Tahmin edebileceğiniz gibi, çok karmaşık. Kısaca açıklayacağım (ÇOK temel terimlerle), ancak bazı Grup Teorisi, ikili ve XORing hakkında bilgi sahibi olmak zorunda kalacağım. AES'e aşina olan herkes, anlayın, açıklık uğruna algoritmayı BÜYÜK derecede basitleştirmek üzereyim ve beni affetmeniz gerekecek. Bunun tam olarak çalışma şekli olmadığını biliyorum, ama bence bu açıklama temeldeki süreci düzenleyici ve anlaşılır bir şekilde kapsıyor.
İlk olarak, mesajınızla ve şifrelemek için bir parola ile başlayın. İkili biçime dönüştürün. İkili "m" deyin. "M" şifreniz "k" ile XOR Sonucu "y" olarak adlandırın.
Şimdi AES'in eti için. AES "MixColumns", "ShiftRows" ve "SubBytes" olarak adlandıracağım birkaç işlevi içeriyor. Şimdilik ne yaptıklarından endişelenmeyin, bir saniye içinde buna ulaşacağız. AES çıkışını "c" olarak çağıralım. Sonra:
_c = k XOR MixColumns(ShiftRows(SubBytes(y)))_
Harika! Şimdi, bu işlevlerin gerçekte ne yaptığı için ...
SubBytes
Bunun için Z_2 [x] / <x 8 + x 4 + x 3 + x + 1> alanında çalışacağız . Z_2 [x], katsayıları 0 veya 1 olan polinomların halkasıdır. X 8 + x 4 + x 3 + x + 1 indirgenemez bir polinom olduğundan Z_2 [x] / <x 8 + x 4 + x 3 + x + 1> bir alan olacaktır. Bu alana "F" adını vereceğiz. Dedi Nuff.
İkili kısım (elbette XORing dışında) geliyor. Bir bayt "y" alın ve her sıfırı veya bir katsayıyı F'deki bir polinomda yapın. Örneğin, baytınızın 10110101 olduğunu söyleyin. O zaman polinomunuz
**x^7 + 0x^6 + x^5 + x^4 + 0x^3 + x^2 + 0x + 1
= x^7 + x^5 + x^4 + x^2 + 1**
Şimdi, F bir alan olduğundan, içindeki tüm elemanların (sıfır hariç, elbette) tersi olduğunu biliyoruz. SubBytes bunu ters bulur ve orijinal baytı ters polinom tarafından üretilenle değiştirir (tıpkı bayttan polinom bulduğumuz gibi, tersini yapabiliriz ve bir polinomdan bir bayt bulabiliriz).
ShiftRows
ShiftRows adımı bir transpozisyon adımıdır. Baytları 16 blok halinde yazar ve "satırları kaydırır":
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
dönüşür
1 5 9 13
6 10 14 2
11 15 3 7
16 4 8 12
Sonra her blokta yeni düzen olarak sütunları okur.
MixColumns
MixColumns SubBytes gibidir, ancak bu sefer F [t] / <t 4 +1> alanında çalışıyoruz . Üstelik tek bayt kullanmıyorsunuz, dört baytlık gruplar kullanıyorsunuz. İlk bayt t katsayısı tespit 3 , ikinci t katsayısı belirler 2 benzerleri ve. Ardından, bu alanda da belirli bir polinom ile çarpılır ve sonucu yeni dört baytlık kümeniz olarak kullanırsınız.
İşte buyur! AES / Rijndael, temel, kısaltılmış biçimde. Daha fazla ayrıntı istiyorsanız, AES'deki Wikipedia sayfasını deneyebilirsiniz, ancak bu biraz kalındır. Aksi takdirde, temel sorularınız varsa bana PM ve yeterli talep varsa, sadece AES hakkında bir makale yazacağım.
Açık Anahtarlı Şifreleme
Ve son olarak, bugün kriptografinin temel dayanağı. Bu makalenin bir kitap olmasını istemediğim için, Diffie-Hellman Anahtar değişimini ele alacağım ve eğer RSA hakkında bilmek istiyorsanız, bana PM ya da bana haber verin ve bu konuda bir makale yapabilirim.
Sorun
Tüm geçmiş bölümlerde, ölümcül bir kusura sahip olan kripto-sistemleri tanımladım: bir kod kitabı gerektirir, bir tür veya başka. İkame şifreleriyle, arama tablolarınız var. Transposition ile harfleri nasıl karıştırdığınıza sahipsiniz. AES ile şifreniz olur. Kod kitaplarıyla ilgili sorun, kodlanmış mesajın hem göndereni hem de alıcısının bir kopyası olması gerektiğidir. İki kişi güvenli olmayan kanallar üzerinden iletişim kuruyorsa ve kodlanmış mesaj alışverişi yapmaya başlamak istiyorlarsa, bunu nasıl yapabilirler? Bunlardan biri güvensiz kanal üzerinden bir kod defteri gönderirse, kulak misafiri de bir kopyasına sahip olacaktır. Ne yapacağım...
Çözüm
Açık Anahtarlı Şifreleme. Alice ve Bob'un AES kullanarak şifre korumalı e-posta alışverişinde bulunmak istediğini varsayalım. Aynı şifreyi birbirlerine göndermeden nasıl alabilirler? İyi bir yol Diffie-Hellman Anahtar Değişimi olarak adlandırılır. Şimdi, bu biraz karmaşıklaşıyor, bu yüzden not aldığınız gibi okuduğunuzda yazmanızı tavsiye ederim, böylece gerçekten anlayabilirsiniz. Korkutucu görünse de, gerçekten oldukça basit olduğunu göreceksiniz.
Alice bir sayı "e", bir sayı "p" ve bir sayı d seçer. Sonra e d hesaplarmod p veya İngilizce olarak, p'ye bölündüğünde e'nin geri kalanı d'nin gücüne yükseltilir (bunu anlamadıysanız, modüler aritmetik konusuna bakın). Bu numaraya Alice için "a" diyelim. Sonra Alice, Bob'a e, p ve a gönderir, ancak "d" yi bir sır olarak saklar. Sonra Bob kendini saklamak için bir dizi "c" alır. Bundan sonra, e c mod p'yi bulur (Bob için "b" diyelim) ve Alice'e gönderir. Daha sonra Alice, b'yi d'ye (mod p) yükseltir ve Bob a'yı c (mod p) 'ye yükseltir. Yani, yazdık, elimizde:
a^c = (e^d mod p)^c = e^(dc) mod p
for Bob, and
b^d = (e^c mod p)^d = e^(dc) mod p
Alice için. Sonunda, hem Alice hem de Bob'un aynı numaraya sahip olduğunu fark edeceksiniz. Bu onların kendi gizli şifresidir, bildikleri kimsenin bilmediği bir şeydir.
İlk başta, bu güvenli olmayabilir. Sonuçta, a ve b'nin doğru olduğunu yayınlıyorsunuz? Yani bir kulak misafiri d ve c'nin ne olduğunu anlayabilmeli mi? Teknik olarak evet. Ancak bu problem matematikte "Kesik Kütük Sorunu" olarak adlandırılır ve çok zordur. Sana bir örnek vereyim.
Let e = 7, s = 11 ve 7 C 11 = 10 mod C nedir? Cevap için bana PM.
Sonuç
Tamam o zaman kriptografiye genel bakışı tamamladım. Umarım yeni başlayanlar için yeterince basitti ve bu daha gelişmiş olanlar da bir şeyler öğrendiler. Herhangi bir sorunuz varsa, bu makaleyi beğendiyseniz veya yorum ya da bana başka bir konuda bir makale istiyorsanız, elimden geldiğince cevap vermeye çalışacağım. Teşekkür ederim!
Link: https://spyhackerz.org/forum/threads/kriptosistemleri-kırma-sanatına-kısa-ama-güçlü-bir-bakış.34205/
Tamam o zaman! Kriptografi aslında bilgiyi koruma sanatıdır. Bunu, bilgiyi okunamaz bir forma dönüştürerek yapar (Steganografinin aksine, bu tür bilgilerin varlığını gizler). Bunu yapmanın en basit yollarından biri "Monoalfabetik İkame" olarak adlandırılan şeydir.
Monoalfabetik İkame
Bu form Arrexels makalesinde anlatılan şekildir. Esasen, fikir, harfleri önceden belirlenmiş bir şekilde diğer harflerle değiştirmektir. Örneğin, bu sistemde şu şekilde şifreleme ve şifre çözme için bir arama tablosu yapabiliriz:
a b c d e f g h i j k l m n o p q r s t u v w x y z
b c d e f g h i j k l m n o p q r s t u v w x y z a
Eğer "düzmetin" kelimesini şifrelemek istersek, ilk önce p harfini alıp masamızın ilk satırına bakarız ve hemen altındaki harfi buluruz: q. Böylece "p", "q" olur. Bu aramayı baştan sona yapmak şifreli bir form verir: "qmbjoufyu." İşlemi tersine çevirmek için tablonun ikinci satırına bakın ve ilk satırda karşılık gelen harfi bulun.
Bu tür kodlar, frekans analizine ve daha ilginç olarak, Markov Zinciri Monte Carlo Yöntemleri (yeni başlayanlar için korkunç derecede erişilebilir olmasa da, burada bulunan çok ilginç bir makale) olarak adlandırılan şeylere karşı savunmasızdır. Bilgisayar güvenliği için bu nedenle pratik değildir.
Polifafetik Değiştirme
Yukarıdaki örnekte, yalnızca bir şifreli metin alfabesi (yukarıdaki ikinci satırın adı verildiği gibi) kullanılmıştır. Polialfabetik Değiştirme durumunda, birden fazla kullanılır. Bunu yapmanın bir yolu, birinciden başlayarak her harfe bir alfabe, ikinciden başlayarak diğer her harfe başka bir alfabe uygulamaktır. Bu biraz kafa karıştırıcı olabilir, işte bir örnek. İlk olarak, bir çift arama tablosu yapalım: ve:
a b c d e f g h i j k l m n o p q r s t u v w x y z
b c d e f g h i j k l m n o p q r s t u v w x y z a
a b c d e f g h i j k l m n o p q r s t u v w x y z
c d e f g h i j k l m n o p q r s t u v w x y z a b
"düz metin" i tekrar kodlamak istiyoruz. Bu yüzden, ilk harfi "p" alırız ve ilk arama tablosuna bakarız. Daha önce olduğu gibi "q" ya dönüşür. İkinci harf için "l" yi "n" ye çeviren ikinci arama tablosunu kullanıyoruz. Üçüncü harf için, ilk tabloyu tekrar kullanıyoruz vb. Bu şekilde devam edersek: qnbkovfzu .
Gördüğünüz gibi, "t" harfi bir yerde "v" ve diğerinde "u" olarak kodlanmıştır. Doğal olarak, bu tür kodlar Monoalfabetik İkame'den daha güvenlidir. Bununla birlikte, yine de, (değiştirilmiş) frekans analizine ve MCMC Yöntemlerinin bir versiyonuna karşı savunmasızdır. Bu yüzden yine, oldukça pratik değildir.
aktarma
Transpozisyon, tamamen farklı bir canavar türüdür. Bir transpozisyon şifresiyle, bir arama tablosuyla harfleri farklı harflere değiştirmek yerine, harfleri hareket ettirirsiniz. Örneğin, her zamanki gibi "düz metin" i şifrelemek istediğimizi varsayalım. Sözcüğü iki sütuna yazalım:
p t
l e
a x
i t
n
Şimdi, satırları şifreli metnimiz olarak okuyoruz. Bu durumda şöyle olur: "pt le ax it n."
Bu sadece bir örnek. Tahmin edebileceğiniz gibi, harfleri karıştırmanın birçok, birçok yolu vardır (aslında "düz metin" için 362.880 farklı yol). Bununla birlikte, bilgisayarlar çok fazla sorun yaşamadan bu tür şeyleri çözmek için yeterince hızlıdır, bu nedenle, diğer bazı hususlara ek olarak (ki alacağız), modern kriptografi de bu yöntemi kullanmaz.
Karma hakkında özel bir not
Bilgisayar korsanları için karşılaşabileceğiniz en önemli şifreleme türlerinden biri karmadır. Hashing, hiç kimsenin, yani hiç kimsenin orijinal bilgileri tekrar alamayacağı bir şey şifrelemek anlamına gelir. Bunu tek yönlü kodlama olarak düşünün, yani, bir kez kodladıktan sonra, DEcode edemezsiniz. Kendinize şu soruyu sorabilirsiniz: "Şimdi neden böyle bir şey yapmak istesiniz? Kimseyi bir daha okuyamayacak şekilde bilgileri şifreleyin? Akıl almaz!" Ama korkma! Bunu yapmak için akılcı bir neden var.
Yalnızca sizin bildiğiniz bir şifreniz olduğunu ve güvenli olmayan bir yerde saklamak istediğinizi varsayalım. Bu şifre sizin için çok önemlidir, çünkü bilgisayarınızda oturum açmanıza izin verir. Bilgisayarınız, oturum açarken girdiğiniz şifreyi, kimsenin şifrenizin gerçekte ne olduğunu görmesine izin vermeden güvenli olmayan bir yerde sakladığınız şifreyle nasıl karşılaştırabilir? Cevap karmadır. Bu algoritmayı göz önünde bulundurun:
1. Kayıtlı şifrenizi karıştırın.
2. Güvenli olmayan bir yere koyun.
3. Bir sonraki oturum açışınızda, girdiğiniz şifreyi girin.
4. Girilen parola karmasını saklanan parola karmasıyla karşılaştırın.
5. Eğer bunlar aynıysa, oturum açarsınız, aksi halde kilitli kalırsınız.
Gördüğünüz gibi, bilgisayar, şifreyi okunabilir bir durumda saklamadan şifrenizin eşleşip eşleşmediğini kontrol edebilir. Bazı yaygın karma algoritmalar MD5, SHA 1 ve Blowfish'tir (Bununla birlikte, yakın zamanda iki farklı parolanın MD5'te aynı karma olabileceğini gösterildiğini duydum, ancak bu sadece bir söylenti olabilir).
"Ama bekleyin," diyorsunuz ki, "Karmaları çözdüğüm birkaç gerçekçi zorluk yaşadım! Neler oluyor ??" Eh, aslında yaptığınız hash'ları "çözdüğünüzde" olası her harf kombinasyonunu almak, bunu bir karma olarak şifrelemek ve kaydettiğiniz karma ile karşılaştırmaktır. Yani kendi başınıza kod çözmüyordunuz, bunun yerine kaydedilen karma olarak hangi metnin kodlandığını kontrol ediyorsunuz. Temel olarak, hile yaptın.
AES / Rijndael
Rijndael (prounounced rain-doll) Amerika Birleşik Devletleri hükümeti tarafından kullanılan şifreleme standardıdır. Tahmin edebileceğiniz gibi, çok karmaşık. Kısaca açıklayacağım (ÇOK temel terimlerle), ancak bazı Grup Teorisi, ikili ve XORing hakkında bilgi sahibi olmak zorunda kalacağım. AES'e aşina olan herkes, anlayın, açıklık uğruna algoritmayı BÜYÜK derecede basitleştirmek üzereyim ve beni affetmeniz gerekecek. Bunun tam olarak çalışma şekli olmadığını biliyorum, ama bence bu açıklama temeldeki süreci düzenleyici ve anlaşılır bir şekilde kapsıyor.
İlk olarak, mesajınızla ve şifrelemek için bir parola ile başlayın. İkili biçime dönüştürün. İkili "m" deyin. "M" şifreniz "k" ile XOR Sonucu "y" olarak adlandırın.
Şimdi AES'in eti için. AES "MixColumns", "ShiftRows" ve "SubBytes" olarak adlandıracağım birkaç işlevi içeriyor. Şimdilik ne yaptıklarından endişelenmeyin, bir saniye içinde buna ulaşacağız. AES çıkışını "c" olarak çağıralım. Sonra:
_c = k XOR MixColumns(ShiftRows(SubBytes(y)))_
Harika! Şimdi, bu işlevlerin gerçekte ne yaptığı için ...
SubBytes
Bunun için Z_2 [x] / <x 8 + x 4 + x 3 + x + 1> alanında çalışacağız . Z_2 [x], katsayıları 0 veya 1 olan polinomların halkasıdır. X 8 + x 4 + x 3 + x + 1 indirgenemez bir polinom olduğundan Z_2 [x] / <x 8 + x 4 + x 3 + x + 1> bir alan olacaktır. Bu alana "F" adını vereceğiz. Dedi Nuff.
İkili kısım (elbette XORing dışında) geliyor. Bir bayt "y" alın ve her sıfırı veya bir katsayıyı F'deki bir polinomda yapın. Örneğin, baytınızın 10110101 olduğunu söyleyin. O zaman polinomunuz
**x^7 + 0x^6 + x^5 + x^4 + 0x^3 + x^2 + 0x + 1
= x^7 + x^5 + x^4 + x^2 + 1**
Şimdi, F bir alan olduğundan, içindeki tüm elemanların (sıfır hariç, elbette) tersi olduğunu biliyoruz. SubBytes bunu ters bulur ve orijinal baytı ters polinom tarafından üretilenle değiştirir (tıpkı bayttan polinom bulduğumuz gibi, tersini yapabiliriz ve bir polinomdan bir bayt bulabiliriz).
ShiftRows
ShiftRows adımı bir transpozisyon adımıdır. Baytları 16 blok halinde yazar ve "satırları kaydırır":
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
dönüşür
1 5 9 13
6 10 14 2
11 15 3 7
16 4 8 12
Sonra her blokta yeni düzen olarak sütunları okur.
MixColumns
MixColumns SubBytes gibidir, ancak bu sefer F [t] / <t 4 +1> alanında çalışıyoruz . Üstelik tek bayt kullanmıyorsunuz, dört baytlık gruplar kullanıyorsunuz. İlk bayt t katsayısı tespit 3 , ikinci t katsayısı belirler 2 benzerleri ve. Ardından, bu alanda da belirli bir polinom ile çarpılır ve sonucu yeni dört baytlık kümeniz olarak kullanırsınız.
İşte buyur! AES / Rijndael, temel, kısaltılmış biçimde. Daha fazla ayrıntı istiyorsanız, AES'deki Wikipedia sayfasını deneyebilirsiniz, ancak bu biraz kalındır. Aksi takdirde, temel sorularınız varsa bana PM ve yeterli talep varsa, sadece AES hakkında bir makale yazacağım.
Açık Anahtarlı Şifreleme
Ve son olarak, bugün kriptografinin temel dayanağı. Bu makalenin bir kitap olmasını istemediğim için, Diffie-Hellman Anahtar değişimini ele alacağım ve eğer RSA hakkında bilmek istiyorsanız, bana PM ya da bana haber verin ve bu konuda bir makale yapabilirim.
Sorun
Tüm geçmiş bölümlerde, ölümcül bir kusura sahip olan kripto-sistemleri tanımladım: bir kod kitabı gerektirir, bir tür veya başka. İkame şifreleriyle, arama tablolarınız var. Transposition ile harfleri nasıl karıştırdığınıza sahipsiniz. AES ile şifreniz olur. Kod kitaplarıyla ilgili sorun, kodlanmış mesajın hem göndereni hem de alıcısının bir kopyası olması gerektiğidir. İki kişi güvenli olmayan kanallar üzerinden iletişim kuruyorsa ve kodlanmış mesaj alışverişi yapmaya başlamak istiyorlarsa, bunu nasıl yapabilirler? Bunlardan biri güvensiz kanal üzerinden bir kod defteri gönderirse, kulak misafiri de bir kopyasına sahip olacaktır. Ne yapacağım...
Çözüm
Açık Anahtarlı Şifreleme. Alice ve Bob'un AES kullanarak şifre korumalı e-posta alışverişinde bulunmak istediğini varsayalım. Aynı şifreyi birbirlerine göndermeden nasıl alabilirler? İyi bir yol Diffie-Hellman Anahtar Değişimi olarak adlandırılır. Şimdi, bu biraz karmaşıklaşıyor, bu yüzden not aldığınız gibi okuduğunuzda yazmanızı tavsiye ederim, böylece gerçekten anlayabilirsiniz. Korkutucu görünse de, gerçekten oldukça basit olduğunu göreceksiniz.
Alice bir sayı "e", bir sayı "p" ve bir sayı d seçer. Sonra e d hesaplarmod p veya İngilizce olarak, p'ye bölündüğünde e'nin geri kalanı d'nin gücüne yükseltilir (bunu anlamadıysanız, modüler aritmetik konusuna bakın). Bu numaraya Alice için "a" diyelim. Sonra Alice, Bob'a e, p ve a gönderir, ancak "d" yi bir sır olarak saklar. Sonra Bob kendini saklamak için bir dizi "c" alır. Bundan sonra, e c mod p'yi bulur (Bob için "b" diyelim) ve Alice'e gönderir. Daha sonra Alice, b'yi d'ye (mod p) yükseltir ve Bob a'yı c (mod p) 'ye yükseltir. Yani, yazdık, elimizde:
a^c = (e^d mod p)^c = e^(dc) mod p
for Bob, and
b^d = (e^c mod p)^d = e^(dc) mod p
Alice için. Sonunda, hem Alice hem de Bob'un aynı numaraya sahip olduğunu fark edeceksiniz. Bu onların kendi gizli şifresidir, bildikleri kimsenin bilmediği bir şeydir.
İlk başta, bu güvenli olmayabilir. Sonuçta, a ve b'nin doğru olduğunu yayınlıyorsunuz? Yani bir kulak misafiri d ve c'nin ne olduğunu anlayabilmeli mi? Teknik olarak evet. Ancak bu problem matematikte "Kesik Kütük Sorunu" olarak adlandırılır ve çok zordur. Sana bir örnek vereyim.
Let e = 7, s = 11 ve 7 C 11 = 10 mod C nedir? Cevap için bana PM.
Sonuç
Tamam o zaman kriptografiye genel bakışı tamamladım. Umarım yeni başlayanlar için yeterince basitti ve bu daha gelişmiş olanlar da bir şeyler öğrendiler. Herhangi bir sorunuz varsa, bu makaleyi beğendiyseniz veya yorum ya da bana başka bir konuda bir makale istiyorsanız, elimden geldiğince cevap vermeye çalışacağım. Teşekkür ederim!