21 Ocak 2013 Pazartesi

--- Kriptografi ---


--- Kriptografi ---

plaintext (düz-metin)
cleartext ( temiz-metin)
encryption (şifreleme)
ciphertext (şifreli-mesaj)
decryption (çözme)
simetrik (veya gizli-anahtar)
asimetrik (veya açık-anahtar)
Not : Anahtar temelli algoritmaların iki çeşidi vardır; simetrik (veya gizli-anahtar) ve asimetrik (veya açık-anahtar) algoritmaları. Aralarındaki fark, simetrik algoritmalar şifreleme ve çözme işlemleri için aynı anahtarı kullanırken (veya çözme anahtarı şifreleme anahtarından kolayca türetilebilir) , asimetrik algoritmalar şifreleme ve çözme için farklı anahtar kullanırlar ve çözme anahtarı şifreleme anahtarından elde edilemez.
Not2: Simetrik algoritmalar stream cipher (akan şifre) ve blok cipher olarak ikiye ayrılabilir. Stream cipher’lar belli bir anda bir bitlik düz-metni şifreleyebilirken, blok cipher’lar pek çok biti alıp (tipik olarak modern cipher’larda 64 bit) bunları tek bir birim olarak şifrelerler. Pek çok simetrik cipher Algoritmalar sayfasında açıklanmıştır.
Kriptografiye Giriş
Önsöz:
İnsanlar kriptografi hakkında konuştuklarında farklı şeylerden bahsederler. Çocuklar oyuncak cipherlarla oynar ve gizli dillerle konuşurlar. Ancak, bunların gerçek güvenlik ve güçlü şifreleme ile çok az ilgisi vardır. Güçlü şifreleme gerçekten değerli bilgiyi organize suç örgütlerine, çokuluslu şirketle ve büyük hükümetlere karşı korumak için kullanılabilecek bir şifreleme türüdür. Güçlü şifreleme eskiden sadece askeri çalışmalarda kullanılırdı; ancak günümüz bilgi toplumunda gizlilik ve kişiselliğin korunması için önemli araçlardan biri haline gelmiştir. Bir bilgi toplumu olmaya doğru ilerledikçe milyonlarca bireyin teknoloji manasında global olarak gözlenmesi/takibi büyük hükümetler için mümkün olmaya başlamıştır. Kriptografi kişisellik, güven, erişim kontrolü, elektronik ödeme, toplu (şirket, ulus, vs.) güvenlik ve pekçok alan için ana araçlardan biri olmuştur.
Aşağıda, kriptografinin temel terminolojisi ve ana metotları sunulmuştur. Burada sunulan tüm fikir ve değerlendirmeler spekülatiftir ve ne yazarlar ne de SSH (bu bilgilerin mümkün olduğu kadar doğru ve güncel olması için tüm girişimlerin yapılmış olmasına rağmen) bunların yanlışlığı için sorumlu tutulamaz.
Temel Terminoloji:
Farz edelim ki bir kişi diğer bir kimseye bir mesaj göndermek istiyor ve başka hiçbir kimsenin mesajı okumadığından emin olmak istiyor. Ancak, bir başka kimsenin mektubu açması veya elektronik iletişimi duyması olasılığı vardır. Kriptografik terminolojide mesaj plaintext (düz-metin) veya cleartext ( temiz-metin) olarak adlandırılır. Mesajın içeriğini diğer kişilerden saklamak için kodlamaya encryption (şifreleme) adı verilir. Şifrelenmiş mesaja ciphertext (şifreli-mesaj) denir. Ciphertext’ten düz-metni elde etme işlemine decryption (çözme) adı verilir. Şifreleme ve çözme genelde bir anahtar kullanılarak yapılır ve kodlama metodu öyledir ki çözme işlemi ancak doğru anahtarın bilinmesiyle gerçekleştirilebilir.
Kriptografi mesajların gizli tutulması sanatı veya bilimidir. Kriptanaliz cipher’ların kırılması sanatıdır, örneğin doğru anahtarı bilmeden düz-metnin elde edilmesi. Kriptografi ile uğraşanlara kriptograf ve kriptanalizin uygulamacılarına kriptanalist denir.
Kriptografi gizli mesajlaşma, onaylama, dijital imzalar, elektronik para ve diğer uygulamaların tüm yönleriyle ilgilidir. Kriptoloji, kriptografik metotların matematiksel temelleriyle ilgilenen bir matematik dalıdır.
Temel Kriptografik Algoritmalar:
Şifreleme ve çözmenin bir metoduna cipher denir. Bazı kriptografik metotlar algoritmanın gizliliğine dayanır; böyle algoritmaların sadece tarihi önemi vardır ve gerçek-dünya ihtiyaçları için yeterli değildir. Tüm modern algoritmalar şifreleme ve çözme işlemlerini kontrol etmek için bir anahtar kullanırlar; bir mesaj sadece kullanılan anahtar şifreleme anahtarıyla uyuştuğunda çözülebilir.
Anahtar temelli algoritmaların iki çeşidi vardır; simetrik (veya gizli-anahtar) ve asimetrik (veya açık-anahtar) algoritmaları. Aralarındaki fark, simetrik algoritmalar şifreleme ve çözme işlemleri için aynı anahtarı kullanırken (veya çözme anahtarı şifreleme anahtarından kolayca türetilebilir) , asimetrik algoritmalar şifreleme ve çözme için farklı anahtar kullanırlar ve çözme anahtarı şifreleme anahtarından elde edilemez.
Simetrik algoritmalar stream cipher (akan şifre) ve blok cipher olarak ikiye ayrılabilir. Stream cipher’lar belli bir anda bir bitlik düz-metni şifreleyebilirken, blok cipher’lar pek çok biti alıp (tipik olarak modern cipher’larda 64 bit) bunları tek bir birim olarak şifrelerler. Pek çok simetrik cipher Algoritmalar sayfasında açıklanmıştır.
Asimetrik cipher’lar (açık-anahtar algoritmaları veya açık-anahtar kriptografisi olarak da adlandırılırlar) şifreleme anahtarının halka açık olmasına (bir gazetede bile yayınlanabilirler) isteyen herkesin bu anahtarı kullanarak şifreleme yapmasına izin verirken, sadece uygun/istenilen alıcı (çözme anahtarını bilen) mesajı çözebilir. Şifreleme anahtarı açık-anahtar, ve çözme anahtarı da özel veya gizli anahtar olarak da adlandırılır. Modern kriptografik algoritmalar artık kalem-kağıt şifreleyicisi olmaktan çok uzaktır. Güçlü kriptografik algoritmalar bilgisayarla veya özelleştirilmiş cihazlarda çalıştırılmak üzere tasarlanmaktadır. Pek çok uygulamada kriptografi, bilgisayar yazılımlarıyla yapılmaktadır. Genel olarak, simetrik algoritmalar bilgisayarda asimetrik olanlardan çok daha hızlıdırlar. Uygulamada bunlar sık sık beraber kullanılırlar öyleki açık-anahtar algoritmalar rasgele üretilmiş bir şifreleme anahtarını şifrelemek için kullanılır ve rasgele anahtar hakiki mesajı simetrik bir algoritma kullanarak şifrelemek için kullanılır. Bu bazen, hibrid (melez) şifreleme olarak adlandırılır. Pek çok iyi kriptografik algoritmaların tanımları büyük kitapçılar, kütüphaneler, patent büroları veya internetten elde edilebilir. En çok çalışılan ve muhtemelen en yaygın simetrik cipher DES tir; yeni geliştirilen AES en yaygın şifreleme algoritması olarak DES in yerini alabilir. RSA muhtemelen en iyi bilinen asimetrik şifreleme algoritmasıdır. http://serdartorun.tripod.com/kriptokitap.html sayfasında kriptografi ve ilgili alanlara ilişkin pek çok ders kitabı bulabilirsiniz.
Dijital İmzalar:
Bazı açık-anahtar algoritmaları dijital imzalar üretmek için kullanılabilir. Bir dijital imza, bazı gizli anahtarlar kullanılarak yaratılmış küçük bir bilgi parçasıdır ve imzanın gerçekten uygun bir özel anahtar kullanılarak üretildiğini doğrulamak için kullanılabilecek bir açık-anahtar vardır. İmzayı üretmek için kullanılan algoritma öyle olmalıdır ki gizli anahtarı bilmeden geçerli sayılabilecek bir anahtar üretmek mümkün olmasın.
Dijital imzalar mesajın gerçekten istenilen göndericiden geldiğini doğrulamak için kullanılır (sadece gönderenin kendi anahtarına karşılık gelen gizli anahtarı bildiğini kabul ettik). Bunlar ayrıca dokümanları timestamp (zaman-pulu) ile işaretlemek için de kullanılabilir: güvenilen bir kişi dokümanı imzalar ve kendi anahtarı ile de zaman-pulunu imzalar, böylece dokümanın belirtilen zamanda var olduğunu doğrular. Dijital imzalar bir açık-anahtarın belirli bir kişiye ait olduğunu doğrulamak (veya onaylamak) için de kullanılabilir. Bu işlem, anahtarın ve bunun sahibi hakkındaki bilginin birleşiminin (kombinasyonunun - combination), güvenilen bir anahtar ile imzalanması suretiyle yapılır. Üçüncü bir kişinin ( güvenilen anahtarın sahibi) dijital imzası, açık anahtar ve açık-anahtarın sahibi hakkındaki bilgiler genelde sertifikalar (certificates) olarak adlandırılır. Üçüncü kişi (Third Party) anahtarına güvenilmesinin sebebi, bunun başka bir güvenilir anahtar ile imzalanmış olmasından olabilir. sonuçta bazı anahtarlar güven hiyerarşisinin kökü (root) olmalıdır (öyleki, buna güvenilmez çünkü bir başkası tarafından imzalanmıştır, ama bir öncekine inandığınızdan anahtar güvenilir olabilir). Bir merkezileştirilmiş anahtar altyapısında (centralized key infrastructure), güven ağında çok az kök vardır (örneğin, hükümet birimleri; böyle kökler de sertifika otoriteleri olarak adlandırılırlar). Dağılmış bir altyapıda evrensel olarak kabul edilmiş köklerin olmasına gerek yoktur, ve her kesimin farklı güvenilir kökleri olabilir. Bu, örneğin PGP deki, güven ağı (web of trust) kavramıdır. Keyfi bir dokümanın bir dijital imzası tipik olarak dokümandan alınan bir mesaj özeti (message digest) hesaplaması , ve imzalayan hakkında bilgi, bir zaman-pulu, vs. ile ilişkilendirilerek yaratılır. Ortaya çıkan dizi uygun bir algoritma kullanılarak imzalayanın özel anahtarı kullanılarak şifrelenir. Sonuçta elde edilen şifrelenmiş bitler bloğu imzadır. Genelde, onu imzalamak için kullanılan açık-anahtar hakkındaki bilgi ile beraber dağıtılır. Bir imzayı onaylamak için önce anahtarın , anahtara sahip olduğu düşünülen kişiye ait olup olmadığının belirlenmesi (güven ağı veya önsel bir bilgi kullanarak) ve sonra da kişinin açık-anahtarı kullanılarak imzanın çözülmesi gerekir. eğer imzası uygun bir şekilde çözülürse ve bilgi mesajınkiyle uyuşursa (uygun mesaj özeti vs.) imzanın geçerli olduğu kabul edilir. Dijital imzaların yapımı ve onayı için gerekli pek çok algoritma ücretsiz olarak elde edilebilir. En yaygın algoritma RSA dır.
Kriptografik Hash (Karıştırma ---Parçalara Ayırma) Fonksiyonları:
Kriptografik hash fonksiyonları (KHF) değişik durumlarda kullanılır, örneğin bir dijital imza yaparken mesaj metninin hesaplanması için. Bir hash fonksiyonu, olası hash değerleri arasında olası mesajların dağıtıldığı bir yol kullanılarak bir mesajın bitlerini sabit-büyüklükteki bir hash değerine sıkıştırır. Bir KHF bunu, belirli bir hash değerini parçalara ayırabilecek bir mesajın ortaya çıkması olayını oldukça zorlaştıracak bir yolla yapar. KHF genelde 128 bit veya daha büyük hash değerleri üretirler. Bu sayı ( ) dünyada değiş-tokuş edilebilecek tüm mesajların sayısından bile daha büyüktür. 128 bitten daha büyük sayıya olan gereksinimin temeli doğum günü paradoksuna dayanmaktadır. Doğum günü paradoksu kabaca şöyledir: Bir hash fonksiyonu verilen bir mesajı 128 bitlik bir hash metnine adreslerse, parçalara ayrılmış mesaj rasgele seçildiğinde aynı metnin iki kez hesaplanmasını bekleyebiliriz. Bilgisayarlar için ucuz hafıza çipleri kullanıma sunuldukça 128 bit mesaj metinlerinden daha genişlerine ihtiyaç duyulmaya başlanmıştır (daha şimdiden 160 bit standart hale geldi). Pekçok iyi KHF ücretsiz olarak bulunabilmektedir. En ünlü KHF MD ailesinden MD4 ve MD5 tir. MD4 kırılmış durumda, ve MD5 halen yaygın olarak kullanılmasına rağmen güvensiz olarak düşünülebilir. SHA-1 ve RipeMD-160 halen sapasağlam durmaktadırlar.
Kriptografik Rasgele Sayı Üreteçleri:
Kriptografik Rasgele Sayı Üreteçleri (KRSÜ) kriptograifk uygulamalar, örneğin anahtarlar için, rasgele sayılar üretmektedir. Pekçok programlama dili veya uygulamada bulunan geleneksel RSÜ leri kriptografik uygulamalar için uygun değillerdir (bunlar kriptanalistlerin saldırılarına direnmek için değil, sadece istatistiksel rasgelelik için tasarlanmışlardır). Optimal durumda, rasgele sayılar kestirilemez rasgeleliğin gerçek fiziksel kaynaklarını temel almaktadırlar. Bu tip kaynaklar yarı-iletken cihazlardaki gürültüyü, bir ses girişinin (audio input) en küçük öenm bitlerini , veya kullanıcının klavye tuşlarına vuruşları veya cihazların kesme noktaları arasındaki aralıkları içerebilir. Fiziksel bir kaynaktan elde edilen gürültü sonra her bitin diğer her bir bite bağımlı olması için bir KHF ile "süzülür". Rasgelelik içermek amacıyla genelde (binlerce bitten oluşan) geniş bir havuz kullanılır, ve havuzdaki her bir bit giriş gürültüsünün (input noise) her bir bitine ve havuzdaki diğer her bite kriptografik olarak güçlü bir yolla bağımlı yapılır. Gerçek fiziksel rasgelelik kullanılamadığında, pseudo-random (sahte-rasgele) sayılar kullanılmalıdır. Aslında bu istenilmeyen durum genel amaçlı bilgisayarlarda sıklıkla ortaya çıkar.
Önemli olan nokta, verinin herhangi bir dış gözlemci için kestirilemez olmasıdır; bunu elde etmek için, rasgele-havuz en az 128 bit gerçek entropi içermelidir. Kriptografik Pseudo-Rasgele Sayı Üreteçleri tipik olarak, rasgelelik içeren geniş bir havuza ("çekirdek değeri") sahiptir. Havuzdan veri alınarak havuza iade edilen bitler (havuzun içeriğinin ortaya çıkmasını önlemek için (veriyi seçimlin olarak) bir KHF üzerinden çalıştırırlar. Daha fazla bite ihtiyaç olduğunda havuzdaki her bir biti diğer her bite bağımlı yapan uygun bir rasgele anahtarla (havuzun hiç kullanılmamış tarafından olabilir) havuzun içeriğini şifreleyerek havuzu karıştırır. Önceki veya gelecekteki kestirimleri daha da zorlaştırmak için havuz karıştırılmadan önce yeni çevresel gürültüler havuza eklenmelidir. RSÜ kötü yapılmışlarsa sistemin en zayıf noktaları olacaklardır.
Kriptografik Algoritmaların Gücü
İyi kriptografik sistemler öyle tasarlanmalıdırlar ki bunları kırmak mümkün olduğu kadar zor olsun. Uygulamada kırılamayacak sistemler yapmak olasıdır (ancak genelde bu ispatlanamaz). Bir sistem tasarımcısı için sistemi kırılabilir bırakmanın hiçbir özrü yoktur. Güvenliği aşmak için kullanılabilecek her mekanizma açığa çıkarılmalı, belgelenmeli ve son kullanıcının dikkatine sunulmalıdır. Teoride, herhangi bir anahtarlı kriptografik metot olası tüm anahtarların denenmesi ile kırılabilir. Eğer tüm anahtarların denendiği kaba kuvvet (brute force) kullanımı tek yolsa, gerekli hesaplama gücü anahtarın uzunluğu ile üstel olarak artar. 32 bitlik bir anahtar ( yani 4,294,967,296 ) adım alır. Bu herhangi bir ev bilgisayarı ile yapılabilecek bir şeydir. 40 bitlik anahtarlar adım alır- bu tür bir hesaplama (kullanılan algoritmanın etkinliğine bağlı olarak ) modern bir ev bilgisayarında bir hafta gibi bir zaman gerektirir. 56 bit anahtarlı bir sistem (DES gibi) esaslı bir zahmet gerektirir ( çok sayıda ev bilgisayarının güç paylaşımı ile bunu kırmak birkaç ay alır), ama özel donanımlarla kolayca kırılabilir. Özel donanımların maliyetleri de doğal olarak yüksektir, ama organize suç örgütleri, büyük hükümey ve şirketler bunları alabilirler. 64 bitli anahtarlarda şimdiden kırılabilir durumdadırlar. 80 bitli anahtarlar bir kaç yıl sonra kırılabilecekken ve 128 bitli anahtarlar kaba kuvvet ile muhtemelen kırılamayacaklardır. Ancak anahtar uzunluğu tek önemli konu değildir. Pek çok cipher olası tüm anahtarlar denenmeden de kırılabilir. Genelde, diğer metotların daha da etkili kullanımı ile bile kırılamayacak cipherlar tasarlamak çok zordur. Kendi cipher’larınızı tasarlamak eğlenceli olabilir, ancak gerçek uygulamalarda bunu yapmanız tavsiye edilmemektedir. Çoğunlukla, algoritmanın gizliliğine dayanan algoritmalar güvenli değillerdir. Özellikle yazılım yoluyla, herhangi bir kimse algoritmayı tersine çevirip çalıştırabilecek (disassamble) birini kiralayabilir. Açık-anahtarlı kriptografide kullanılan anahtarların uzunluğu simetrik cipher’larda kullanılanlardan daha uzundur. Bunun nedeni, kriptanalistler için kullanılan ekstra yapıdır. Burada problem doğru anahtarın tahmin edilmesi değil, gizli anahtarın açık-anahtardan türetilmesidir. RSA da bu işlem iki asal çarpanı olan bir tamsayının üretilmesi (? Factoring) ile yapılmaktadır. RSA kripto-sisteminin karmaşıklığı hakkında biraz bilgi vermek gerekirse, 256 bitlik bir modulus evde kolayca ve 512 bitlik anahtarlar üniversitedeki araştırma grupları tarafından birkaç ay içinde kırılabilir. 768 bitlik anahtarlar muhtemelen uzun vadede güvende sayılmazlar. 1024 ve daha büyük bitli anahtarlar RSA ya karşı büyük kriptografik ilerlemeler kaydedilmedikçe güvende sayılırlar.
Kriptanaliz ve Kriptosistemlere Saldırılar:
Kriptanaliz uygun anahtarların bilinmeden şifrelenmiş iletişimlerin çözülmesi sanatıdır. En önemli kriptanaliz tekniklerinden bazıları aşağıda verilmiştir:
Cipher-text only (Sadece Şifreli Metin) Saldırısı:
Bu saldırı tipinde, saldırıyı yapan kişi mesajın içeriği hakkında hiç bir şey bilmemektedir, ve sadece şifreli-metni kullanarak çalışmalıdır. Uygulamada düz metne (plain text) - pek çok mesaj türü sabit başlık formatlarına olduğundan - ilişkin tahminler yapmak genelde olasıdır. Sıradan mektuplar ve belgeler bile kestirilebilir bir şekilde başlamaktadır. Örneğin, pek çok klasik saldırıda ciphertext’in frekans analizi kullanılmaktadır, ancak modern cipherlara karşı bu yöntem iyi çalışmamaktadır. Buna rağmen mesajlar bazen istatistiksel bir yanlılık içermektedirler.
Bilinen Düz-Metin Saldırısı:
Saldırgan ciphertext’in bazı kısımlarından düz metni tahmin edebilir veya bölebilir. Geriye kalan iş bu bilgiyi kullanarak ciphertext bloklarını çözmektir. Bu işlem, veriyi şifrelemek için kullanılan anahtarın belirlenmesi ile yapılabilir. En sık kullanılan Bilinen Düz Metin Saldırısı, blok cipher’lara karşı lineer kriptanaliz saldırısıdır.
Seçilmiş Düz Metin Saldırısı:
Saldırgan bilinmeyen anahtar ile şifrelenmiş istediği her metni elde edebilmektedir. Buradaki iş, şifreleme için kullanılan anahtarı belirlemektir. Bu saldırı için iyi bir örnek, blok cipherlara karşı (ve bazı durumlarda hash fonksiyonlarına karşı) uygulanabilen diferensiyel kriptanalizdir. Bazı kriptosistemler, özellikle RSA, seçilmiş-düz metin saldırılarına karşı açıktır. Bu tip algoritmalar kullanıldığında, uygulama (veya protokol) öyle tasarlanmalıdır ki saldırgan istediği düz metni şifrelenmiş olarak elde etmemelidir.
Ortadaki Adam Saldırısı:
Bu saldırı, kriptografik iletişim ve anahtar değişimi protokolleri ile ilgilidir. Fikir şudur; iki kişi güvenli iletişim için anahtarlarını değiş-tokuş ederken (örneğin Diffie-hellman kullanarak), bir düşman kendisini iletişim hattındaki iki kişi arasına yerleştirir. Sonra bu düşman her iki kişi ile ayrı bir anahtar değiş-tokuşu gerçekleştirir. Her iki kişi farklı bir anahtar kullanarak işlerini tamamlayacaklardır ki bu anahtarlar düşman tarafından bilinmektedirler. Bu noktadan sonra saldırgan uygun anahtar ile herhangi bir iletişimi deşifre edebilecek ve bunları diğer kişiye iletmek için diğer anahtar ile şifreleyecektir. Her iki tarafta güvenli bir şekilde konuştuklarını sanacaklardır, ancak gerçekte saldırgan konuşulan herşeyi duymaktadır.
Ortadaki-adam-saldırısını engellemenin bir yolu dijital imzaları kullanabilen bir açık anahtar kriptosistemi kullanmaktır. Kurulum için her iki tarafta karşı tarafın açık anahtarını bilmelidir (ki bu bazen açık anahtar kriptosisteminin esas avantajını baltalamaktadır). Paylaşılan gizlilik oluşturulduktan sonra, taraflarkendi dijital imzalarını karşı tarafa göndermelidir. Ortadaki-Adam bu imzaları taklit etmeye çalışacak, fakat imzaların sahtesini yapamayacağı için başarısız olacaktır.
Bu çözüm, açık anahtarların güvenli bir biçimde dağıtımı için bir yolun varlığı halinde yeterlidir. Böyle bir yol X.509 gibi bir sertifika hiyerarşisidir. Bu, örneğin, IPSec (Internet Protocol Security) ’de kullanılmaktadır.
Gizili anahtar ile kriptosistemin çıktısı arasındaki korelasyon kriptanaliz için ana bilgi kaynağıdır. En kolay durumda, gizli anahtar hakkkındaki bilgi direkt olarak kriptosistemden sızdırılır. Daha karmaşık durumlar, kriptosistem hakkında gözlenen (ölçülen) bilgi ile tahmin edilen anahtar bilgisi arasındaki korelasyon üzerinde çalışmayı gerektirir. Bu sıkça çok ileri düzey saldırı durumlarında kullanılır. Örneğin, blok cipherlara karşı lineer (ve diferansiyel) saldırılarda kriptanalist bilinen (seçilmiş) düz metin ve gözlenen şifreli-metin üzerinde çalışır.
1980 lerin sonuna doğru Adi Shamir ve Eli Biham tarafından tanıtılan direfansiyel kriptanaliz, blok cipherlara (özellikle DES ’e) karşı bu fikri (korelasyon fikrini) tam anlamıyla uygulayan ilk saldırıdır. Sonraları Mitsuru Matsui DES ’e karşı daha etkili olan lineer kriptanalizi ileri sürmüştür. Sonraqdan benzer fikirlere sahip saldırı çeşitleri geliştirilmiştir.
Bu konuya ilişkin belki de en iyi tanıtım EUROCRYPT ve CRYPTO ’nun 1990 lı yıllar boyuncaki sayılarında verilmiştir.Çalışmaya, Mitsuru Matsui’nin DES’in lineer kriptanalizi hakkındaki tartışması ile, veya Lars Knudsen ’in budanmış diferansiyeller fikri ile (örneğin, IDEA kriptanalizi) başlayabilirsiniz. Ayrıca Eli Biham ve Adi Shamir’in DES’İn kriptanalizi hakkındaki kitabı bu konu üzerine "klasik" bir çalışma olarak görülebilir.
Korelasyon fikri kriptografide temeldir ve pek çok araştırmacı bu tip saldırılar karşısında güvenliği sağlamaya çalışmışlardır. örneğin, Knoudsen ve Nyberg diferansiyel kriptanalize karşı güvenliği sağlamak üzerine çalışmışlardır.
Kriptografi Dersleri –1
Kriptografi
 Kriptografi için "bilgiyi gizleme sanatıdır" diyebiliriz. Kriptografinin amacı gönderen ve alıcı arasında iletilen bilginin  güvenliğini sağlamaktır. Genellikle veriyi saklamak ve açmak için bazı algoritmalar ya da anahtarlar kullanılır. Böylece veriyi çalan kişilere karşı bir güvenlik mekanizması sağlanmış olur. Zamanı geldiğince bunları da anlatacağım ama öncelikle kriptogtafide sıkça kullanılan bazı terimleri bilmenizde fayda var, bu kelimelerin Türkçe tam karşılıkları olmadığından orjinal haliyle kullanacağım.
Temel terimler
Encrypt: Bilgiyi tanınmayacak şekilde gizlemek (plaintext’i ciphertext’e dönüştürmek)
Decrypt: Bilgiyi tekrar orjinal formatına dönüştürmek (ciphertext’i plaintext’e dönüştürmek)
Cipher: Kriptografide algoritma olarak bilinir.
Key: Bilgiyi saklamaya ya da orjinal haline dönüştürmeye yarayan, algoritmalarla üretilen, komleks sıradaki alfa-nümerik karakterler
Plaintext: Cleartext olarak da bilinir, gizlenmemiş ya da decrypt edilmiş bilgi için kullanılır.
Ciphertext: Gizlenmiş data için kullanılır. Mesela şu mesaj gibi: EyS6Iz6acuGAKrm1 GEcI4eJJolT68cOb1H/o/PxZ8 nYIs0UupT+0= =7mu0
Cipher
Cipher için algoritmanın basit halidir diyebiliriz. Yani veriyi şifrelemek için kullanılan kod şeklinde de düşünebilirsiniz. İlk zamanlarda cipher’leri kırmak oldukça kolaydı, çünkü veriyi saklamak için kullanılan algoritmalar çok basitti. Günümüzdeki cipher’lar ise oldukça komplekstir. Şimdi günümüze kadar olan cipher’lara bir göz atalım: 
1-Saklamalı Cipher’lar
Saklamalı cipher’lar yüzyıllar boyunca orduya bir emir göndermek, casusa bir bilgi ulaştırmak vb. gibi amaçlarla bir mesajı gizlemek için kullanıldı. Aşağıdaki mesaj yıllar önce ingiltere’deki bir hapishanedeki bir mahkuma iletildi ama mesaj da gizlenmiş bir söz vardı:
Worthie Sir John: Hope, that is the best comfort of the afflicated, cannot much, I fear me, help you now. That I would saye to you, is this only: if ever I may be able to requite that I do owe you, stand not upon asking me: Tis not much I can do: but what I can do, bee you verie sure I wille. I knowe that, if deathe comes, if ordinary men fear it, it frights not you, accounting is for a high hounour, to have such a rewarde of your loyalty. Pray yet that you may be spare this soe bitter, cup, I fear not that you will grudge any suffereings; onlie if bie submission you can turn them away, tis the part of a wise man. Tell me, as If you can, I do for you anythinge that you can wolde have done. The general goes back on Wednesday. Restinge your servant to command. R.J.
Şimdi yukarıdaki paragrafta her noktalama işaretinden sonraki 3.harfe bakın. Ne görüyorsunuz: “panel at east end of chapel slides”  (Küçük kilisenin doğu ucundaki panel açılıyor) . Sonuçta ne mi olmuş?  Mesajı çözen mahkum hapishaneden kaçmış. 
2- Yerdeğiştirilmiş Cipher’lar
Aslında bunun basit versiyonlarını dergi ya da gazetelerin bulmaca eklerinde sıkça görüyoruz.  Buradaki mantık, adından da anlaşılacağı üzere yerdeğiştirmeye dayanıyor. Harflerin, rakamların ya da karakterlerin yerleri değiştirilir ve sonuçta ortaya gizlenmiş bir mesaj çıkar. Mesela
A B C D E F G H I J K L M N O P R S Ş T U V X Y Z
S T U V X Y Z A B C D E F G H I Ş J K L M N O P R
Yukarıdaki cipher ile “savaş yarın” mesajını vermek isteseydik “jsnsk psşbg” gibi bir mesaj iletecektik. Karşı tarafın bu mesajı anlayabilmesi için dekoder’e yani yukarıdaki yapıya sahip olması gerekiyor. Bu cipher, dünyada en çok bilenen cipher’dır ve bunu sıkça kullanmasından dolayı Sezar cipher’ı olarak bilinir. Sezar cipher’ında her harfin yerine, o harften sonraki 3.harf gelir. Yani A yerine D (ç’den özür diliyoruz) ,  B yerine E gelir. Yani tablo ile gösterecek olursak :
Orjinal:
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
Gizlenmiş:
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
C

Bu cipher ile daha kompleks şifrelemeler yapılabilir. Mesela A yerine 1 sonraki harf, B yerine 2 sonraki harf, C yerine 3 sonraki harf, D yerine tekrar 1 sonraki harf gelebilir.

Usenet haber gruplarında mesajı gizlemek için kullanılan ROT-13 de basit bir yapıya sahip yerdeğiştirilmiş cipher kullanılır. ROT-13 denilmesinin nedeni ise anahtarın 13 harf sonra gelmesine istinadendir, yani her bir karakter 13 defa çevrilir. Buradaki yapı şöyledir:

Orjinal

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
Gizlenmiş
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M

ROT-13’den başka Vernam cipher’ı ya da meşhur ismiyle "one time pad" de bir çeşit yerdeğiştirilmiş cipher’dır. One time pad, teorik olarak kırılamaz çünkü anahtar boyutu plaintext boyutuna eşittir. Ancak pratikte kullanılması pek kolay ve sağlıklı değildir.
ABD’ye göre Üsame Bin Ladin de kırılması çok zor olan yerdeğiştirilmiş cipher’lar ile kendi elemanlarına mesajlar iletiyor ve El-Kaide içinde de bu teknik sıkça kullanılıyor.

ÖRNEK KRİPTOLAR


Örnek 1


Örnek kelime : kursunkalem

Örnek teknik :

Oncelikle bu kelimelerin alfabemizdeki karsiliklari bulunur...

a=01 ; b=02 ; c=03 ; d=04 ; e=05 ; f=06 ; g=07 ; h=08 ; i=09 ; k=10 ; l=11 ; m=12 ; n=13 ; o=14 ; p=15 ; r=16 ; s=17 ; t=18 ; u=19 ; v=20 ; y=21 ; z=22 ;
k=10 ; u=19 ; r=16 ; s=17 ; u=19 ; n=13 ; k=10 ; a=01 ; l=11 ; e=05 ; m=12

Yani : 1019161719131001110512

Önerme : Bu sayisal kombinasyonu ters cevirirsek...

1205110110131917161910

Sonuç : İşte size mükemmel bi sifreleme tekniği...

Örnek 2


Örnek                  : kursunkalem
Şifrelenmiş Hali : ÖAÜYASÖEPIR
Anahtar               : 5  ( Bu anahtar sayesinde Şifre aşağıdaki gibi toplanıp 29 üzerinden modu alınarak karşılığı gelen harf yazılacaktır.)
A  B  C   Ç  D  E  F  G  Ğ  H   I   İ    J   K  
1  2  3   4   5  6  7  8  9  10 11 12 13 14
 L   M  N   O  Ö   P   R  S  Ş   T   U  Ü   V   Y   Z
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
K= 14 + 5 = 19 mod 29 = 19 = Ö
U= 25 + 5 = 30 mod 29 = 1  = A
R= 21 + 5 = 26 mod 29 = 26 = Ü
Ş= 23 + 5 = 28 mod 29 = 28 = Y
U= 25 + 5 = 30 mod 29 = 1  = A
N= 17 + 5 = 22 mod 29 = 22 = S
K= 14 + 5 = 19 mod 29 = 19 = Ö
A=  1 + 5 = 6  mod 29 = 6  = E
L= 15 + 5 = 20 mod 29 = 20 = P
E=  6 + 5 = 11 mod 29 = 11 = I
M= 16 + 5 = 21 mod 29 = 21 = R

Örnek 3


Örnek Kelime : KursunKalem
Şifrelenmiş Hali : ?}½{}>?é_+  
Yöntem : Tamamen Bana Ait :) (Varsa Böyle bir Yöntem Söyleyin)
Teknik : Klavye’de  Shift ve Alt Tuş Kombinasyonu Sabit Kullanılmıştır. Rakamsal Değerleri ( 1 2 3 ...)gibi Alınarak Şifreleme Gerçekleştirilmiştir. 
Harf Karşılıkları : é = A ! = B ’ = C ^=D +=E % = F & =G / = H ( = I )=İ = : J ?= K _=L <=M >=N £ =O #=Ö $=P ½=R {=S [=Ş ]=T }=U \=Ü |=V @=Y "=Z
İlk Şifrelediğim Kelimedir.O Yüzden Mantıklı bir Yöntemmidir Değilmidir Bilmek İsterim.
SelametLe...

