..::Kriptolojiye Giriş::..

Dark_Angel

Webmaster
Yönetici
Administrator
Katılım
17 Haz 2005
Mesajlar
4,841
Reaction score
0
Puanları
36
Yaş
44
Konum
192.168.0.1
Modern Kriptoloji temelde üç görevi yerine getirmek için kullanılır. Verinin okunmasını ve değiştrilmesini engelleme ve verinin belirtilen kişi tarafından gönderildiğinin garanti altına alınması. Bir hacker yada kötü niyetli herhangi bir kişi internet gibi güvenli olmayan ortamlarda iki merkez arasındaki haberleşmeleri dinleyebilir ve bu haberleşmelerde gönderilen veriler üzerinde işlemler yapabilir. Bu işlemler genelde üç şekilde olabilir. Verinin gitmesini engelleme (intercept), veriyi sadece okuma (read), veriyi değiştirme (modify). Bu tip işlemlerin yapılmasını engellemek amacıyla şifreleme bir bilim olarak çalışmaktadır ve temelde üç görev üstlenmiştir.

1 - Veri Güvenliği (Confidentiality)
İki merkez arasında gönderilen verinin üçüncü kişiler tarafından okunmasını engelleme. (A/Symmetric Crypto) Bu basit şekilde normal yoldan gönderilen bir mektubun, alıcı kişiye giderken yolda herhangi bir kişi tarafından okunmasını (mesala postacı) engeleme amacı güder. Yazdığınız mektup düzmetin (plaintext) şeklindedir ve herhangi bir kişi tarafından zarfın açılması halinde, göndermiş olduğunuz mektup okunabilir. Şifreleme bu düzmetni şifreleyerek yazma işlemini gerçekleştirmenizi sağlar. Bu sayede mektubunuz yolda giderken herhangi bir kişi tarafından açılması halinde yazı düzmetin olmadığı için okunması engellenecektir. (Bu şifreleme için Symmetic yada Asymmetric yöntemler kullanılır.)

2 - Veri Bütünlüğü (Data integrity)
İki merkez arasında gönderilen verinin üçüncü kişiler tarafından değiştirilmesini engelleme. (Hashing)

Normal yoldan göndermiş olduğunuz mektup yine üçüncü kişiler tarafından yolda sizin yazdığınız şeklin dışında başka bir şekle dönüştürülerek yolculuğuna devam ettirilebilir.

Yazdığınız mektup düzmetin (plaintext) şeklindedir ve içerik okunabilmektedir. Okunabilen bu düzmetin kötü niyetli kişiler tarafından yolda değiştrilerek sizin gönderdiğiniz alıcıya, aslında söylemediğiniz şeyleri siz söylemiş gibi göstermek amacıyla yollanabilir. Şifreleme gönderilen bu düz metin üzerinde işlem yaparak sayısal bir sonuç oluşturur. Bu sonuç gönderilen yazının üzerinde en ufak bir değişiklik yapılırsa algoritma aynı olduğundan değişecektir.

Göderici ve alıcı tarafından aynı yazı üzerinde aynı algoritmayla oluşturulan sayısal sonuçlar birbirinin aynı olmak zorundadır. Eğer sayısal sonuçlar tutmuyorsa gönderilen metin yolda giderken değiştirilmiştir şeklinde düşünülebilir. Çünkü aynı metin üzerinde yapılcak bir değişiklik aynı sayısal sonucu çıkarmaycaktır. Kullanılan algoritma sayesinde farklı metinler üzerinde aynı sayısal sonucun çıkartılması neredeyse imkansızdır. (Bu sayısal sonuç oluşturma işlemi için Hasing yöntemi kullanılır)

3- Kimlik denetimi (Authentication)
İki merkez arasında gönderilen verinin, alıcı tarafında, belirtilen gönderici tarafından gönderildiğinden emin olunması . (Digital Signature)

Size ulaşan herhangi bir mektubun üzerinde bulanan gönderici ismi herzaman doğru olmayabilir. Kötü niyetli kişiler tarafından gönderici isimleri farklı yazılarak kişilere mektup yollanabilir (spam mailler gibi). Şifremele bilim olarak bu mektuplar üzerine özel imzalar (signature) ekleyerek, mektubu gönderen kişinin gerçekten mektubu gönderen kişi olduğundan emin olmanızı sağlayabilir.

Gönderilen zaman dilimine göre özel algoritmalar la oluşturulan bu imzalar, alıcı kişi tarafından belirli yöntemlerle doğrulanabilir. (Bu imza oluşturma ve doğrulama işlemi Digital Signature olarak adlandırılır.)

Bu bilgi alışverişi için geliştirilen şifreleme yöntemlerinden bilinen ilki Roma imparatoru Sezar'a aittir. Ve Sezar şifresi olarak bilinir.

Sezar şifresi çok basit bir yöntemle çalışır. Alfabe bütün harfleri ile direk yazılır.
ABCDEFG...........VWXYZ.

Sonra alfabe istenilen sayıda (en fazla alfabenin harf sayısından bir eksik kez. Neden ?) sağa kaydırılarak yazılır. Mesala 4 kez.
WXYZ..................ABCD.

Ve daha sonra mesaj bu yeni harflerle baştan yazılır.
ABCDEFG...........VWXYZ.
WXYZ..................ABCD.

Mesala ABD (Amerika Birleşik Devletleri) yazmak istiyorsak WXZ yazarız.. bu saydede ABD harfleri WYZ ye dönüşmüş olur. Düzmetin (plaintext) bu şekilde şifrelenmiş metin (encrypted text) olarak gönderilir. Ve alıcı kişiye alfabenin kaç kez sağa kaydırıldığı gizli bir şekilde söylenir. Ve alıcı kişi alfabeyi tersine kaydırarak orjinal metni (decrypted text - çözülmüş metin) bulur.

WXYZ..................ABCD. (4 kez sağa kaydırılmış alfabe)
ABCDEFG...........VWXYZ. (normal alfabe)
WXZ (şifreli metin)
ABD (çözülmüş metin)


Ve verinin yolda giderken üçüncü kişiler tarafından okunması engellenmiş olur.

Uygulanan bu yöntemin, şifresinin çözülmesi için denenmesi gereken çok az sayıda ihtimal vardır. (alfabenin harf sayısından bir eksik kez. Ortalama 28 deneme. Neden ?) bu ihtimallerin tamamı denenirse bu şifre çözülür. Alfabe teker teker sola kaydırlır ve her seferde yazı baştan çözülür anlamlı bir yazıya dönüştüğü an şifre çözülmüş olur.

Not: Osman Çelik adlı arkadaşımızın makalesıdır...
 
bülüm yeni ve septagh ın bu bölüme mod olması beni mutlu eder beni dark eline sağlık
 
Dark her bölüme yetişiyosun valla bu ne hız...çok teşekkürler güzel döküman;)
 
Hayırlı olsun septaq çok sevinmiştir yaf :d O kdr dil döktü açalım diye :D
 
Ayaklarım yere basmıyor sevinçten Hemen başlıyorum taşımaya.Dark tekrar sağol.

http://rapidshare.de/files/2651155/quantum.pdf.html

İngilezcesi olan ve bu konulara ilgili olanlar mutlaka oksunlar benim .İng. yeterli olmadığı için çeviri yaptırıyorum.Ama henüz teslim etmediler

Hepsi alıntıdır.Sadece okuduklarımı paylaşıyorum...Ama içlerinden bitanesini ben yazmıştım...
 
İlk olarak Kriptolojinin basit bir tanımı ve kullanım amaçlarını açılayarak başlayalım.Kriptolojinin anlamı bildiğiniz gibi şifrebilimidir.Amacı bilinmesi gereken şeyleri sadece bilmesi gerekenlere güvenle aktarmaktır. Kript Yunanca’da gizli graf da yazı anlamına gelmektedir.
Kriptolojinin tarihi ilk ikili insan ilişkilerinin başlangıcı kadar uzundur. İletişimin başlamasında itibaren şifreleme,insanların günlük hayatlarına farkında olmadan girmiştir.Örneğin;Aşı olmaktan korkan bir ****** ailesi doktora götürmek için kendi aralarında ******n anlamamsı için doktor kelimesini şifreler ve doktor yerine başka isimler kullanırlar.Bu tip örnekler çoğaltılabilir.Elbetteki teknolojinin ilerlemesiyle bu tip basit şifreler yerini daha karmaşık kriptolara bırakmışlardır.Tarihte ilk resmi olarak kripto kullanan Sezar dır.Başka bir kıtadaki komutanlarına mesajlarını güvenle iletmek için "scytale" isimli değnek kullanmışlardır. Sezar şerit halindeki kağıdı değnek etrafına sarar ve mesajını boylamasına bu kağıt üzerine yazardı. Daha sonra kağıdın kıvrımlarını açarak düz hale getirir ve göndereceği adrese yollardı. Daha sonraları Roma orduları iletişimlerinde yine Sezar 'ın bulduğu (alfabede 3 harf kaydırma) şifrelemesini kullanmışlardır.

Bilgi paylaşmak veya konuşmak isteyen iki kişi, bunu ortamın fiziksel değişkenlerini belli kurallara göre değiştirerek yaparlar. Örneğin iki kişi yüzyüze konuştuğunda, ortam hava, fiziksel değişken ise basınçtır. Çoğu zaman, iletişim ortamına uyguladığımız değişikliklerin birilerinin dinleyip dinlemediklerini bilemeyiz. Birisinden mektup aldığımızda, mektubun açılıp başkaları tarafından okunup okunmadığından emin olamayız. Aynı şey maillerimiz için de geçerlidir ki bize ulaşana kadar bir çok bilgisayar üzerinden geçtiğini düşünürsek ne kadar güvenli olup olmadığını tartışamaya gerek bile yoktur.
Doğal olarak bilgisayar ortamındaki bilgilerin ve ya programların okunup okunmadığına veya değiştirilip değiştirilmediğine dair hiç bir şey bilmemiz mümkün değildir. Aslında daha da önemlisi , aldığımız bir e-mail’ın gerçekte kimden geldiğini ve yolda değiştirilip değiştirilmediğini öğrenmemiz de son derece zordur.
Tek çaremiz şifrebilim ya da KRİPTOLOJİ.Şimdi biraz da bunu açıklayalım.
Kriptoloji yazılarının çoğunda Ayşe ve Burak isimli iki kişinin (A ve B) gizli iletişim kurmak istediklerini yazar.Biz de bu kuralı değiştirmeyelim ve Ayşe ve Burak isimlerinde devam edelim ve temel şifreleme yöntemlerini inceleyelim. Olayı biraz daha basitleştirmek ve güncelleştirmek için , Ayşe'nin Burak'a e-mail aracılığı ile bir metin ulaştırmak istediğini düşünelim.Ayşe ve Burak Cumartesi akşamı konsere gitmek için aralarında mailleşirler.Ayşe Burak tarafından gönderilen maillerin babası tarafından okunmaması için Burak’la gizli bir anlaşma yapar.Buna Gizli Yöntem Anlaşması denir.
 