Örnek 4


Alfabemizde Bulunan Harfler:
A B C Ç D E F G Ğ H  I  İ  J  K  L  M  N  O  Ö  P  R  S  Ş  T  U  Ü  V  Y  Z 

Türkçe’de Bildiğimiz Ünsüz Harfler:
 B   C  Ç   D  F   G   Ğ   H   J   K   L   M   N   P   R  S   Ş   T  V   Y   Z
09 10 11 12 13 14  15 16 17 18  19 20  21 22 23 24 25 26 27 28 29  (Toplam 21 Tane)

Türkçe’de Bildiğimiz Ünlü Harfler:
A   E    I   İ   O  Ö   U  Ü 
01 02 03 04 05 06 07 08  (Toplam 8 Tane)

K:18
U:07
R:23
s:24
U:07
N:21
K:18
A:01
L:19
E:02
M:20
Şifrelenmiş Hali: 1807232407211801190220 (Şimdi Bunu MD5’te Dönüştürürsek)
MD5’te Şifrelenmiş Hali : 7676999e64ae694531c4ab6f13b7b719

Örnek 5


Adi................:IH-Binary Cryptor.....
Ornek............: kurşunkalem
Sifrelenmis hali: 0111101110001010110100000110001000010100101100110111000
Bunu daha da zorlastirmak icin anahtar sayi kullanilabilir ve bazi islemlerden gecirilerek daha da zor hale getirilebilir. Mesela, ((Binary karsilik + Binary 2)*Binary 2) gibi... Ben yalnizca basit olani, anahtarsiz sifrelemeyi yazdim.
Sifreleme Tablosu:
a:00000
b:00001
c:00010
ç:00011
d:00100
e:00101
f:00110
g:00111
ğ:01000
h:01001
ı:01010
i:01011
j:01100
k:01101
l:01110
m:01111
n:10000
o:10001
ö:10010
p:10011
r:10100
s:10101
ş:10110
t:10111
u:11000
ü:11001
v:11010
y:11011
z:11100

Once harflerin karsiligini yaziyoruz:
      k      u          r          ş         u         n        k         a       l        e         m
01101 11000   10100   10110   11000  10000  01101  00000 01110  00101  01111

Sonra sira numarasi cift olan harfleri sola kaydiriyoruz, yani, 2.ci, 4.cu, 6.ci, 8.ci ...vs.. ve yukaridaki kurşunkalem kelimesi soyle oluyor (ukşrnuakelm):
     u       k          ş          r         n         u        a         k        e      l         m
11000 01101   10110   10100   10000  11000  00000  01101 00101  01110  01111

En son bunu ters ceviriyoruz ve soyle oluyor:
     m        l          e          k         a        u         n        r        ş        k          u
01111 01110   00101   01101   00000  11000  10000  10100 10110  01101  11000
uc islem:
1.kodlama
2.kaydirma
3.ters cevirme
Örnek 6
Vigenére Şifresi
      Bu şifreleme yönteminde gönderici tarafından bir anahtar kelime belirlenmekte ve tüm metin sıra ile bu  şifrede denk  düşen  harf  ile  toplanarak  yerlerine  yeni  bir değer elde edilmektedir. Örneğin, metnimiz "kursunkalem" ve anahtar kelimemiz de "Cyber" olsun. Metnimizdeki ve anahtarımızdaki harflerin sayısal değerlerini yerlerine koyalım ve