Gizli yöntem anlaşması Ayşe ve Burak maillerini Ayşe’nin babası için anlaşılmaz kılacak bir yöntem üzerine gizlice anlaşırlar. Mesela en basiti bütün kelimelerin tersten yazılacağına (Cumartesi akşamı yerine ,ımaşka isetramuc), veya her harften sonra rasgele bir harf konulacağı (Cumartesi yerine Caudmfaırğtşepi gibi.) kararlaştırılabilir.Bu tür basit yöntemler basitliğinden dolayı çözülmesi en zor kriptolardır.Çünkü kilit de anahtar da bir kişidir.
Ayşe’nin babası maillerini okusa bile hiçbirşey anlamayacağından Ayşe ve Burak’ın iletişimi güvencededir. Farklı kişilerle iletişim kurmak istenirse, her birey ile farklı yöntemler üzerinde anlaşılması gerekir. Bir çok kişinin şifreyi bilmesi gerekiyorsa, eğer güvenlik için mutlaka sık sık yöntemin değiştirilmesi gerekebilir. Yeni yöntemler bulmak ise sanıldığı kadar zor değildir.Bu elbetteki basit şifreler içi geçerlidir.Daha profesyonel şifrelemeler bulmak elbetteki daha zordur.
Açık Yöntemli Gizli Anahtar Anlaşmalı Şifreler
Kriptolojiyi anlamak için ilk olarak düşünülebilinecek en basit simetrik şifreleme yöntemlerinden biri olan Sezar Şifresini anlamak gerekir.Kriptografi ile ilgili bütün metinlerde standart olarak Sezar şifresinden mutlaka bahsedilir.Bilinen ilk şifrele yöntemidir.
Sezar Şifresinde Anahtarı Bulmak
Sezar Şifresini çözmek için tek yol kullanılan şifreli metnin katlama sayısını bulmak olsaydı,yine de pek zorlanmazdık çünkü katlama sayısının alabileceği farklı değerler çok küçük. Hepsini teker teker deneyebiliriz. Bilgisayara çözdürmek sadece bir kaç saniye alır. Eğer siz değil de bi programa yaptırmak istiyorsanız Brut force search şiddetle tavsiye edilir.Bi aralar kullanıyorum ama şimdi nerde bilmiyorum
Deneme-Yanılma yönteminde, n değer alabilen anahtarlar arıyorsak, bir tanesi bulabilmek için ortalama n/2 değer denememiz gerekir. Brut force search bu mantıkla çalışır.
Şimdi biraz matematik bilgimizi kullanmamız gerekmekte(Çoğu insan kriptolojiden işte bu algoritma ve logaritma yüzünden pek yanaşmaz
Simetrik Şifreleri değerlendirirken en önemli değişkenlerden biri Anahtar Uzunluğu, veya anahtarın alabileceği farklı değerlerin sayısı. Anahtarımız n kadar farklı değer alabiliyorsa, 0 ile n-1 arasında bir sayıyla eşdeş olduğunu düşünmek işimizi kolaylaştıracaktır. Sezar Şifresini için (kendi türk alfabemizi kullanırsak) n=28 olacaktır(1 harf metnin kendisidir). Anahtar uzunluğu ifade edilirken n sayısı doğrudan kullanılmaz, Bunun yerine bilgisayarda saklamak için gerekli bit sayısı kullanılır. Bu sayının 2 tabanındaki logaritmasına eşittir. Eklenen her bit, n sayısını iki ile çarpar. Örneğin, 16 bitlik bir anahtar, 216=65536 değer alabilir.
Gelelim günü sorusuna Kaç bitlik bir anahtar güvenlidir ?
Anahtarın deneme-yanılmayla bulumasını engellemek için, günümüz süper bilgisayarlardan milyonlarca kat daha hızlı çalışan bir bilgisayarla bile milyarlarca yıl sürmesi için, yaklaşık 100 bitlik bir anahtar uzunluğunun uygun olduğu düşünülüyor. PGP'nin de kullandığı IDEA şifreleme algoritması, 128 bitlik anahtar uzunluğu kullanıyor. Bu şu anki teknoloji ile kırılması imkansız denilen anahtardır.


Kriptoanaliz, nedir ve anahtar olmadan kilit nasıl açılır. ?
Türkçe şifreçözüm dediğimiz kriptoanaliz,kriptolojinin ruh ikizi olarak da adlandırılabilir.Eğer şifre yazımı olmasaydı şifre çözümü de olmazdı.Kriptoloji ve kriptoanaliz 1940-1944 Dünya Savaşında altın çağlarını yaşamış ve oldukça gelişmiştir
Nazi Almanyasında 1940-1944 savaşında kullandıkları ünlü Enigma (filmi de var izlemeyen arkadaşlar varsa izlemelerini tavsiye ederim) şifreleme makinası 116 bitlik bir anahtar uzunluğuna sahipti. Yani bugünün sağlan şifrelerinin kullandıkları boyda idi. Fakat buna rağmen rağmen, savaşta şifrebilimcilik o kadar ilerlemiş ve önem kazanmıştır ki bilgisayar biliminin babası diye anılan ingiliz Alan Turing, Enigma makinesinin yapısal zayıflıklarını kullanarak, Colossus isimli ilk tüplü bilgisayar yardımıyla da Almanların iletişimlerini çözmeyi başardı ve savaşın yönünü değiştirmeyi başarmış ve tarihe altın harflerle yazılmıştır.
1. Türkçe harf frekansları.
Eğer biz Burak olsaydık ve Ayşe’den elimize alfabe değiştirme yöntemiyle şifrelenmiş bir metin gelirse, yapacağımız ilk iş metnin içerdiği bütün harflerin (veya şekillerin) kullanım istastistiğini hesplamak olmalı (ne kadar sıklıkla kullanıldığı,ardından gelen rakam,harf veya sembollerin düzenliliği vs…) ..Daha sonra, metnin hangi dilde yazıldığına dair tahminler yürütüp(Mantık kullanılarak), o dilin harf kullanım sıklıklarını hesaplayıp(Bence ilk olarak çarpanlarına ayırabiliriz), ikisini karşılaştırarak ve biraz daha mantık yürüterek kolayca şifreyi çözebiliriz.
Tek Kullanımlık Şerit
Dünyada en yaygın kullanılan profesyonel şifreleme yöntemi vardır. Bu yönteminin kullanımını epey zorlaştıran şey aynı zamanda onun güvenliğinin de resmidir. Tek kullanımlık şerit yollanacak mesaj kadar uzun olan bir anahtardır. Bu şeritteki harflerin rasgele seçilmiş olması gerekmektedir. Şifreleme işleminde, mesajdaki her harf ve o harfin şeritteki karşı gelen harfi sayıya çevrilip toplanır ve ya biraz daha zorlaştırıp çarpanlarına ayrılabilir.. Harfler sayıya çevirilirken alfabedeki sıra numaraları kullanılabilir yada 3 eksik 5 fazla gibi bi yaklaşımda bulunulabilir.Elbetteki bunu da şifreleyip karşı tarafa bildirmek gerekir.Bu yöntem çok basit olduğu için kırılması da sordur.Bu tip kriptoları çözmek için anahtarı yapan kişinin bütün hayatını ve bütün özelliklerini bilmek çok büyük fayda sağlar.Çünkü şifrede anahtarda aynı kişidir.
Şeritteki harflerin rasgele seçilmiş olması çok önemlidir.Yani insana ne kadar saçma gelirse o kadar da güvenlidir.Burada önemli olan karmaşadır. Harfleri rasgele seçilmiş bir şerite, harfleri düzenli bir mesaj eklersek, elde edeceğimiz harfler gene rasgele olacaktır. Dolayısıyla bu şifreli mesajı çözmek için hangi şeridin kullanıldığını tahmin etmekten başka çaremiz yoktur.Bunun için de az önce bahsettiğimiz gibi kişiyi çok iyi tanımamız gerekir. Şerit ile mesaj aynı uzunlukta olduğuna göre bütün şeritleri denersek, o uzunluktaki bütün mesajları da elde ederiz. Bu yolla tek kullanımlık şeridin güvenilirliği kanıtlanmıştır. Şeritle şifrelenmiş mesajdan sızan tek bilgi, onun varlığı ve uzunluğudur.
Açık Anahtar Kriptografisi
1978 yılında Diffie ve Hellman'ın ilk asimetrik şifreleme yöntemini çıkarmalarıyla beraber şifreyazım'da yeni bir çağ başlamıştır. Asimetrik şifreleme yönteminde şifreleme ve çözme anahtarları farklılaşır. Anahtarlardan birinin şifrelediğini sadece diğeri çözebilir. Anahtarlardan birine açık anahtar, diğerine gizli anahtar adı verilir; açık anahtar herkese açıklanır.Bunu basit bir örnekle bir web sitesinde user ve modların yetkileri ile anlatabiliriz.Modlar yapılacak değişiklikleri kendi aralarında tartışmak için sadece modlara verilen gizli anahtar şifrelerini girerek eylemlerini gerçekleştirirler.fakat user lar ellerindeki açık anahtarla bu bölümlere veya konulara giriş yapamazlar. Ayşe, Burak'a bir mektup yollamak istiyorsa, önce Burak'ın açık anahtarını temin edip, mesajını onunla şifreleyip Burak’a yollaması gerekir. Burak aldığı mesajı gizli anahtarıyla açar. Ayşe'nin dikkat etmesi gereken tek nokta aldığı açık anahtarın gerçekten Burak'a ait olup olmadığıdır

Şimdilik bu kadar arkadaşlar umarım Kriptolojiyle ilgili bi fikir oluşmuştur kafanızda ve umarım güzel bir başlangıç yapmışızdır.Merak ettiğiniz bir şey olursa elimden geldiği kadar yardımcı olmaya çalışırım.
 
Bazı şifreleme yöntemleri ve temelleri.

Algoritmanın Adı
Geliştiren
Tarihi
Tipi (Blok Uzunluğu)
Anahtar Uzunluğu
Döngü Sayısı
Çözülme Durumu
Kullanım Koşulları

DES
(Data Encryption Standard)
IBM (ABD)
1977
Feistel Blok (64 bit)
56 bit
(parity ile 64 bit)
16
Sağlam; 8 döngülü çeşidi çözülebiliyor; 16 zayıf anahtar
Serbest

IDEA
(International Data Encryption Algorithm)
Lai-Massey, ETH Zurich (İsviçre)
1992
Blok (64 bit)
128 bit
8
Sağlam; 251 zayıf anahtar
Ticari faaliyetler hariç serbest

RC2
(Rivest's Cipher veya Ron's Code 2)
Rivest, RSA Data Security (ABD)
1992
Katar
2048 bite kadar
Bilinmiyor
Zayıflık bulunmadı
Algoritma RSA tarafından saklı tutuluyor

RC5
(Rivest's Cipher veya Ron's Code 5)
Rivest, RSA Data Security (ABD)
1995
Blok (32, 64 veya 128 bit)
2048 bite kadar
255'e kadar
64 bit blok ve 12 döngü ile diferansiyel ve doğrusal şifreçözüme dayanıklı
Serbest

Blowfish
Bruce Schneier, Counterpane Systems (ABD)
1993
Feistel Blok (64 bit)
448 bite kadar
16
3 döngülü çeşidi diferansiyel şifreçözüme hassas
Ticari faaliyetler hariç serbest

Skipjack (Clipper Chip)
NSA (ABD)
1993
Blok (64 bit)
80 bit
32
Algoritma gizli
özel entegre devre olarak bulunuyor

ASEKAL-21
Aselsan (Türkiye)
------
Doğrusal olmayan katar
57 bit
 
Kriptografi Terimleri


anahtar üretimi (Fra. géneration de clès, ing. key generation)
Kriptografide kullanılan anahtarların yaratılma süreci.

anahtar yönetimi (Fra. gestion des clès, ing. key management)
Bir güvenlik politikası gereği kripto anahtarlarının üretimi,
saklatımı, dağıtımı, ortadan kaldırılması, arşivlenmesi ve uygulanması.

bağdan bağa kriptolama (Fra. chiffrement de liasion, ing. link-by-link encipherment)Bir iletişim sisteminin her bir bağında ayrı ayrı yürütülen kriptolama.

çevrimdışı kriptolama (Fra. chiffrement hors ligne, ing. off-line encipherment)
işletim hattına bağlı olunmadan yürütülen kriptolama.

çevrimiçi kriptolama (Fra. chiffrement en ligne, ing. on-line encryption)
Belirli bir iletim sisteminde verilerin kriptolanıp hemen iletilmesi, ve alıcı tarafta da gelen verilerin hemen kriptolarının çözülmesi.

donanımla kriptolama (Fra. codage par matériel, ing. hardware encryption)
Geleneksel yazılımla yapılan kriptolamaya göre çok daha hızlı gerçekleştirilen donanım aygıtlarını kullanan kriptolama.

kamusal anahtar (Fra. clè publique, ing. public key)
Bir kamusal şifreleme sisteminde sadece kriptolama kısmı için kullanılan, kripto çözmekte kullanılamayan anahtar.

karılmalı kripto (Fra. cryptage par transposition, ing. transposition cipher)
Açık bir metnin harflerinin olağan sırasında değiştirerek, kararak elde edilen kripto.

kripto anahtarı (Fra. clé de cryptage, ing. cryptographic key)
Kriptolama ve kripto çözme işlemlerinde kullanılan simge dizisi.

kripto analizi (Fra. analyse cryptographique;
cryptanalyse, ing. codebreaking, cryptanalysis)
Bir kriptografik sistemin girdi ve/veya çıktılarını inceleyerek tasnifli verilere, şifresiz bilgilere ulaşmayı amaçlayan yasadışı analiz.

kripto(grafik) güvenlik (Fra. cryptosecurité, ing. cryptographic security)
Teknik açıdan yeterli ve doğru kullanılan kripto sistemleri sayesinde elde edilen iletişim güvenliği.

kriptografi (Fra. cryptographie, ing. cryptography)
Sadece alıcısının kodunu açabileceği şekilde düzenlenmiş ve mesajların içeriğini gizlemeyi amaçlayan gizli dönüşümler bilimi.

kriptografik kimlik kanıtlanma (Fra. authentication cryptographique, ing. cryptographic authentication)
Kimlik kanıtlamasının kripto sistemlerine dayanarak yürütülmesi.

ornatımla kriptolama (Fra. cryptage par substitution, ing. substitution cipher)
Açık metnin herbir harfinin belirli bir kurala göre başka bir harfle değiştirildiği kriptolama yöntemi.

şifresiz metin (Fra. texte en clair, ing. plaintext)
Kriptografide iletilerin şifrelenmemiş, normal, okunabilir halleri.

TEMPEST güvenliği (Fra. securité d'emission, TEMPEST, ing. emission security, TEMPEST)
Teleiletişim sistemlerinden, bilgiişlem donatımından, kripto donatımından salımlanan elektromanyetik dalgalardan yetkisiz kişilerin bilgi çıkarsamalarını engelleyici güvenlik önlemlerinin tümü.

trafik dolgulaması (Fra. bourrage, ing. traffic padding)
Yapay iletimlerle düşman tarafının trafik analizini yapması ve kriptoyu çözmesini zorlaştırmak.

uçtan uca kriptolama (Fra. chiffrement de bout en bout, ing. end-to-end encipherment)
Bir iletişim ağının bir ucunda kriptolanan bilginin, ancak alıcı uçta kriptosunun çözüldüğü sistem.
 
Şifreleme:

Şifreleme, bir iletinin (düz metin) içeriğini, uygun bilgi (anahtar bilgisi) elde
olmadan okunamayacak hale getirme işlemidir. Şifrelemenin amacı, iletinin istenmeyen
şahıslar tarafından okunmasını engellemektir. Şifre çözümü (deşifre) ise
şifrelemenin tam tersi, yani şifreli metnin düz metine çevrilmesi işlemidir.

Kriptografi
Eskiden sadece askerler şifrelemeyi kullanırken günümüzde artık çok sayıda kişi ve
kurum tarafından kullanılmakta ve hatta zorunlu hissedilmektedir. Şifreleme
(kriptografi) ve Steganografi latince'den türemiş kelimelerdir. "Kryptos" gizli,
"graphia" ise yazma anlamına gelmektedir. Bir başka deyişle kriptografi, gizli yazım
sanatıdır. Kriptografi, bir mesajı şifreleyerek onun anlaşılabilirliğini ve
çözülebilirliğini engelleyerek iki taraf arasında güvenli bir iletişim sağlamayı
amaçlar.

Steganografi
Steganografi de bir başka yazma tekniğidir. Latince de "steganos" görünmeyen
anlamına gelmektedir. Böylece steganografi, herkes tarafından görünmeyen bir
iletişim çeşididir. Steganografi aslında şifrelemenin alternatifi değil onun
tamamlayıcısıdır.

Steganografi son yıllarda yeni bir şifreleme metodu olarak karşımıza çıkmaktadır. Bu
yaklaşım kısaca bir nesnenin içerisine bir verinin gizlenmesi olarak tarif
edilebilir. Bugünün steganografi teknikleri güvenliği daha da arttırmak için
şifrelenmiş verileri gizlemek için genelde s es, sayısal resim veya video
dosyalarını kullanmaktadır. Şifrelenmiş veriler kendi başlarına hacker'ların
dikkatini çekerken görüntü ya da ses dosyalarının içine gizlenmiş olduklarında hiç
kimse fark etmeyeceğinden kırılmaya da çalışılmayacaktır.

Steganografi'nin tarihi
İran Savaşları sırasında, Heredot, kafasını kazıtıp kafa derisinin üzerine, gizli
bir mesajın dövmesinin yapılmasına izin veren bir ulaktan bahseder. Mesaj
yazıldıktan sonra ulak saçının uzamasını bekler. Daha sonra mesajı bekleyen kişiye
ulaşır ve kafasını tekrar traş eder. Mesaj ortaya çıkar. Bu, steganografinin tarihte
ilk kullanımıdır.

Steganografi nedir ve digital watermarking ile ne farkları vardır ?
Saklı mesajın varlığını gizlemeyi amaçlayan bir bilgi saklama yöntemidir. Oysa,
steganografi kullanıldığında mesaj gizlenerek varlığından üçüncü tarafların haberdar
olmaması sağlanarak güvenli iletişim sağlanır. Modern steganografide, gizlenecek
mesaj onu saklayacak bir "örtü verisi"nin (cover data) içine gömülür ve örtü
verisinin insan algılamasıyla farkedilemeyecek ölçüde bozulmasına izin verir. Oysa,
digital watermarking uygulamalarında, gizlenecek mesaj "örtü verisi"nin bir
gizlenmiş özelliği olarak bulunur ve "örtü verisi" aslında ticari bir müzik veya
yazılım ürünü olduğu için bu "örtü verisi"nin bozulması istenmez.

LSB (Least Significant Bit - En az öneme sahip bit) ekleme yöntemi
"LSB (Least Significant Bit) Insertion" yöntemi, örtü verisine ait segmentlerde her
byte'ın en az anlamlı biti yerine gizlenecek verinin bitleri sırasıyla verinin
başlangıcından itibaren birer birer yerleştirilir. Burada her sekiz bitin en fazla
bir biti değişikliğe uğratıldığından ve eğer değişiklik olmuşsa da değişiklik
yapılan bitin byte'ın en az anlamlı biti olmasından dolayı, ortaya çıkan stego
verisindeki (= örtü verisi + gömülü veri) modifikasyonlar insan tarafından
algılanamaz boyuttadır. Steganaliz yapıldığında, stego verinin her byte'ının son
bitlerinin birleştirilmesiyle gizli mesajı oluşturmak kolaydır; dolayısıyla pratikte
diğer yöntemlere göre daha az güvenilirdir ve daha az kullanılır.

Sondaki bitin 1 veya sıfır olması sayının değerini çok fazla değiştirmeyecektir.
Sondaki bit değerimiz 1 yerine 0 olsaydı bu, renk üzerinde gözle görülecek büyük bir
değişikliğe neden olmayacaktı. İşte bu sondaki bitimiz LSB olarak adlandırılır. Bu
bitler yerine bizim gireceğimiz datanın verileri girilirse eğer datamız gizlenmiş
olabilir. Orijinal resimle içerisine data sakladığımız resim arasında gözle görülür
bir fark yoktur.

Günlük yaşantıdaki işlemlerin dijitalleşme yüzdesinin hızlıca artması bunun bir
göstergesidir. Bu oran Amerika'da %60 seviyelerinde iken ülkemizde %10'un altında
olup, yapılan işlemlerin büyük çoğunluğu bankacılık işlemlerini kapsamaktadır.
Ülkemizde bilgi güvenliği için yeni yaklaşımlara duyulan ihtiyacın bu yüzdenin
artmasıyla daha da yükseleceği ortadadır.

2. dünya savaşından 35 yıl sonra açıklanan bir raporda, İngiltere ile Almanya
arasında olan savaşın seyrinin, savaş taktiklerini içeren mesajların çözülmesiyle
değiştiği bildirilmiştir. Bu şifre çözme olayı, savaşın müttefikler tarafından
kazanılmasında büyük rol oynamıştır. Boston Globe gazetesi, bu olayın 2. dünya
savaşı hakkında daha önce yazılmış tarih kitaplarında bir çok değişiklikler
yapılmasını gerektirecek kadar önemli olduğunu vurgulamıştır. Tarihi değiştirecek
kadar önemli olan şifre çözme olayı bu konunun önemini vurgulamada verilebilecek en
iyi örneklerden birisidir.
 
MD5 ve SHA

MD Nedir?
MD en basit şekilde herhangi uzunluktaki bir veriyi işleyip sonuç olarak sabit uzunlukta bir veri elde eden işlev olarak tanımlanabilir. Matematiksel olarak tanımlayacak olursak:
M: değişken uzunlukta veri, h: sabit uzunlukta veri, H: işlev
h = H(M)
Sabit uzunkta çıktı elde etmenin yanında, MD işlevinin sağlaması gereken bazı özellikler vardır. Bu özellikler söyle sıralanabilir:
• M verildiği zaman, h'yı hesaplamak kolay olmalı
• h verildiği zaman M'yi hesaplamak çok zor olmalı (hatta imkansız olmalı). Bu yönüyle MD işlevi tek yönlü işlev (one-way function) olarak adlandırılır.
• M veridiğinde H(M) = H(M') eşitliğini sağlayan M' çok zor bulunmalı (hatta imkansız olmalı)
Nerelerde Kullanılabilir?
MD işlevinin taşıması gereken özelliklerinden bahsettikten sonra, nerelerde kullanılabilir sorusu daha kolay anlaşılabilir. MD, verilerin bütünlük denetimi yani verinin değişikliğe uğrayıp uğramadığının denetlenmesi için kullanılmaktadır şeklinde özetlenebilir.
Örneğin internete indirilmek üzere yerleştirdiğiniz bir dosyaya ek olarak bu dosyanın MD sonucunuda dağıtırsanız, bu dosyayı sizin sitenizden indiren kullanıcılar, kendi bilgisayalarında bu dosyanın MD'sini hesaplayıp sizin hesapladığınız MD değeri ile kontrol ederler ve böylece indirdikleri dosyanın değiştirilip değiştirilmediğini, yani güvenilir olup olmadığını anlayabilirler (Bu noktada sizin güvenlir olduğunuz farzedilmektedir).


İleti Özümleme Algoritmaları
Bugüne kadar MD işlevi için bir çok algoritma tasarlanmıştır, fakat bunlardan sadece bir kısmı yukarıda sıralanan özellikleri birarada barındırdığından genel kabul görmüşlerdir. Bu algoritmaların başta gelenleri md5 (message digest 5) ve sha'dır (secure hash algorithm).
MD5 (Message Digest 5)
MD5, Ron Rivest tarafıdan 1992 yılında tasarlanmış bir MD algoritmasıdır. Ron Rivest, yine kendi tasarladığı MD4 algoritmasındaki bir takım zayıflıkları gidermiş ve günümüzde sıkça kuallanılan MD5 algoritması ortaya çıkmıştır. MD5, sonsuz uzunlukta veriyi girdi olarak kabul edebilir ve sonuçta 128 bit uzunluğunda bir çıktı üretir. Kısaca algoritmanın nasıl işlediğine bakacak olursak:
• MD5, veriyi 512 bitlik bloklara ayırır ve her bir blok üzerinde aynı işlem uygulanır.
• Üzerinde işlem yapılacak verinin 512 bitin katları olması gerekmektedir, fakat gerçek verimiz bu özelliği sağlamayabilir. Bu sorunu çözmek için ekleme (padding) işlemi uygulanır (gerçek verimiz 512 in katı olsa dahi ekleme yapılır!).
Ekleme işleminde şu kural gözetilir: Verinin uzunluğu 512 bitin en yakın katından 64 eksik olacak şekilde, verinin sonuna bir adet 1 ve geri kalanlar için ise 0 eklenir. Bu 64 bitlik fark verinin uzunluğunu belirtmekte kullanılır.
Bir örnekle açıklayacak olursak; diyelim verimiz 300 bit uzunlukta olsun. Bunu 448 bite (512-64) tamamlamız gerekmektedir. Dolayısı ile 301. bit olarak 1 ve geri kalan 147 tane bit için ise 0 ataması yaparız. Elimizde şu anda 448 bit var. Gerçek verimizin uzunluğu 300 bit idi ve bunuda ikilik tabanda 64 bit ile ifade edip 448 bitlik verimize ekleriz. Böylece 512-bitlik yeni oluşturduğumuz veri üzerinde MD5 algoritmasını uygulayabiliriz.
• Ekleme işleminden sonra, MD5 veriyi işlemeye başlar. Ana döngü Şekil 4.1'de görülmektedir.
Şekil 4.1. MD5 Ana Döngüsü

Döngünün başlangıcında 32 bitlik dört tane (A,B,C,D) değişken bulunur. Başlangıçta bunların değeri sabittir ve her 512 bitlik bloğu işleme soktukça bu değişkenlerin değerleri değişir ve en sondaki bloğuda işledikten sonra elde ettiğimiz A,B,C ve D değişkenlerinin değerlerini yanyana dizdiğimizde (A-B-C-D) 128 bitlik MD sonucumuzu elde etmiş oluruz.
Burada 4 adım (F-G-H-I) göze çarpmaktadır. Her adımın önceden tanımlı ve kendisine özgü birer işlevi bulunmaktadır ve bu işlevler her adımda 16 kez çağırılarak elde edilen sonuç bir sonraki adıma iletilir. Yani her bir 512 bitlik blok için MD5 algoritması 4 adım * 16 işlem = 64 adet işlem yapmaktadır. Bu kadar fazla adımın amacı simetrikliği engelleyip farklı girdiler için farklı sonuçlar üretebilme özelliğini sağlayabimektir. Aşağıda her adımda kullanılan işlevler gösterilmiştir.
Her adımda 16 kez FF işlevi hesaplanır:
from (j = 0 to 15)
FF (a, b, c, d, Mj, s, ti)
Burada:
i: adım numarası
FF (a, b, c, d, Mj, s, ti) => a = b + ((a + F(b, c, d) + Mj + ti) <<< s)
1. adım için F(X, Y, Z) = (X and Y) or ((not X) and Z)
2. adım için F(X, Y, Z) = (X and Z) or (Y and (not Z))
3. adım için F(X, Y, Z) = X xor Y xor Z
3. adım için F(X, Y, Z) = Y xor (X or (not Z))
SHA (Secure Hash Algorithm)
NİST (National Institute of Standards and Technology) ve NSA (National Security Agency) kuruluşlarının ortak çalışmaları sonucunda 1994 yılında Sayısal İmza Standardında (DSA-Digital Signature Standard) kullanılmak üzere tasarlanmış bir algoritmadır. MD5'le benzerlik göstermektedir. MD5 ile karşılaştıracak olursak;
. MD5 - SHA Karşılaştırması
• MD5'in çıktısı 128 bit iken, SHA'nın çıktısı 160 bittir. Yani MD5'te 4 adet 32 bitlik değişken kullanılırken, SHA'da 5 adet 32 bitlik değişken kullanılır.
• Her ikiside 512 bitlik bloklar üzerinde işlem yaparlar.
• SHA'da ekleme (padding) işlemi, MD5'teki ile aynı şekilde yapılır.
• SHA'da da her 512 bitlik blok için 4 adımda işlemler yapılır, fakat bir farkla: MD5'de her adımda önceden tanımlı işlevlerin kullanımı 16 kez tekrarlanırken, bu sayı SHA'da 20 kezdir.
• SHA girdi olarak maksimum 264-1 uzunluğunda veriyi kabul eder. Bunu yanında MD5 için böyle bir kısıtlama yoktur.
• SHA ürettiği 160 bitlik sonuç ile brute-force (bütün olası sonuçların denenmesi ile gerçekleştirilir) ataklara karşı daha dayanıklıdır.
Diğerleri
MD5 ve SHA'nın yanında daha birçok MD algoritması tasarlanmıştır. Bunlardan bazıları MD2, MD4, Haval, Ripe-MD, Snefru, N-Hash'dır.
 
Kriptografik Algoritmalar

Al1nt1d1r

Kriptografik Algoritmalar
Açık Anahtar Kriptosistemler
Açık anahtar kriptosistemleri, algoritmaların karmaşıklık teorisinin geliştirilmesinin yardımıyla 1970 lerde bulundu. Çözümü binlerce yıl alabilecek çok zor probleme dayalı, gizli ve açık olmak üzere iki anahtara sahip bir kriptosistemin geliştirilebileceği gözlenmiştir. Açık anahtar ile bir kişi mesajlar şifreleyebilir, ve bunları gizli anahtarla deşifre edebilir. Böylece mesajları deşifre edebilecek tek kişi bu gizli anahtarın sahibidir, ama açık anahtarı bilen herkes bu mesajları gizleyebilir.
Diğer bir fikir anahtar değiş-tokuşudur. İki taraflı bir iletişimde gizli bir anahtar kriptosistemi kullanarak esaslı şifreleme için ortak bir gizli anahtar üretmek yararlı olabilir.
Gerçekten de, Whitfield Diffie ve Martin Hellman açık anahtar kriptosistemler çağını başlantan bir anahtar değiş-tokuşu protokolü oluşturmak amacıyla sayı teorisini kullanmışlardır. Bundan kısa bir süre sonra, Ron Rivest, Adi Shamir ve Leonard Adleman şifreleme ve dijital imzalar kullanma kapasitesine sahip ilk gerçek kriptosistemi geliştirdiler.
Sonraları farklı fikirleri (ör., knapsack problemleri, sonlu alanlarda farklı gruplar ve latisler) kullanan pek çok açık kriptosistemler geliştirilmiştir. Bunların pekçoğunun güvensiz olduğu ispatlanmıştır. Ancak, Diffie-Hellman protokolü ve RSA şimdiye kadar kalanların en güçlüleri olarak görülmektedir.
Terminoloji
Herhangi bir açık anahtar kriptosisteminin temel içeriği zor bir hesaplama problemidir. Kriptosistemin güvenliği, gizli anahtarın açık anahtardan elde edilebilmesi için bu zor problemin çözülmesi gerektiği ilkesine dayanmaktadır. Açık anahtar kriptografisindeki yeterli termiolojiyi burada açıklayacağız.
• Algoritmalar. Bir algoritma, belirli bir hesaplamanın nasıl yapılacağının (veya bir problemin nasıl çözüleceğinin) belirgin bir tanımıdır. Algoritmanın etkinliği problemi çözmek için gereken temel adımların sayısı olarak ölçülebilir. Böylece, eğer algoritmanın O(n) zaman aldığını söylersek bu demektir ki algoritma n temel adım almaktadır, ama bir adımın ne kadar zaman aldığını belirtmiyoruz.
• Hesaplanabilir Karmaşıklık. Eğer bir problemin çözümü için kullanılan algoritma O(nt) adımdan daha az adım alıyorsa ( ) o zaman bu probleme polinom zaman yada P de demir. Hiçbir NP-güç problem için bilinen herhangi bir polinom zaman algoritması yoktur, ve bu tip algoritmaların gerçekte olmadığına inanılmaktadır.
Açık anahtar kriptografisinde saldırgan, genel bir çözüm bulmaya çalışmaktansa, bir problemin belirli kısımlarını çözmekle ilgilenir (verilen bazı sayıların çarpanlarını bulma gibi). NP-güç olan bir problemin bazı kısımları genelde kolaylıkla çözülebileceinden, bu, kriptograflar açısından endişeye sebep olur.
• Asal Sayılar. Bir asal sayı 1 ve kendisi haricindeki hiçbir sayıya tam bölünemeyen bir sayıdır. Böylece, 2,3,5,7,11,... vs. gibi sayılar asal sayılardır. Sonsuz adet asal sayı vardır ve şu ana kadar bilinen en büyük asal sayı (26,972,593)-1 dır.
• Çarpanlara Ayırma. Her tamsayı, asal sayıların çarpımı ile temsil edilebilir. Örneğin, 10 = 2 * 5. Çarpanlara ayırma sanatı neredeyse matematiğin kendisi kadar eskidir. Ancak, çarpanlara ayırma için hızlı algoritma arayışları birkaç on seneliktir.
Hızlı algoritmalar, girdi sayısını kalan sayı asal oluncaya kadar küçük asal sayılar ile arka arkaya bölmeye çalışırlar. Bu ancak 1016 civarındaki tamsayılar için yeterli bir yoldur, ki burada algoritmanın 108 e kadarki tüm asalları denemesi gerekir. Çarpanlara ayırma problemini kullanan,Açık anahtar kriptosistemlerinde sayılar 10300 genişliğindedir ve bu 10150 ye kadarki tüm asalların denenmesini gerektirir. Ve ayrıca, asal sayılar teoremine göre 10147 civarında bu tip asal sayı vardır. Bu sayı evrendeki atomların tahmini sayısından daha fazladır.
Çarpanlara ayırmada verilen tamsayı küçük asal çarpanlara sahip olduğunda kolaydır. Örneğin, 759375 sayısını 35* 55 şeklinde kolayca çarpanlarına ayırabiliriz. Kriptografide sadece, büyük asal çarpanlara sahip tamsayılar kullanmayı isteriz. genelde de, RSA kriptosistemindeki gibi, iki büyük asal çarpan seçeriz.
Şu anda kullanılan en iyi çarpanlara ayırma algoritması Number Field Sieve (NFS - Sayı Alanı Elemesi) dir, ki bu bir eleme safhası ve bir matris adımını içerir. Eleme safhası pek çok katılımcı arasında dağıtılabilir, ama matris adımını süper bilgisayarlarda yapmak gerekir. NFS nin etkinliği, 10150 civarındaki herhangi bir tamsayıyı bir kaç aylık bir süre içerisinde çarpanlarına ayırması ile anlaşılabilir hale gelmiştir. NFS algoritması subexponential zaman alır ( ki bu hala etkili değildir).
Tamsayıların çarpanlarına ayırılmasının ne NP-güç olduğuna nede polinom zamanda çözülemeyeceğine ilişkin bir kanıt yoktur. Eğer herhangi bir NP-güç polinom zamanda çözülebilirse, çarpanlara ayırma da çözülebilir, ama bunun olabilmesi için çok az bir umut vardır.
 
• Kesikli Logaritma. Diğer bir önemli problemler sınıfı, y = gn olmak üzere, y verilmişken n 'nin bulunması problemidir. Problem tamsayılar için kolaydır, ama biraz değişik bir kümeyle çalıştığımızda çok zor bir hale gelir.
gn 'deki n 'nin doğasını anlaşılmaz hale getirmek için, tamsayıların sonsuz kümesini, kalan sınıflarının sonlu bir kümesine ayırıyoruz. Sezgisel olarak, tamsayılar kümesini alıp kağıt havlu rulosu gibi (çevresi m uzunluğunda olan) bir ruloya sarıyoruz.
0, m, 2m, 3m, ... sayılarının hepsi ruloda aynı noktaların üzerine gelir, ve bu yüzden aynı denklik sınıfındadırlar denir (ayrıca "0 = m = 2m = ... (mod m)" de yazarız). Her denklik sınıfı 0 .. m-1'de bir temsilciye sahiptir. Böylece her t tamsayısı için, n tamsayısını t + km olarak yazabiliriz, 0<= t < m. n = t (mod m) yazmak bir gelenek halini almıştır. Burada m'ye modülüs denir.
Gösterilebilir ki bu tamsayılar sınıfları ile toplama, çıkarma ve üs alma işlemlerini yapabiliriz.
Bu yapı, p bir asal sayı olmak üzere, m=p iken, genelde bir asal alanı veya bir Galois alanı GF(p) olarak adlandırılır. Matematik terminolojisine göre, p modülüs olmak üzere, bu yapı p karakteristiğinin bir sonlu alanıdır. Eğer m asal sayı değilse bu yapıya bir (sonlu) halka denir. Grup, halka ve alanlarla ilgili daha fazla bilgi için kapsamlı bir cebir kitabına bakabilirsiniz.
Bir sonlu alanda kesikli logaritma problemi (p karakteristiğinin, p bir asal sayıdır) şöyle ifade edilir: iki sıfırdan farklı pozitif a, g tamsayıları verilsin(her ikisi de p den küçük), n yi hesapla öyleki a = gn (mod p). Cevabın var olması gerekebilir. Bu problemi kriptografik olarak zorlaştırmak için p büyük bir asal sayı olmalıdır (yaklaşık 10300) ve n de, genelde, aynı büyüklüktedir.
Bu problemin halen çarpanlara ayırma kadar zor olduğu düşünülmektedir. Şu an bilinen en iyi metod kesikli logaritma için Sayı Alanı Elemesi'dir (çarpanlara ayırma için NFS ile benzer fikirleri kullanır). Ama kesikli logaritma problemi için diğer başka önemli metodlar da vardır.
Pollard'ın rho ve lambda algoritmaları ve ayrıca Shanks'in baby-step-giant-step (küçük-adım-dev-adım) algoritması. Bunlar genel kesikli logaritma algoritmalarıdır (ve yukarıdaki yapıya muhalif değildir). Bunlar temel grup yapısını kullanır ve genel durumdaki kesikli logaritmayı bulmak için sadece g adımın sırasının (order) kare köküne ihtiyaç duyar. Ayrıca g nin sırasının küçük asal çarpanlara ayrıldığı durum için Pohlig-Hellman algoritması vardır.
Kesikli logaritma problemi tamsayı çarpanlara ayırmadan daha karmaşık görünebilir, ama pek çok yönden bunlar benzerdir. Çarpanlara ayırma için kullanılan pekçok fikir kesikli logaritmalara da uygulanabilir. Kesikli logaritma hesaplaması için bir polinom zaman algoritması bulmak için pek az umut vardır (örneğin, p karakteristiğinin sonlu alanında). Böyle bir durumda öyle görünmektedir ki çarpanlara ayırma problemleri etkin bir şekilde çözülebilirler.
Zor kesikli logaritma problemleri için diğer pekçok yapı eliptik eğrileri ve sonlu alanlar üzerine diğer grup yapılarını içermektedir. Genel metodlar her yapıda çalışır, ama NFS algoritması çalışmaz. Bu ayrıca, çarpanlara ayırma temelli kriptosistemlerden ziyade kesikli logaritma temellilerin kullanımı için bazı anahtar genişliği yararları sağlamaktadır.
• Knapsack ler. Tamsayıların küçük bir kümesi verilsin, knapsack problemi bu tamsayıların toplamının verilen bir tamsayıya eşit olduğunun belirlernmesini içerir. Örneğin (2, 3, 5, 7) ve 10 verilmiş olsun, 2 + 3 + 5 = 10 çözümünü bulabiliriz ve böylece knapsack problemi kaba kuvvet tarama ile çözülmüş olur.
Genel knapsack-probleminin NP-güç olduğu ispatlanabilir, ve böylece açık anahtar kriptosistemlerde kullanım için çarpanlara ayırma ve kesikli logaritmadan daha üstün olduğu görülmektedir. Maalesef, bu düşünceyi kullanan tüm kriptosistemler kırılmışlardır - kullanılan problem örnekleri gerçekten NP-güç olmadıkları için
 
• Lattis ler. Şimdi bir wi = < w1, ..., wn> i = 1, ..., m için, vektör temeli ve bu temelden üretilen latisi tanımlayalım. Burada, latisin elemanları t1w1 + t2w2 + ... + tmwm, yapısındadır, öyleki ti ler tamsayılardır.
Bir latisteki en kısa vektörü bulmak ( Öklid uzaklığını kullanarak) bir NP-güç problemdir (yeterince geniş boyuttaki latisler için).
Ancak, Lenstra, Lenstra ve Lovasz tarafından geliştirilen meşhur LLL-algoritması polinom zamanda yaklaşık bir çözüm hesaplayabilmektedir. LLL-algoritmasının etkinliği pek çok durumda yaklaşık çözümlerin yeterince iyi olmasından ve sürpriz bir şekilde LLL-algoritmasının en kısa vektörü vermesinden kaynaklanmaktadır. Gerçekte, bu algoritma latis problemleri ve knapsack ler üzerine kurulu kriptosistemleri kırmak için sıkça kullanılmaktadır. Ayrıca, RSA ve DSS ye yapılan saldırılarda da uygulanmıştır.
Pratik (Uygulanabilir - Practical) Kriptosistemler
Açık anahtar kriptografisine olan yoğun ilgi uygulama açısından önemli pek çok kriptosistem gelişmesine neden olmuştur. Aşağıda, altında yatan problemle ile birlikte bazı kriptosistemler listelenmiştir.
Temel bir rehber olması açısından, bir açık anahtar kriptosistemi zor bir problemden şu şekilde elde edilmektedir: bir örneği polinom zamanda çözülebilecek zor bir problemi ele alın (örneğin, NP-güç). Bir mesajı şifrelemek için, mesajı zor problemin kolay bir şekline çevirin, sonra kolay problemi zor probleme çevirmek için açık anahtarı kullanın. Elde edilen sonuç, güvenli olmayan bir kanaldan alıcıya iletilir. Mesajın deşifre edilmesinde, zor problem açık anahtar kullanılarak kolay probleme çevrilir ve sonra bu kolay problem çözülür. Bütün açık anahtar kriptosistemler, (altlarında yatan problem veya açık ve gizli anahtarın yapısı farklı olması gibi) bazı farklar olsa da, bu prensibi kullanır.
Uygun anahtar uzunluğu üzerine iyi bir inceleme için Lenstra ve Verheul'ün Selecting Cryptographic Key Sizes (Kriptografik Anahtar Uzunluğunun Seçimi)'ne bakınız ( Public Key Cryptography 2000 'de yayınlanmıştır). Bu kitapta hemen hemen tüm kriptosistemler için anahtar genişliklerinin tam bir analizi sunulmuştur.
Aşağıda, uygun olan yerlerde, herbir kriptosistemde anahtar genişlikleri için bazı tavsiyeler bulunmaktadır. Bu tavsiyeler kimi zaman Lenstra ve Verheul'ünkinden bazı farklılıklar göstermektedir.
Çarpanlara Ayırma: RSA, Rabin
• RSA (Rivest-Shamir-Adleman) muhtemelen en yaygın kullanılan açık anahtar algoritmasıdır. Hem şifreleme hem de dijital imzalar için kullanılabilir. Henüz kanıtlanmamış olmasına rağmen, RSA nın güvenliğinin çarpanlara ayırmaya denk olduğu düşünülmektedir.
RSA hesaplaması, iki gizli büyük p, q asalı için, tamsayı modülosu n = p * q ile yapılmaktadır. m mesajını şifrelemek için, m'nin küçük bir açık üs (public exponent) ile kuvveti alınır. Deşifre etmek için, c = me (mod n) şifreli-mesajının alıcısı d = e-1 (mod (p-1)*(q-1)) çarpılabilir tersini hesaplar ve cd = m e * d = m (mod n) yi elde eder. Gizli anahtar n, p, q, e, d'den oluşur (öyleki p ve q unutulabilir); açık anahtar sadece n, e' yi içermektedir. Saldırganın sorunu odur ki, e nin tersi d nin elde edilmesinin, n'nin çarpanlara ayrılması probleminden daha kolay olmadığı düşünülmektedir. Konu üzerine daha ayrıntılı bilgiler Handbook of Applied Cryptography'de bulunabilir.
Anahtar genişliği (modülüsün genişliği) makul bir güvenlik düzeyi için 1024 bitten daha geniş (örneğin, 10300 genişliğinde) olmalıdır. 2048 bitlik anahtar genişlikleri daha onyıllarca yeterli güvenliği verebilecektir.
Geniş tamsayıları çarpanlara ayırmadaki çarpıcı ilerlemeler RSA'yı saldırılara karşı güvensiz kılabilir, ama bazı varyantlara karşı diğer saldırılarda ayrıca bilinmektedir. İyi uygulamalar, şifreli-mesajın çarpılabilir yapısını kullanan saldırıları engellemek için, gereğinden fazlalığı (veya belirli yapı ile yalandan doldurmayı) kullanır. RSA seçilmiş düz metin saldırıları ve donanım ve hata saldırılarına karşı savunmasızdır. Ayrıca, çok küçük üslere karşı önemli saldırılar olduğu gibi, modülüsün çarpanlara ayrılmasının kısmen ortaya çıkarılmasına karşı da saldırılar bulunmaktadır.
RSA algortimasının gereğinden fazlalık ile doğru uygulanması PKCS standartlarında ayrıntılı olarak açıklanmıştır (bknz. rfc 2314 ve rfc 2315 ve rfc 2437 . Bu dokümanlarda şifreleme ve dijital imzaların nası uygulanması gerektiği ve anahtarların stoklanması için kullanılması gerekli formatlar hakkında detaylı bilgiler verilmektedir. Çıplak RSA algortiması hiçbir uygulamada kullanılmamalıdır. Tavsiye edilmektedir ki uygulamalar, pekçok büyük protokol ile ortak çalışmanın verdiği faydalar sebebiyle, standartları takip etmelidirler.
• Rabin kriptosistemi,çok farklı bir şifre çözme süreci olmasına rağmen, RSA'nın bir akrabası olarak görülebilir. Rabin'i ilginç yapan, bunun kırılmasının çarpanlara ayırmaya denk olduğunun ispatlanabilmesidir.
RSA tek tamsayılar kullanırken, Rabin 2 kuvvetini (üssünü) (veya herhangi bir tamsayı) kullanır. Bunun iki önemi vardır. Birincisi, Rabin kriptosisteminin çarpanlara ayırmaya denk olduğu ispatlanabilir; ikincisi ise, deşifre etme süreci daha zor hale gelmektedir - en azından bazı bakımlardan. Bu ikinci durum, deşifre sürecinin olası sonuçlarının hangisinin doğru olduğuna karar verme problemi ile ilişkilidir.
Modülüsün çarpanlara ayrılması ile denk olduğundan, mdolüsün genişliği en önemli güvenlik parametresidir. 1024 bitten daha büyük modülüler güvenli kabul edilmektedirler.
 
Rabin algortiması için mevcut herhangi bir standart yoktur, ama pek çok kitapta açıklanmıştır. http://www.manta.ieee.org/groups/1363/ projesi bir standart önerebilir ve böylece daha geniş kullanım sağlanabilir.
Çarpanlara ayırmaya denk olması demek odur ki, Rabin kriptosistemi ile şifrelenmiş herhangi bir mesajı deşifre etmek, modülüsün çarpanlara ayrılması için bir metod önerebilir. Böylece herhangi bir güvenlik garantisi kalmayacaktır. Pek tabii ki, saldırgan, örneğin bazı uygulama detaylarını, istismar etmesi olasıdır.
• Referanslar:
o R. Rivest, A. Shamir, and L. M. Adleman: Cryptographic Communications System and Method. US Patent 4,405,829, 1983.
o Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone: Handbook of Applied Cryptography.
o Bruce Schneier: Applied Cryptography.
o Jennifer Seberry and Josed Pieprzyk: Cryptography: An Introduction to Computer Security.
o Man Young Rhee: Cryptography and Secure Data Communications.
o Hans Riesel: Prime Numbers and Computer Methods for Factorization.
Kesikli Logaritmalar: Diffie-Hellman, ElGamal, DSS
• Diffie-Hellman anahtar değiş-tokuşu için yaygın olarak kullanılan bir protokoldür.
Pek çok kriptografik protokolde iki taraf aralarında bir iletişim başlatmak isterler. Ancak, varsayalım ki başlangıçta herhangi bir ortak gizliliğe sahip olmasınlar, ve böylece gizli anahtar kriptosistemlerini kullanabilirler. Bu durum için, Diffie-Hellman protokolü tarafından sağlanan anahtar değiş-tokuşun, güvenli olmayan kanallar üzerinden ortak bir gizli anahtar iletiminin sağlanmasına bir çare bulmuştur. Diffie-Hellman problemi olarak adlandırılan bu yöntem, kesikli logaritmalarla ilgili bir problem üzerine kurulmuştur. Bu problemin çok zor olduğu , ve bazı durumlarda kesikli logaritma problemi kadar zor olduğu düşünülmektedir.
Diffie-Hellman protokolünün, uygun bir matematiksel grup kullanıldığında genelde güvenli olduğu düşünülmektedir. Özel olarak, üslü ifadelerde kullanılan üretici eleman geniş bir peryoda (sıraya) sahip olmalıdır.
Kesikli logaritma algoritmaları Diffie-Hellman'a saldırmak için kullanılabilir, ve -parametrelerin doğru olarak seçildiğini kabul edersek- şu anda yapılabileceklerin en iyisi pasif saldırılardır. Eğer alışıldık bir aritmetik modülo asıl sayı kullanılarak Diffie-Hellman uygulanılırsa, yeterince geniş bir asal seçmek ve üretici elemanın seçiminde özen göstermek yeterli olacaktır. Güç algılanan problemler, üreteçin kötü seçimlerinden kaynaklanıyor olabilir. Ortaya çıkabilecek problemler üzerine pek çok makale yazılmıştır, en iyi bilinen referanslardan biri Oorschot ve Wiener'ın On Diffie-Hellman key agreement with short exponents (Eurocrypt'96) makalesidir.
Diffie-Hellman'a karşı yapılan saldırılardan biri de ortadaki adam saldırısı dır. Bu saldırı uyarlanabilir müdaheleye (adaptive intervention) gerek duyar, ama eğer protokol dijital imzalar gibi ?sayaç-sayıcılar (countermeasures) kullanmazsa uygulamada bunu yapmak çok kolaydır.
Genelde Diffie-Hellman donanım üzerinde uygulanmaz, ve böylece donanım saldırıları önemli bir tehdir oluşturmazlar. Gelecekte, mobil iletişim yaygınlaştığında, bu durum değişebilir.
• DSS (Digital Signature Standard - Dijital İmza Standartı). Birleşik Devletler Hükümeti tarafından deskteklenen bir sadece-imza mekanizmasıdır. Bu standartın altında yatan DSA (Dİgital Signature Algorithm - Dijital İmza Algoritması), ElGamal veya Schnorr tarafından kullanılan imza algoritmalarından daha kolaydır. Ayrıca, doğrulama safhasında RSA'nın galip gelmesine rağmen, oldukça etkilidir ve diğer imza algoritmalarını arkada bırakmaz (leave behind). Mesaj özetlerinin hesaplanması için, DSS nin sadece SHA-1 algoritmasını kullanması, Standart tarafından tanımlanmaktadır.
DSS ye ilişkin ana problem, güvenlik düzeyini sadece 80 bit ile sınırlayan sabit altgrup genişliğidir (üretici elemanın sırası). Donanım saldırıları DSS'nin bazı uygulamalarında bir sorun yaratabilir. Ancak, bu algortima yaygın olarak kullanılmakta ve iyi bir algoritma olduğu düşünülmektedir.
• ElGamal açık anahtar cipher'ı. Bu, Diffie-Hellman'ın paylaşılmış gizli bilgi üretimi üzerindeki orjinal fikrin geliştirilmiş halidir. Esasen, ortak bir gizli bilgi üretir ve bir nlok veriyi şifrelemek için bunu tek-zamanlı bir pad gibi kullanır. ElGamal, DSS nin atasıdır ve bunun için yaygın olarak bilinen bir standart oluşturulmamış olmasına rağmen bugün kusursuz bir şekilde kullanılmaktadır.
• Eliptik Eğri Kriptosistemleri kesikli logaritma metodlarını uygulamanın bir diğer yoludur. Kriptografideki eliptik eğriler temel olarak, p karakteristiğinin (p>3 olmalıdır) sonlu alanında düşünüldüğünde, y2 = x3 + ax + b denklemini sağlayan noktaların bir kümesidir. p = 2 ve p = 3 karakteristikleri için biraz farklı bir denklem gerekmektedir.
 
Eliptik eğriler üzerindeki noktalar bir araya toplanabilir ve bunlar grup adı verilen bir yapı oluştururlar (aslında bir Abel Grubu). Bu , şunu söylemenin farklı bir yoludur; aynı tamsayılarla yaptığımız gibi bunlar ile de sadece toplama ve çıkarma kullanarak aritmetik yapabiliriz.
Bunların bazı teorik faydaları vardır ve ayrıca çok pratiktirler. Hiperbolik eğriler, bir sonlu alan veya diğer bazı pek çok gruptaki kesikli logaritmalarda olduğunun aksine, eliptik eğrilerin kesikli logaritma problemlerini hesaplamak için bilinen bir subexponential algoritma yoktur. Eliptik eğriler için hızlı kesikli logaritma hesaplamasının olmamasının bir faydası anahtar genişliğinin, üretilen dijital imzaların ve şifrelenen mesajların küçük olmasıdır. Gerçekte, anahtar genişliği için güvenlik düzeyinin hesaplanmasının kolay bir yolu, bir anahtar genişliğini, bir gizli anahtar kriptosistemine bitler halinde almak ve sonra bunu 2 ile çarpmaktır.
Eliptik eğriler donanım ve yazılım ile çok etkin bir biçimde uygulanabilirler, ve hız bazında RSA ve DSS gbi kriptosistemler ile yarışabilirler. Eliptik eğri kriptosistemlerini standartlaştırmak için pek çok girişimde bulunulmaktadır (örneğin, ANSI tarafından ECDSA). Şu anda eliptik eğriler yayın olarak bilinmektedirler, ama pratikte pek kullanılmamaktadırlar.
Özel örneklere karşı saldırılarda gelişmeler kaydedilmiş olmasına rağmen, eliptik eğri kriptosistemlerinin güvenliği yıllardan beri oldukça sağlamdır. Bununla birlikte, bunlar, yıllar öncesinden araştırmacılar tarafından tahmin edilmişler ve henüz büyük bir şaşkınlık ortaya çıkmamıştır.
Lenstra ve Verheul tarafından geliştirilen XTR algoritması eliptik eğrilere karşı güçlü bir rakip haline gelebilir. Ancak, eliptik eğriler performans açısından bir miktar iyi görünmekte, ve anahtar genişliğinde kesinlikle daha iyidirler.
• LUC Lucas dizileri (Fibonacci dizileri ile ilişkili) üzerine kurulu özel bir grubu temel inşa bloğu olarak kullanan bir açık anahtar kriptosistemidir. Genel kesikli logaritma temelli tüm algoritmaları uygulayabilmektedir, ve bir bakıma LUC, açık anahtar algoritmalarının bir sınıfıdır.
Algoritmanın altında yatan yapıyı, p karakteristiğinin 2 derecesi ile bir sonlu alanın kesin bir çarpılabilir grubu olarak görmek mümkündür (kısaca Fp2 ile gösterilir) - ve kesikli logaritmaların hesaplanması için subexponential bir algoritmanın varlığını ispatlar, ve böylece LUC algoritmasına saldırılabilir. Böylece, sonlu alanlar üzerindeki kesk-ikli logaritma temelli algoritmaların uygulanmasının bir diğer yolu olarak, pek az ilgi çekmektedir. Ancak LUC, Lucas dizilerinden türetilen özel aritmetik işlemleri kullanarak (sabit bir katsayı faktörü ile) direkt yaklaşımdan bir miktar daha hızlı olabilir.
LUC aritmetiğine dayalı farklı açık anahtar algoritmaları LUCDIF (LUC Diffie-Hellman), LUCELG (LUC ElGamal), ve LUCDSA (LUC Dijital İmza Algoritması) olarak adlandırılırlar. Bu türden pek çoğu patentlenmiştir.
Gerçek odur ki LUC algoritmasında kullanılan değerler, p tamsayı modülosuma karşı bazı ekstra avantajlar sağlayan değer çiftleri olarak görülebilirler. Hesaplamalar sadece ikinci durumda gerekebilecek bitlerin yarısına ihtiyaç duyan sayıları içerir. LUC grup işlemleri hesaplaması kolay olduklarından, RSA ve DSS ile yarışabilecek durumdadırlar.
LUC kriptosistemleri eliptik eğriler veya XTR den bir miktar daha fazla fayda sağlıyor olduklarından, kullanılmaları için çoz az bir sebep görülmektedir.
XTR Arjen Lenstra ve Eric Verheul tarafından geliştirilmiş bir açık anahtar kriptosistemidir. XTR altında yatan grup olarak özel bir sonlu alanın (aslında Fp6) özel bir çarpımsal grubunu kullanması dolayısıyla LUC a benzemektedir. Ancak, XTR dijital imzalar ve şifrelenmiş mesajlar için bitlerin sadece 1/3üne ihtiyaç duymak gibi alışılmamış bir özelliğe sahiptir. Bu, grubun elemanlarının belli bir iz-betimlemesi (trace-representation) kullanılarak yapılmakta, ve tüm hesaplamalar bu betimleme kullanılarak gerçekleştirilmektedir.
Kesikli logaritma temelli tüm açık anahtar algoritmaları XTR düşüncesi ile gerçekleştirilebilir. O yüzden bir yönden, LUC a benzer olarak XTR, açık anahtar algoritmalarının bir sınıfı için genel bir isimdir.
Algoritma etkilidir ve Lenstra ve Verheul'e göre eliptik eğriler, DSS ve hatta RSA için bile bir yedek olabilir. DSS gibi aynı kesikli logaritma problemine dayalı eliptik eğrilere karşı bir avantajı olması kriptograflar ve diğerlerine güçlü bir algoritma olduğunun anlaşılması için yardımcı olabilir.
Yakın zamanda latis temelli kriptosistemlere karşı yoğun bir ilgi olmaktadır. Nedenlerden biri, latis problemlerinin bazı sınıfları NP-Güç türler, ve pekçok etkili kriptosistem yapılmış ve güçlü görünmektedirler.
NTRU 1990 ların ortalarında etkili bir açık anahtar cipher'ı olarak önerilmiş bir kriptosistemdir. Latis problemine dayalıdır, ve bazı ilginç özelliklere sahiptir.
İlk versiyonlardan bazılarının problemleri vardır, ama mevcut versiyon bazı US standartlları tarafından önerilmektedir.
 
Gizli Anahtar Kriptosistemleri (Simetrik Şifreleyiciler)
Gizli anahtar algoritmaları hem şifreleme hemde şifre çözmek için aynı anahtarı kullanırlar (veya biri diğerinden türetilebilir). Bu, veri şifreleme için daha kestirme, matematiksel açıdan daha az problem çıkaran bir yaklaşımdır ve uzun zamandan beri kullanılmaktadır.
Aşağıdaki terminoloji, simetrik şifreleyiciler incelenirken sıkça kullanılır.
• S-kutuları: n adet biti m adet bite adresleyen tablolar (genelde n ve m denktirler).
Şİfreleyiciler için S-kutuları yapmanın ve bunları ölçmek için pek çok yol vardır. Bazı tasarımcılar belirli saldırılara karşı dayanıklı S-kutuları yaratmak için bükülmüş(bent) fonskiyoları (veya ilişkili) kullanan özenli matematiksel bir yaklaşım kullanmaktadırlar. Diğer tasarımcılar S-kutularını matematiksel ispatları daha zor olan buluşsal yaklaşımı kullanırlar, ama bu ekstra faydalar sağlayabilir (pekçok farklı uygulama seçenekleri gibi).
S-kutusu, şifreleyicinin tek linner olmayan kısmı olabilir. Bu, DES blok şifreleyicisindeki durumdur, ve böylece algoritmanın tek en önemli kısmı olarak görülebilirler. Aslında, kimileri DES'in S-kutularının o kadar iyi olduğunu düşünmekteler ki bunları kendi tasarımlarında da kullanmaktadırlar (örneğin, Serpent).
• Feistel ağları (networks): Bir Feistel ağı, basit fonksiyonlardan blok şifreleyiciler inşa eden bir genel cihazdır. Orjinal fikir, Horst Lucifer tarafından icat edilen, Lucifer blok şifreleyicisinde kullanılmıştır. Sonraları, pek çok varyasyonları geliştirilmiştir.
Basitçe; standart Feistel ağı n adet bitten n adet bite bir fonksiyon alır ve 2n adet bitten 2n adet bite tersinebilir bir fonksiyon üretir.
One-Time Pad
One-time pad (OTP) mutlak güvenli (uygulamada kırılamaz) olduğu ispatlanabilen tek şifreleyicidir. Aynı zamanda, ispatlanmıştır ki herhangi bir kırılamaz, mutlak güvenli, şifreleyici prensipte bir one-time pad olmalıdır.
(1917 de G. Vernam tarafından keşfedilen) Vernam şifreleyicisi OTP nin iyi bir örneğidir. Bu şifreleyici oldukça basittir: düzmetin mesajını içeren bitlerin bir akışını(stream) alın, ve mesajın uzunluğuyla aynı uzunlukta bir anahtar alın, ama anahtarın bir bölümü asla iki kez kullanılmamalıdır (aksi halde şifreleyici kırılabilir). Böylece, aynı uzunlukta rasgele gizli anahtarların değiş-tokuşu problemi için gizli verinin değiş-tokuşu problemini ele aldık. Bu şifreleyici icat edildiği günden beri yaygın olarak kullanılmakta ve 1949 yılında C. Shannon tarafından güvenli olduğu ispatlanmıştır.
Bu konu ile ilgili ayrıntılı bilgi pek çok kitapta, örneğin D. Stinson'ın Cryptography: Theory and Practice isimli kitabında bulunabilir.
DES
Data Encryption Standard (Veri Şifreleme Standartı)(DES) 1970 lerin ortalarında geliştirilmiş bir algoritmadır. ABD Ulusal Teknoloji ve Standartlar Enstitüsü (NIST) tarafından bir standart haline getirilmiş, ve ayrıca dünya çapında pek çok hükümet tarafından da kullanılmıştır. Geçmişte ve şimdi özellikle finans sektörlerinde yaygın olarak kullanılmaktadır.
DES 64-bit blok genişliğine sahip bir blok şifreleyicidir. 56-bit anahtarlar kullanır. Onun bu özelliği, modern bilgisayarlar ve özel-amaçlı donanımlar ile yapılan ayrıntılı anahtar taramalarına karşı kuşku duyulmasına sebep olmaktadır. DES pek çok rasgele hacker grupları ve bireylerini dışarda tutmak için halen yeterince güçlüdür, ama hükümetler, suç örgütleri veya büyük şirketler tarafından özel donanımlar kullanılarak kolayca kırılabilir. DES gün geçtikçe güçsüzleşmektedir ve yeni uygulamalarda kullanılmamalıdır.
DES'in bir varyantı, Üçlü-DES (3DES) , DES'İn üç kere kullanılması temeline dayalıdır (normalde, farklı, ilişkisiz anahtarlar ile şifreleme-deşifre-şifreleme sırası ile). Üçlü-DES (tekli) DES'e göre çok daha güçlüdür, ancak yeni blok şifreleyiciler ile karşılaştırıldığında oldukça yavaş kalmaktadır.
Bununla birlikte, DES günümüzün uygulamaları için az öneme sahip olsa da, bunun hala önemli olduğunu düşünmemizi gerektiren pek çok sebep vardır. Sektörde en çok yayılmış ilk blok şifreleyicidir. Böylece halka, güçlü kriptografinin kullanılmasına olanak sağlamada önemli bir rol oynamıştır.
Ayrıca bir kaç yıl kullanılması düşünülerek tasarlanan bir şifreleyiciye göre olağanüstü iyidir. DES in çok güçlü bir şifreleyici olduğu kanıtlanmıştır ve herhangi bir ilginç kriptanalitik saldırının ortaya çıkması için on yıldan fazla bir zaman geçmesi gerekmiştir. Diferansiyel ve lineer kriptanalizin gelişmesi, blok şifreleyicilerin tasarımının gerçekten anlaşılmasında çok faydalı olmuştur.
DES'in tanıtıldığı zaman tasarım felsefesi gizli tutulmuş olmasına rağmen, bu -karşı tarafın- analizle uğraşmasını engellememiştir. Tasarımı hakkında bazı bilgiler basılmıştır, ve orjinal tasarımclardan biri,Don Coppersmith, 1974 de DES'i tasarlarken diferansiyel kriptanalize benzer fikirleri keşfettiklerini belirtmiştir. Ancak, bu temel fikirlerin yeniden keşfedilmesi sadece bir zaman sorunu idi.
Bugün bile, DES artık pratik bir çözüm olarak görülmediğinde, yeni kriptanalitik tekniklerin açıklanması için sıklıkla kullanılmaktadır. Bilinen tek gerçek zayıflığı küçük anahtar genişliği (ve belki de küçük blok genişliği) olduğu halde, bugün bile DES'i tamamen yapısal bir yolla kırabilecek herhangi bir kriptanalitik teknik yoktur.
AES
DES'e karşı saldırıların artması sonucu NIST 21. yüzyıl ihtayaçlarını karşılayacak resmi bir halef için öneri çağrısında bulunmuştur. Bu halef Advanced Encryption Standart (Gelişmiş Şifreleme Standartı) (AES) olacaktır, ve karar 2001 yazında verilecektir. 5 algoritma ikinci raund'a kalmıştır, bunlardan bir veya daha fazlası nihai standart olacaktır. Tüm cipherlar (şifreleyiciler) 128 bit blok genişliğine sahiptirler ve 128, 192 ve 256 bit anahtarları desteklemektedirler. Etkili hash fonksiyonlarının inşaası için muhtemelen büyük anahtar genişlikleri gerekebilir.
• Mars Zunic ve arkadaşları tarafından. Mars Bu, ağırlıklı olarak, modern 32-bit işlemciler üzerinde bulunan komut setlerine bağlı ilginç bir tasarımdır (özel bir Feistel ağını kullanmaktadır). hedef makinalar için etkili olması fayda sağlamaktadır, ama akıllı kartlar gibi ucuz tasarımlarda uygulama güçlükleri çıkarabilir.
• RC6 http://www.rsasecurity.com/rsalabs/aes/index.htmlRivest, Robshaw ve Yin tarafından... RSA Labs
RC6, pekçok yeni gelişmeleri uygulayarak, RC5'in fikirlerini takip etmektedir. Örneğin, RC5'in veri-bağımlı rotasyonlarına saldıran diferansiyel saldırıların bazılarını önlemeye çalışmaktadır. Ancak, çok daha ileri giden bazı saldırılar var, ve RC6 nın henüz yeterince analiz edilip edilmediği açıklık kazanmamıştır.
• Rijndael
Joan Daemen ve Vincent Rijmen tarafından.
Rijndael kare şifreleyiciler (square ciphers) geleneğini takip etmektedir. Çok hızlıdır - herhangi bir platformdaki en hızlı AES adaylarından biridir. Çoz iyi görünebilir, ama çok az döngüsü (rounds) olduğuna dair eleştiriler bulunmaktadır.
 
• Serpent Anderson, Biham ve Knudsen tarafından... <NBSP&><NBSP&><NBSP&>Cambridge University .
Serpent tutucu ama aynı zamanda yenilikçi bir yapıya sahiptir. bitslice (or vector) gate logic throughout ile uygulanabilir. Bu yapı onu, kurcalanması için çok karmaşık bir hale getirmektedir.
Tüm AES adayları içerisinde en yüksek güvenlik düzeyine sahip olmakla beraber tüm amaçlar için yeterince hızlıdır.
• Twofish Schneier ve arkadaşları tarafından.
Twofish Counterpane tarafından tasarlanmış yeni bir blok şifreleyicidir. Pek çok alternatif uygulama yolları ile, tasarımı oldukça hassastır. "Genişletilmiş Twofish takımı" tarafından, detaylı olarak kriptanaliz yapılmıştır. Temel olarak bir Feistel şifreleyicisidir, ama pek çok farklı fikirleri kullanmaktadır.
Bu şifreleyici Blowfish gibi S-kutuları bağımlıdır.
Blowfish
Blowfish Bruce Schneier tarafından tasarlanmıştır. 64-bit blok genişliğine ve değişken anahtar uzunluğuna (448 bite kadar) sahiptir. Nautilus ve PGPfone uygulamalarını da içeren bir mikar uygulamada büyük miktarda kabul görmiştür.
Blowfisd rasgeleleştirilmiş S-kutusu fikrini kullanır; anahtar planlaması yaparken, pekçok şifreleme yaparak geniş sahte-rasgele bakma-tabloları üretir. Bu yaklaşımın, diferansiyel ve lineer saldırılara karşı yüksek dereceden direnç sağladığı ispatlanmıştır. Maalesef bu ayrıca demektir ki büyük hafıza alanları (4096 byte gibi) elverişli olmadığında, pekçok ortam için seçilen bir algoritma değildir.
Blowfish'e karşı bilinen tek saldırı, onun zayıf anahtar sınıflarına dayalıdır.
IDEA
IDEA (International Data Encryption Algorithm - Uluslararası Veri Şifreleme Algoritması) Xuejia Lai tarafından ETH Zürih - İsviçre'de geliştirilmiş bir algoritmadır. 128 bitlik bir anahtar kullanır, ve genelde çok güvenli olduğu düşünülmektedir. Bir zamanlar en iyi bilinen algoritmadıydı (AES standartı ikinci raundu başlatmadan önce). Analizi için sayısız girişimde bulunulmasına karşın yayınlanmış hiçbir pratik saldırı yoktur.
En saldırılardan biri Biham, Shamir ve Biryukov'un imkansız diferansiyel fikrini kullanır. bunlar sadece IDEA'nın 4.5 döngülerine saldırabilmektedir ve bu IDEA'da kullanılan 8.5 döngüleri için bir tehdit oluşturmamaktadır. Lai, IDEA'nın diferansiyel saldırılara karşı 4 döngülerinden sonra güvenli olduğunu iddia etse de, bu saldırı hali hazırda bu sayıyı geçmiştir.
IDEA, ABD ve pek çok Avrupa ülkesinde patentlenmiştir.
RC4
RC4, Ron Rivest tarafından RSA Data Security, Inc.'de tasarlanmıştır. Birileri UseNet üzerinden algoritmanın kaynak kodunu gönderinceye kadar bir ticaret sırrıydı. Postalanan algoritmanın RC4'e denk olduğu hakkında çok güçlü kanıtlar bulunmaktadır. Algoritma çok hızlıdır. Güvenliği bilinmemektedir, ama kırılması pek kolay görünmemektedir. Hızı sebebiyle, belirli uygulamalarda kullanılabilir. Keyfi uzunlukta anahtar kullanımına izin vermektedir.
RC4 aslen bir sahte rasgele sayı üretecidir, üretecin çıktısı ?veri akışı ile özel-madendir (exclusive-ored with the data stream). Bu sebepten dolayı, aynı RC4 anahtarının iki farklı veri akışını şifrelemek için katiyen kullanılmaması çok önemlidir.
İşlem Çeşitleri
yaygın olarak kullanılan şifreleyicilerin çoğu blok şifreleyicilerdir. Blok şifreleyiciler sabit-genişlikte (genellikle 64 bit) veri bloklarını diğer bir sabit-genişlikli (muhtemelen, yine 64 bit genişliğindeki) bloğa, anahtar tarafından seçilen bir fonksiyon kullanarak dönüştürürler. Eğer anahtar, girdi bloğu ve çıktı bloğunun hepsi de n bit ise, bir blok şifreleyici temel olarak n-bit tamsayılardan n-bit tamsayıların permütasyonlarına bir bire-bir eşleme(mapping) tanımlar.
Eğer aynı anahtarla aynı blok iki kere şifrelenmişse, elde edilen şifreli-mesaj blokları da aynı olacaktır (şifrelemenin bu çeşidi elektronil kod kitabı olarak adlandırılmaktadır). Bu bilgi bir saldırgan için yararlı olabilir. Özdeş düz-metin bloklarının farklı şifreli-mesaj blokları olarak şifrelenmesi için, genelde iki standart yol kullanılır:
• CBC (cipher block chaining - şifreleyici blok zincirlemesi): Bir şifreli blok ilkin, önceki şifreli-metin bloğu ile düz-metin bloğunun XORlanması ile, ve sonra da elde edilen sonucun şifrelenmesi ile, elde edilir. Bu yol, öndeki blokların tüm takip eden blokları (öyle ki bir şifreli-metin bitinin bağımlı olduğu düz-metin bitlerinin sayısını artırır) etkilemesine sebep olur, ama ayrıca eğer bir blok kaybolursa senkronizasyon problemlerine yol açar.
• CFB (cipher feedback - şifreleyici geribeslemesi): Bir k ıncı şifreli-metin bloğu, k-1 inci şifreli-metin bloğunun şifrelenmesi ve sonucun da düzmetin üzerine XORlanması sonucu elde edilir. İlginçtir ki, bir CFB geribesleme döngüsü bir sahte-rasgele sayı üreteci olarak da kullanılabilir eğer birileri gerçek rasgele verinin bir bloğunu sıfırların takip eden blokları ile şifreleme rutini içine koyarsa(beslerse) (bu SRSÜ nin beklenen peryodu sadece n şifreleyicinin blok genişliği olmak üzere, 2n/2 civarında olmasına rağmen).
Blok şifreleyiciler, diğer şifreleyici sınıfları ile ilginç benzerliklere sahiptirler. Örneğin:
• Stream ciphers (Akış/Akan şifreleyiciler). Bir akış şifreleyicisi, her durum geçişinde bilginin bir bitini çıktı olarak veren bir durum makinasından oluşmaktadır. Bu çıktı bitlerinin akışı genelde running key - koşan anahtar olarak adlandırılır. Şifreleme sadece, koşan anahtarı düz-metin mesajına ?özel olarak gömülmesiyle (exclusively-oring) uygulanabilir.
Durum makinası bir sahte-rasgele sayı üretecinden başka bir şey değildir. Örneğin, böyle bir şeyi, bir blok şifreleyicisine kendi çıktısını tekrar tekrar şifreleterek yapabiliriz. Tipik olarak, daha ayrıntılı yapılar yüksek hızlar elde etmek için akış şifreleyicileri için kullanılmaktadır.
İyi bilinen bazı akış şifreleyicileri RC4 ve SEAL dır. Pek çok akış şifreleyicisi, GSM de kullanılan A5/1 gibi,linear-feedback shift registers (LFSR) temeline dayanır. Bunların faydası hızlı olmalıdır (genel blok şifreleyicilerinden defalarca daha hızlı).
• SSSC (self-synchronizing stream ciphers / kendi kendini senkronize eden akış şifreleyicileri): SSSC sınıfı , bit dönüşlerini ve hatta düşürülen bitleri kısa bir zaman sonra (misal, birkaç bit sonra) unutma özelliğine sahiptir.
SSSC'ler CFB-benzeri bir yolla blok şifreleyiciler kullanılarak yapılabilir. Varsayalım ki mesajın n bitini zaten şifreledik ve şifreli-metinin çoğunu biliyoruz (n şifreleyicinin blok uzunluğunu göstermektedir). Sonra, n şifreli-metin bitini şifreleyerek yeni bir koşan anahtar üretiyoruz. Yeni koşan anahtar biti olması için şifreleyicinin bir çıktı bitini alın. Bir bit ileri giderek bu prosedürü mesajın tümüne uyarlayabiliriz.
Kolayca görülebilir ki şifreli-metindeki bir bitlik hata n bit sonra deşifre edilmiş düz-metni etkilememektedir. Bu özellik şifreleyiciye kendi kendini senkronize etme özelliğini verir.
Kullanılan blok şifreleyici , örneğin yerine koyma saldırlarını önlemek için, yeterince büyük blok genişliklerine sahip olmalıdır.
Şifreleyici çeşitleri ile ilgili ayrıntılı bilgi Handbook of Applied Cryptography by Menezes et al (Menezes ve arkadaşları tarafından) da bulunabilir.
1970'den Önce
Bu bölümde, geçmişte ünlü olan bazı şifreleyiciler, uygun olanlarında tam bilgi içeren bağlantıları ile birlikte, listelenmiştir.
• Fish, Almanlar tarafından İkinci Dünya Savaşı'nda yüksek-yetkili iletişimleri şifrelemek için kullanılmıştır. Lorentz makinası adı verilen bir akış şifreleyicisi ile üretilmiştir. Fish ismi İngiliz kriptanalistler tarafından verilmiştir. Bu önemliydi çünkü sonunda Colossus (Dev) isminde ilk (veya ilklerden biri) dijital bilgisayarı geliştiren İngiliz analistlere çok büyük zorluklar çıkarmıştı.
Colossus makinası Normandiya'ya Müttefik saldırısının planlanması ve başarısında önemli bir faktör olmuştur. Fish'in kriptanalizi ile elde edilen bilgi sonucunda her Alman taburunun pozisyonu Müttefikler tarafından bilinmekteydi.
• Enigma Almanlar tarafından kullanılan bir şifreleyiciydi.
• Substitution cipher (Yer değiştirme Şifreleyicisi. Bu, temel kalem-kağıt yöntemlerinden biridir. Kendi alfabenizi ilk sıraya yazarak, ve sonra ikinci sıraya alfabenin rasgele bir permütasyonunu koyarak bir tablo oluşturun. Böylece, alfabenizin herhangi bir karakterini, ilk sıradan bakıp sonra ikinci sıradaki rasgele karakteri yazmak suretiyle şifreleyebilirsiniz. Bu yöntemin anahtarı ikinci sıradaki alfabe permütasyonudur. Deşifre aşaması da bunun tersidir.
Bu yöntem, alfabe genişliği küçük olduğu sürece, frekans analizine karşı zayıftır. Modern blok şifreleyiciler, anahtar üzerine bağımlı çok geniş bir alfabenin altına mesajı saklamaya çalışmaları açısından , bu fikrin bir çeşidi olarak görülebilirler.
 
Geri
Üst