taraf tarafa toplayalım mod 29’unu alarak şifrelenmiş metni elde edelim;
A   B   C   Ç  D   E   F  G  Ğ   H   I    İ   J   K  
01 02 03 04 05 06 07 08 09 10 11 12 13 14
L    M  N   O  Ö  P   R   S  Ş   T   U  Ü   V   Y  Z
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
             K=14 U=25 R=21 S=22 U=25 N=17 K=14 A=01 L=15 E=06 M=16
             C=03 Y=28 B=02 E=06 R=21 C=03 Y=28 B=02 E=06 R=21 C=03
              +--------------------------------------------------------
mod(29)=> =17  =24  =23  =28  =17  =20   =13  =03  =21  =27  =19
                  ^    ^     ^    ^    ^      ^      ^     ^    ^     ^    ^
                  N    T     Ş      Y    N       P      J      C     R     V    Ö
Bu durumda kripto metnimiz NTŞYNPJCRVÖ olmaktadır.  Dewam edeceğim...

Örnek 7


S.A
Arkadaşlar tekniğim ascii ve Hex kodlarının birbirine entegre edilmesi mantığı ile çalışmaktadır. ASCII kullanılmasındaki asıl amaç büyük ve küçük harfe duyarlı olması ve diğer karakterleri de içermesidir. Böylece kriptomuz çok daha güvenli olacaktır.

Örneğin;
Şifrelenecek Sözcük: KursunKalem şeklinde olsun(K’ler büyük)
Şifrelenmiş Hali: 756D117651146C115611174B1106E7575977310872101751094B

Şifreleme is şöyle gerçekleşmekte:



Burdan ilk önce harflerin Decimal Değerlerini alıyoruz.

K - u - r - s - u - n - K - a - l - e - m
75-117-114-115-117-110-75 - 97-108-101-109

daha sonrada Hex değerlerini alıyoruz.

K - u - r - s - u - n - K - a - l - e - m
4B-75 -72 -73 - 75-6E -4B - 61-6C -65 - 6D


da sonrada bunları decimal kodların ilk sayısı ile hex kodların son sayısını yan yana getirerek yazıyoruz

yani 75 ve 6D daha sonra 117 ve 65 daha sonra da 114 ve 6C şeklinde ve sonuçta 756D117651146C115611174B1106E7575977310872101751094B değerini elde ediyoruz!
Hepiniz Allaha Emanet Olun!

//EDIT: Arkadaşlar buna ek olarak da şöyle birşey düşünülebilir.Demin bulduğumuz:

K-u-r-s-u-n-K-a-l-e-m
75-117-114-115-117-110-75-97-108-101-109

Decimal değerlerini şifrelemeden önce sayı değerlerini toplayarak tek basamak haline getirebiliriz. örneğin;

75 sayısını 7+5=12, 12 de 9 dan büyük olduğu için 1+2=3 şekline dönüştürüp sonra da şifrelebiliriz.
Buna görede şifremiz şu şekilde olur

K - u - r - s - u - n - K - a - l - e - m
3 - 9 - 6 - 7 - 9 - 2 - 3 - 7 - 9 - 2 - 1

K-u-r-s-u-n-K-a-l-e-m
4B-75-72-73-75-6E-4B-61-6C-65-6D

Yani yeni şifremiz: 36D96566C76194B26E37577397227514B
şeklinde olur! Böylece kriptolanmış halinin tutacağı boyut da azalmış olur! Selametle!

Örnek 8

Arkadaşlar Bir Başka yöntem olarakda Hex kodlarının yerine kendi kurduğumuz değerler ile kripto oluşturalım Normalde Hex’de değerler şu şekilde verilir
1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

F harfinden sonra 10 gelir ve 19 a kadar devam ettikten sonra 1A,1B,1C,1D,1E,1F gelir ve daha sonra 20 bu şekilde gider. Ama şuanki yapacağımız mantıkla bunu 9 harfe çıkartacağız. Yani 1,2,3,4,5,6,7,8,9 dan sonra A,B,C,D,E,F,G,H,I ve bundan sonra 10 gelecek. Mantığımız yine deminkinin aynı ilk önce Decimal değerleri alınacak.

K - u - r - s - u - n - K - a - l - e - m
75-117-114-115-117-110-75 - 97-108-101-109

daha sonra da hex yerine yeni ürettiğimiz sistemi kullanacağız.Bu sisteme bravex diyelim. Yani;








































K - u - r - s - u - n - K - a - l - e - m
3I-63-60-61-63-5F-3I-52-5D-56-5E
şeklindedir.

K-u-r-s-u-n-K-a-l-e-m
75-117-114-115-117-110-75-97-108-101-109

Decimal değerlerini şifrelemeden önce sayı değerlerini toplayarak tek basamak haline getirebiliriz. örneğin;

75 sayısını 7+5=12, 12 de 9 dan büyük olduğu için 1+2=3 şekline dönüştürüp sonra da şifrelebiliriz.
Buna görede şifremiz şu şekilde olur


DECİMAL:
K - u - r - s - u - n - K - a - l - e - m
3 - 9 - 6 - 7 - 9 - 2 - 3 - 7 - 9 - 2 - 1

BRAVEX:
K - u - r - s - u - n - K - a - l - e - m
3I-63-60-61-63-5F-3I-52-5D-56-5E

da sonrada bunları decimal kodların ilk sayısı ile bravex kodların son sayısını yan yana getirerek yazıyoruz.

Kriptomuzun son hali: 35E95665D75293I25F36376196026313I şeklinde olacaktır!

Arkadaşlar buyrun BraveX sistemine göre bir tablo hazırladım



Örnek 9
Permuntasyon Teniği ile Şifreleme :
K U R S U N K A L E M
1 2 3 4 5 6 1 2 3 4 5
KURSUNKALEM ve permutasyonumuz: P(1)= 3, P(2)= 5, P(3)= 1, P(4)= 6, P(5)= 4, P(6)= 2
şeklinde olsun. Bu  durumda  ilk  6  harf  kendi  içinde  yer  değiştirecektir  yani 1. harfin  yerine 3., 2.  harfin yerine 5. vb. Öyleyse  şifrelenmiş metnimiz  şu  şekilde  olmaktadõr: RUKNSULMKEE. Permutasyonun tersten uygulanmasõ ile şifre kolaylõkla çözülebilmektedir. kalem kelimesi 5 harfli olduğu için  P(4)= 6 permüntasyonu gerçekleşmediği için kendisi yazılmıştır...

A   B   C   Ç  D   E   F  G   Ğ   H  I    İ   J   K  
01 02 03 04 05 06 07 08 09 10 11 12 13 14
L    M  N   O  Ö  P   R   S  Ş   T   U  Ü   V   Y  Z
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
RUKNSULMKEE = 2125141722251516140606
Son Şifre Elde edilen Sayının Tersi : 6060416151522271415212

Mahir kardeş bize yorum yapmıyorsun bu herşey yolunda demek anlamına geliyor demi ? :)
Örnek 10
sadece örnekte verilen "kursunkalem" kelimesi için her harf büyük karekter olarak  MD5’e dönüştürülmüştür. Sonuç olarak:
K: a5f3c6a11b03839d46af9fb43c97c188
U: 4c614360da93c0a041b22e537de151eb
R: e1e1d3d40573127e9ee0480caf1283d6
S: 5dbc98dcc983a70728bd082d1a47546e
U: 4c614360da93c0a041b22e537de151eb
N: 8d9c307cb7f3c4a32822a51922d1ceaa
K: a5f3c6a11b03839d46af9fb43c97c188
A: 7fc56270e7a70fa81a5935b72eacbe29
L: d20caec3b48a1eef164cb4ca81ba2587
E: 3a3ea00cfc35332cedf6e5e9a32e94da
M: 69691c7bdcc3ce6d5d8a1361f22d04ac   gibi değerler elde ederiz.

Şimdi her harfe karşılık gelen bu şifrelerin ilk basamak değerlerini (kırmızı renkte olan karekterleri) alalım ve şifremizi oluşturalım. 
Şifremiz: a4e548a7d36
Örnek 11

Şifreleme Mantığının Genel Şeması:
Şifrelenecek Metin + Şifreleme Anahtarı    
 -----[ Şifreleme fonksiyonu ]---->    Şifrelenmiş Veri
Sabit Sayı Tablosu:
1->958
2->250
3->352
3->658
4->658
5->741
6->214
7->349
8->762
9->115
10->983
Şifreleme Anahtarı alınır ve her harfinin ayrı ayrı byte değeri alınır.Bu sayılar ile her birine denk gelen sabit sayı tablomuzdan sırasına göre mod(11) ile sabit sayı ile toplanır.
Bu işlem sonucunda bir sayı elde edilir.Bu sayı mod(50) ile modu alınır ve 25 eklenir.Elimizdeki büyük sayıyı küçültmüş olduk.Bu sayı şifrelenecek metnimizin her harfinin byte değerine teker teker eklenerek bir sayı elde edilir.ayrıca bu işlemin her devrine bir tane yalancı ANSII karakteri eklenir.
Bu karakter şifrelenecek metnimize teker teker eklediğimiz rakamla şifrelenecek metnimizin her harfinin byte değeriyle çarpımının mod(95) ile modu alınır.sonuçta elimizde 0 - 95 arası bi sayı elde ederiz.Bu sayıya 32 sabitimizi ekleyerek
32-127 arası ANSII karakterlerine denk gelen sayılar elde ederiz.Son olarak bunlarda ANSII karakterine dönüştürülür ve döngümüzün her devrine eklenir.Bu yalancı ANSII karakteri sayesinde şifreyi çözerken verileri ayırmamıza yarayacaktır :)

Bir örnekle açıklayalım:
Şifrelenecek Metin:KurşunKalem

Anahtar:Dr.CheckPoint

Şifrelenmiş Veri:
1830R1872H1869 2009>1872H1865*1830R1852z1863/1856p1864\
Sabit Sayı Tablosu:
1->958
2->250
3->352
3->658
4->658
5->741
6->214
7->349
8->762
9->115
10->983
İşlem Analizi:
D = 68
68 + 958 = 1026
r = 114
114 + 250 = 364
. = 46
46 + 352 = 398
C = 67
67 + 658 = 725
h = 104
104 + 741 = 845
e = 101
101 + 214 = 315
c = 99
99 + 349 = 448
k = 107
107 + 762 = 869
P = 80
80 + 115 = 195
o = 111
111 + 983 = 1094
i = 105
105 + 9787012 = 9787117
n = 110
110 + 958 = 1068
t = 116
116 + 250 = 366

25+ mod(50) toplam = 1755
1755 şifreleme sayımız...

K = 75
u = 117
r = 114
ş = 254
u = 117
n = 110
K = 75
a = 97
l = 108
e = 101
m = 109
sonuç:1830R1872H1869 2009>1872H1865*1830R1852z1863/1856p1864\
Selametle...
not:%100 bana aittir! alıntı değildir....
Devamı Gelecek...
{Dr.CheckPoint}
Örnek 12

A   B   C   Ç  D   E  F   G   Ğ   H  I    İ   J   K  
01 02 03 04 05 06 07 08 09 10 11 12 13 14
L    M  N   O  Ö   P  R   S   Ş  T   U  Ü   V   Y  Z
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Şifrelenecek metin  : KURSUNKALEM
Şifrelenmiş Hali      : RJYHCDROSŞŞ
Anahtar                 : 119
Şifreleme tekniği    : 119 yalancı asal sayısının ( iki asal sayının çarpımına yalancı asal sayı denir.) çarpanları ( 7 x 17) sırasıyla harflerin sayı karşılığına bu asallar eklenip 29’a modları alınacak ve meydana gelen sayının karakter karsılığı yazılacak, Formulize edersek:
P(TekSayılıSıra) = [(Harfin rakamsal karşılığ + 07) mod 29 ]=> Harf Karşılığı
P(ÇiftSayılıSıra)= [(Harfin rakamsal karşılığ + 17) mod 29 ]=> Harf Karşılığı
01.K = 14, 14 + 07 =21, 21 mod 29 = 21, 21 = R
02.U = 25, 25 + 17 =42, 42 mod 29 = 13, 13 = J
03.R = 21, 21 + 07 =28  28 mod 29 = 28, 28 = Y
04.S = 22, 22 + 17 =39, 39 mod 29 = 10, 10 = H
05.U = 25, 25 + 07 =32, 32 mod 29 = 03, 03 = C
06.N = 17, 17 + 17 =34, 34 mod 29 = 05, 05 = D
07.K = 14, 14 + 07 =21, 21 mod 29 = 21, 21 = R
08.A = 01, 01 + 17 =18, 18 mod 29 = 18, 18 = O
09.L = 15, 15 + 07 =22, 22 mod 29 = 22, 22 = S
10.E = 06, 06 + 17 =23, 23 mod 29 = 23, 23 = Ş
11.M = 16, 16 + 07 =23, 23 mod 29 = 23, 23 = Ş
Örnek 13

S.a madem amacımız kımsenin bulamayacağı ve anlaşılması zor olmayan bir şeyler üretmek, ben de üreteyim bakalım, haydi bismillah.
a=01 ; b=02 ; c=03 ; d=04 ; e=05 ; f=06 ; g=07 ; h=08 ; i=09 ; k=10 ; l=11 ; m=12 ; n=13 ; o=14 ; p=15 ; r=16 ; s=17 ; t=18 ; u=19 ; v=20 ; y=21 ; z=22 ;
İlk olarak , Kursunkalem kelimesini Base64 ile encode ediyoruz.
a3Vyc3Vua2FsZW0=
Şimdi Sistemimiz şu;  yukarıdaki tabloda içermeyen tüm harfler, rakamlar ve karakterler aynı kalmak koşulu ile base64 ile encode ettiğimiz kursunkalemin karşılıklarını tabloda bulup çeviroyuruz.
a3Vyc3Vua2FsZW0=
a = 01
3 = C
V = 20
Y = 21
C = 03
3= c
V= 20
U= 19
a=01
2= b
F= 06
S= 17
Z= 22
W= W
0= 0

Sonuç;
Kursunkalem
01c202103c201901b061722W0=
Örnek 14

Şifrelenecek Metin: Kurşun kalem
Şifrelenmiş Hali:8193899193848168827383
İlk olarak Türk ve İngiliz alfabesini birleştiriyoruz;
 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
Sonrada harfleri tersten A=Z B=Y halinde bir tablo yapıyoruz;
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
Z Y X W V Ü U T Ş S R Q P Ö O N M L K J İ I H Ğ G F E D Ç C B A
Daha sonra her harfe ikinci tablodan A=99 B=98 olacak şekilde ikinci tabloyu oluşturuyoruz;
a=99 b=98 c=97 ç=96 d=95 e=94 f=93 g=92 ğ=91 h=90 ı=89 i=88 j=87 k=86 l=85 m=84 n=83 o=82 ö=81 p=80 q=79 r=78 s=77 ş=76 t=75 u=74 ü=73 v=72 W=71 x=70 y=69 z=68
ve hepsini uyguluyoruz;
kurşunkalem
öfığfmözoün
8193899193848168827383
aklıma ilk gelen bu eğer programlar her iki rakamı ayırıp ikinci tablodaki harflere eşitleyip ve sonra elde ettiğimizi birinci tabloya uygularsak bu şekilde bir program yapılabilir, kısa süre sonra isterseniz bu şifreleme tekniğinin asp ve visual basic kodlarını yayınlayabilirim (bir de pascal).
Örnek 15

Tek yönlü şifreleme çalışması (veri imzalama)
Metin:KurşunKalem
boyut : 1024 bit
Sonuç (veri imzası):
---------imza başlangıcı 1024 bit--------------
321A23302E314E2A2C2A77AE1E1F2992DA223A34
1391102B20D223BE113D1718242610384A5D9E251
F2F33321E3AFA18961917A020A1521D1132113BB
D12112B8039F8222B754E3216E6171E3BAF29193
2261D2A2E351D295D8A121B3C2BDE243C1C3CC
82B141E391B1028241410273C3EF81F3A143C3B1
A1D37185E363A2629
----------------İmza sonu--------------------
yöntem:
yöntemin adını doktorun kapları koyuyorum.elimde 128 tane kap var.imzalıyacağım verinin her karakterinin byte değerini sırasıyla eşleştirip çarpıyorum.ve sırasıyla bunları kaplara dolduruyorum.ama her kaba eşit miktarda veri koyuyprum.ve her kabı  (I) kendinden bir önceki kaptan veri ile topluyorum.kaptaki verilere günlük hayatımızda kullandığımız ve her bakkal çırağının günlük işlemi olan şu fonksiyonu uyguluyoruz
f(x)=(önceki veri+(metin byte+(metin byte*işlem sırası)*işlem sırası*555) mod 1000
işte bu basit fonksiyon ile veri taşırıyor ver geri dönemez tek yönlü imza meydana geliyor.işimiz tabiki bunula bitmiyor.elimizdeki artık dolu olan 128 kabın hex değerlerini alıyoruz ver karşımıza 256 byte (1024 bit) lık bi imza çıkıyor.bu imza sayesinde metin verilerimizin doğruluğu rahatlıkla sağlıyabiliyoruz.
Ne kadar güvenli?
Aslında md5 kadar complex bir yapıya sahip olmasada yinede geri döndülemeyeceğine eminim.Ve 2 verinin aynı imzayı verme olasığı tam olarak 2^1024 (iki üzeri bin yirmi dört) gibi dehşet bi rakam. 
umarım yeterince açık anlatabilmişimdir.
Eğer üstad beğernir ve doğruluğunu onaylarsa CW için bu tür imzalama (1024 bit) programı yapabilirim.
söylememe gerek yok ama neyse gelenek bozulmasın %100 bana aittir.alıntı değildir!
Selametle...
{Dr.CheckPoint}
Örnek 16

Yeni bi ornek daha yapalim...Cep telefonunda hesap makinesi olanlar rahatlikla uygulayabilirler ;
Kelime ; kursunkalem...

Teknik ;

1- Kelimemizi bilesenlerine ayiriyoruz...:
kursun + kalem

2- Cep telefonunun hesap makinesini aciyoruz...Ve bilesenlerine ayirdigimiz kelimelerden once kursunu yaziyoruz , rakamsal degeri yaklasik olarak su oluyor ( Tuslarin rakamsal degeri telefondan telefona degisebilir ; ancak onemli olan sekiller , sifreler degil uygulanan tekniktir... ) ;

k=5 , u=8 , r=7 , s=7 , u=8 , n=6

sonra ikinci bilesenimizi kalemi cep telefonumuzun hesap makinesinde yazarak rakamsal degerini buluyoruz...:

k=5 , a=2 , l=5 , e=3 , m=6

Sonra bunlari carparak yada bolerek yada toplayarak yada cikararak sifremizi buluyoruz...Ben carpmayi tercih ediyorum...Sonuc ;

587786 x 52536 = 30879925296

$ifre ; 30879925296

Bu kriptoya gelen cevap :

Yaptigin bu sifreleme kanaatimce desifre edilemez... Cunku iki sayinin carpimindan elde edilen bir sonuc, farkli iki degisik sayidan da elde edilebilir...
ornegin:
1 X 100 = 100
2 X 50 = 100
4 X 25 = 100
5 X 20 = 100
gibi.....
Boyle bir sonucdan, ters islem olan iki farkli veriyi elde etme yontemi nasil olur bunu pek anliyamadim.. ( Yani hocam; Turevi yaptik yapmasina, Integrali nasil yapacaz.....?)
Eger gozden kacirdigim bir nokta varsa bildiriniz...
Selam ve Dua ile..

Örnek 17


A   B   C  Ç   D   E   F  G  Ğ   H   I    İ   J   K  
01 02 03 04 05 06 07 08 09 10 11 12 13 14
 L   M  N   O  Ö   P   R  S  Ş   T   U  Ü   V   W  Y  Z
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Şifrelenecek metin : KURSUNKALEM
Şifrelenmiş Hali      : NEHĞETNZMUL
Formul   : P(sayı) = [(Harfin ikil karşılığının  1’e Tümlenmiş Hali )=> sayı karşılığı]=> Harf Karşılığı
1 = (00001)2  16= (10000)2                 
2 = (00010)2  17= (10001)2
3 = (00011)2  18= (10010)2
4 = (00100)2  19= (10011)2
5 = (00101)2  20= (10100)2
6 = (00110)2  21= (10101)2
7 = (00111)2  22= (10110)2
8 = (01000)2  23= (10111)2
9 = (01001)2  24= (11000)2
10= (01010)2  25= (11001)2
11= (01011)2  26= (11010)2
12= (01100)2  27= (11011)2
13= (01101)2  28= (11100)2
14= (01110)2  29= (11101)2
15= (01111)2  30= (11110)2
   İkilik taban da Karşılığı               1’e Tümlenmiş Hali                Tablodaki karşılığı
   ________________________    _________________________   _________________________
     K= 01110                            =>     10001      =>         N
     U= 11001                            =>     00110       =>        E
     R= 10101                            =>    01010        =>       H
     S= 10110                            =>    01001       =>        Ğ
     U= 11001                            =>     00110      =>        E
     N= 10001                            =>     01110       =>       T
     K= 01110                            =>     10001       =>        N
     A= 00001                            =>    11110       =>         Z
     L= 01111                             =>    10000       =>        M
     E= 00110                             =>    11001       =>        U
     M= 10000                            =>     01111       =>        L
Örnek 18

Once kelimemiz ; Kursunkalem
1- Bunlarin alfabedeki sayi degerleri alinir...
a=01 b=02 c=03 d=04 e=05 f=06 g=07 h=08 i=09 j=10 k=11 L=12 m=13
n=14 o=15 p=16 r=17 s=18 t=19 u=20 v=21 y=22 z=23
Kursunkalem = 1120171820141101120313
2- Bu sayilardan ayni olanlar ce$itli renklerle guruplanirlar ;
1120171820141101120313
3- Rakamlar soldan saga dogru ayni olanlar ayni satirda siralanirken ; farkli rakamlar yukaridan assagiya dogru siralanir...Yine rakamlar soldan saga dogru a$$agidaki rakamlarda goz onunde tutularak teker teker okundugunda 2.basamaktaki sayiyi elde etmemiz gerekiyor...Aksi algoritmayi yanlis yapmi$iz demektir...
C:\Documents and Settings\Administrator\Belgelerim\Resimlerim\cripto.jpg

5- Son basamakta sifrelemeyi yapacagiz...Yani dikdortgen tablonun sol kenarindaki rakamlar yukaridan assagiya dogru sifremizi olu$turacak ;
1207843
Örnek 19
Benim de amatör düzeyde ilgim var kriptolojiye.Basit bi örnek:
kurşun kalem : her harfin ascii kodunu alıyoruz.
k=107
u=117
r=114
ş=254
u=117
n=110
boşluk(space)=32
k=107
a=97
l=108
e=101
m=109
Değerlerin ortalamasını alıyoruz :1373/12=114+5
Her harfin ascii koduna kalan |bölüm-(bölen x kalan)| ekliyoruz.
Kalan 0 ise bölüm-bölen i ekliyoruz.
Şu halde : 114-(12 x 5)=54
107+54=161
117+54=171
114+54=168
254+54=53(255 in katlarında 0 dan devam ediyoruz)
117+54=171
110+54=164
32+54=86
107+54=161
97+54=151
108+54=162
101+54=155
109+54=163
Her rakamı ascii karakterine dönüştürüyoruz :
k=i
u=«
r=¨
ş=5
u=«
n=¤
boşluk(space)=V
k=i
a=—
l=¢
e=›
m=£
kurşun kalem : i«¨5«¤Vi—¢›£
Bu tabi kırılması kolay bir yöntem.Daha fazla kasıp,daha fazla eğlenip,daha sağlam algoritmalar geliştirebiliriz.
Örnek 20
a=01 b=02 c=03 d=04 e=05 f=06 g=07 h=08 i=09 j=10 k=11 l=12
m=13 n=14 o=15 p=16 r=17 s=18 t=19 u=20 v=21 y=22 z=23
k=11  u=20 r=17 s=18 u=20 n=14 k=11 a=1 l=12 e=5 m=13
Önerme :
Anahtar verilerek Harflerin i$aret ettikleri rakamlarin dizinlerinde i$lem yapilacak...
Anahtar : 
4
Yöntem :
’’k’’ harfi icin , oncelikle ’’k’’ harfinin alfabemizdeki rakam kar$iligini buluyoruz...Yani 11.§onra Pascal ucgeninden 11 basamagin 4. üncü rakami ’’k’’ icin $ifremiz olacaktir...Yani :

$ifremiz :
k=165 u=1140 r=680 s=816 u=1140 n=364 k=165 a=01 l=220 e=10 m=286
$ifre :
kursunkalem = 165114068081611403641650122010286
Not :
Anahtari siz dilediginiz rakam yapabilirsiniz...

1 yorum:

  1. Güzel bi metin peki benim gönderebileceğim kriptoyu çözebilir misiniz?

    YanıtlaSil

isterseniz anonim seçeneginden kayıtsız gönderebilirsiniz iyi günler