İçeriğe atla

Drcrypt

DrCrypt şifreleme algoritması, temel XOR(Özel Veya) işlemine dayanır. DrCrypt, hızlı ve güvenilir olmak üzere geliştirilmiştir. 1 adet 2048 elemandan oluşan "Bilgi Gölgeleyici" sabitler dizisine sahiptir. İçeriği tahmin edilmesi yüksek bilgilerin açıklarını kapatmak ve bu sisteme fazladan güvenlik getirmek için eklenmiştir.
DrCrypt, kullanıcının belirttiği şifreden 32 adet sabit şifreleme anahtarı ve her bilgiye sırasına özel ve benzersiz(teoride) bir "Uzunluk Damgası" atar. Sabit dizi elemanları("Bilgi Gölgeleyiciler") bu damganın oluşturulmasında kullanılır.
DrCrypt algoritmasında şifreleme ve çözme işlemleri aynı yolla yapılır. Şifreleme işlemi için önce bilgi "Uzunluk Damgası" ile XOR(Özel Veya) işlemine sokulur. Daha sonra sırası gelen şifreleme anahtarı("32'li ") ile XOR(Özel Veya) işlemine sokulur.

Proje Detayları

DrCrypt herhangi bir lisans anlaşmasına bağlı olmayan özgür bir teknolojidir. Kullanım, değiştirme ve geliştirme için izin gerektirmez. DrCrypt projesi şu anda "Source Forge" sitesinden dağıtılmaktadır. Proje Java, .NET, Win32 platformlarını destekler.Proje Web Sitesi 4 Aralık 2013 tarihinde Wayback Machine sitesinde arşivlendi.

DrCrypt Algoritmasının Detayları (Tam Anlatımı)

Adım 1 - [ Şifreye Bağlı Sayı Üretme (Üretim Fonksiyonu) ]
   a)- Şifre uzunluğu hesaplanır.
   b)- Şifre uzunluğunun n-1 * n+1 hali hesaplanır.
   c)- 0 (Sıfır)'a eşit olan geçici bir tam sayı; 1'den şifrenin uzunluğuna    kadar kendisi, "1" (Bir, Her adımda eklenerek) ve şifrenin her char    (karakter) değerinin ASCII tablosundaki karşılığı ile toplanır.
   d)- (Şifre Uzunluğunu - 1 * Şifre Uzunluğunu + 1) işlemi sonucuna sahip    tam sayı, 1'den şifrenin uzunluğuna kadar kendisi, adım sayısı ve 1    (Bir, Her adımda eklenerek) ile toplanarak hazırlanır.
   e)- Şifrenin her hali ile benzersiz olması ve diziliminin değişiminden    ötürü bir şifrenin alternatiflerinin ortaya çıkmasını engellemek için bir    benzersizlik prosedürü uygulanır.    Benzersizlik prosedüründe, 1'den şifre uzunluğuna kadar şifrenin    ilk iki karakterinden başlayarak(her adımda 1 kayarak) ilk iki    karakterin ASCII değeri toplamı, 1. karakterin ASCII toplamı ile    modüler aritmetik işlemine sokulur ve çıkan sonuç bir tam sayıya    aktarılır ve her adımda sonuç bu tam sayıya eklenerek ilerler.
   (İşlem şifre uzunluğu-1 kez sürer.)
   Benzersizlik rakamı ASCII tablosunda birbirini takip eden    şifreler için aynıdır ancak yine de benzersizliği sağlar.    Karakter farkları bunu sağlar. Benzersizlik rakamı sadece    şifrenin kullanılan karakter ve dizilimine ait bir ek    bildirgeçtir.
   f)- Sonuç olarak şifreleme çözme sayısı aşağıdaki gibi hesaplanır.    
Şifreleme/Çözme Sayısı =
   (bkz. madde c) Geçici Tamsayi +
   (bkz. madde a)Sifre Uzunluğu +
   (bkz. madde b)Sifre Uzunluk Türevi +
   (bkz. madde e)Sifre Benzersizlik Faktörü
   Değerlerin toplanması ile oluşan sonuç ile anahtarlar üretilir.
Adım 2 - [ A, B, C, D Parametrelerinin Hesaplanması ]
   A = Şifreleme/Çözme sayısının sayı değeri
   B = Şifreleme/Çözme sayısının çarpmalı sayı değeri. (0'lar hariç)
   C = 1'den Şifreleme/Çözme sayısına kadar olan asal sayıların sayısı.
   D = 1'den Şifreleme/Çözme sayısına kadar olan ve Şifreleme/Çözme sayısı ile aralarında asal olan sayıların sayısı.
   Yukarıdakiler hesaplandığında "T Dörtgeni" isimli bir yapı oluşur.
   Kare değil de dörtgen denmesinin sebebi; her parametrenin bir kenarı
   temsil etmesi ve her birinin birbirinden farklı olmasıdır.

Adım 3 - [ Sekiz adet güçlendirilmiş "T Dörtgeni" hesaplama prosedürü. ]

   Bu adımda Şifreleme/Çözme sayısı ile A, B, C, D parametreleri kullanılarak
   1 olan dörtgen sayısı 8'e çıkarılır. Burada kullanılan X, Y, Z, P her adımda
   gereken geçici tam sayı saklayıcılardır.
   Dörtgen 1 = (X = A Xor B), (Y = D + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)
   Dörtgen 2 = (X = A Xor B), (Y = C + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = z + P)
   Dörtgen 3 = (X = B Xor C), (Y = A + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)
   Dörtgen 4 = (X = B Xor C), (Y = D + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)
   Dörtgen 5 = (X = C Xor A), (Y = B + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)
   Dörtgen 6 = (X = C Xor A), (Y = D + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)
   Dörtgen 7 = (X = B Xor D), (Y = C + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)
   Dörtgen 8 = (X = B Xor D), (Y = A + 1), (Z = X + 1), (P = Sayi Mod Y), (Sonuç = Z + P)

Adım 4) - Ham Şifreleme Anahtarları Olan M, N, O, P parametrelerinin hesaplanması
   ! - Bu parametreler ile 32 adet temel şifreleme anahtarı üretilecektir.
   M Parametresi = (A= _0 * _1), (B = A Mod _5), (C = _6 + B), (Sonuç = C)
   N Parametresi = (A= _4 * _5), (B = A Mod _1), (C = _2 + B), (Sonuç = C)
   O Parametresi = (A= _5 * _6), (B = A Mod _2), (C = _3 + B), (Sonuç = C)
   P Parametresi = (A= _7 * _6), (B = A Mod _2), (C = _1 + B), (Sonuç = C)

Adım 5) - 32 Adet Temel Anahtarın Oluşturulması
   >>> Not: Parantezler önemlidir. İşlem sırası karışmamalıdır.

   AnahtarKutusu[00] = ((((M) Xor (M)) + (M) ) * M )
   AnahtarKutusu[01] = ((((M) Xor (M)) + (M) ) * N )
   AnahtarKutusu[02] = ((((M) Xor (M)) + (N) ) * O )
   AnahtarKutusu[03] = ((((M) Xor (M)) + (N) ) * P )
   AnahtarKutusu[04] = ((((M) Xor (N)) + (O) ) * M )
   AnahtarKutusu[05] = ((((M) Xor (N)) + (O) ) * N )
   AnahtarKutusu[06] = ((((M) Xor (N)) + (P) ) * O )
   AnahtarKutusu[07] = ((((M) Xor (N)) + (P) ) * P )
   AnahtarKutusu[08] = ((((N) Xor (O)) + (M) ) * M )
   AnahtarKutusu[09] = ((((N) Xor (O)) + (M) ) * N )
   AnahtarKutusu[10] = ((((N) Xor (O)) + (N) ) * O )
   AnahtarKutusu[11] = ((((N) Xor (O)) + (N) ) * P )
   AnahtarKutusu[12] = ((((N) Xor (P)) + (O) ) * M )
   AnahtarKutusu[13] = ((((N) Xor (P)) + (O) ) * N )
   AnahtarKutusu[14] = ((((N) Xor (P)) + (P) ) * O )
   AnahtarKutusu[15] = ((((N) Xor (P)) + (P) ) * P )
   AnahtarKutusu[16] = ((((O) Xor (M)) + (M) ) * M )
   AnahtarKutusu[17] = ((((O) Xor (M)) + (M) ) * N )
   AnahtarKutusu[18] = ((((O) Xor (M)) + (N) ) * O )
   AnahtarKutusu[19] = ((((O) Xor (M)) + (N) ) * P )
   AnahtarKutusu[20] = ((((O) Xor (N)) + (O) ) * M )
   AnahtarKutusu[21] = ((((O) Xor (N)) + (O) ) * N )
   AnahtarKutusu[22] = ((((O) Xor (N)) + (P) ) * O )
   AnahtarKutusu[23] = ((((O) Xor (N)) + (P) ) * P )
   AnahtarKutusu[24] = ((((P) Xor (O)) + (M) ) * M )
   AnahtarKutusu[25] = ((((P) Xor (O)) + (M) ) * N )
   AnahtarKutusu[26] = ((((P) Xor (O)) + (N) ) * O )
   AnahtarKutusu[27] = ((((P) Xor (O)) + (M) ) * P )
   AnahtarKutusu[28] = ((((P) Xor (P)) + (O) ) * M )
   AnahtarKutusu[29] = ((((P) Xor (P)) + (O) ) * N )
   AnahtarKutusu[30] = ((((P) Xor (P)) + (P) ) * O )
   AnahtarKutusu[31] = ((((P) Xor (P)) + (P) ) * P )

Adım 6) - "Uzunluk Damgası"' nın Hesaplanması
   Uzunluk damgası şifreleme/çözme prosedürleri her işletildiğinde tekrar hesaplanır.

      a). Uzunluk Damgasi = Şifreleme/Çözme Sayisi
                            Xor
                            Yapilan Giriş Sayısı(32 bit tam sayı olarak) +
                            Bilgi Gölgeleyici(1..2048 adresindeki değerler) +
                            Golgeleyici Eleman Numarası(1..2048) +
                            Anahtar Sıra Bileti(1..32)
      b). Uzunluk Damgasi = Uzunluk Damgasi + 1

DrCrypt ile 32 bit Genişliğinde Bir Tam sayı Bilginin Şifrelenmesi Ve Çözülmesi

               Şifreleme için ...
                       a). Sonuç 1 = Bilgi XOR Uzunluk Damgası
                       b). Final Sonuç = Sonuç 1 XOR Anahtar(Sırası Gelen)
               Çözümleme için ...
                       a). Sonuç 1 = Bilgi XOR Uzunluk Damgası
                       b). Final Sonuç = Sonuç 1 XOR Anahtar(Sırası Gelen)

Çekirdek İşlem Tanımı

Aşağıdaki Delphi(Win32) kodunda temel şifreleme/çözme yapan prosedür verilmiştir.

 Inc(YapilanGiris); { Yapılan INT32 giriş sayısı (GirisSayisi/4 = Byte Sayısı) }
Inc(GolgeleyiciElemanNo); { Gölgeleyici Eleman Numarası Artışı }
Inc(SiraBileti); { Anahtar Sıra Bileti }
if GolgeleyiciElemanNo = 2048 then
begin
GolgeleyiciElemanNo := 0;
end;
if SiraBileti = 32 then
begin
SiraBileti := 0;
end;
{ 32 bit işlemcili bilgisayarlarda bilgi kaybı ve hafıza taşmasını
engellemek için yapılmış bir düzeltmedir. INT32 değerinin pozitif
maximum tepe değerinden fazla olan her giriş düzeltilir. }
if YapilanGiris >= High(Tamsayi) then
begin
YapilanGiris := Abs((YapilanGiris) - (High(Tamsayi)));
end;
UzunlukDamgasi := (SifrelemeCozmeSayisi) Xor
(YapilanGiris + BilgiGolgeleyici[GolgeleyiciElemanNo] + GolgeleyiciElemanNo + SiraBileti);
Inc(UzunlukDamgasi); { Uzunluk Damgasının Tam Benzersizliğini
(teorik olarak) sağlar. Uygulamada benzersizlik bozulabilmektedir. }
{ Bilginin int32 formatında uzunluğu ve konumu sayesinde elde ettiği
benzersiz uzunluk damgası. XOR gibi basit bir yöntemi zorlaştıran
en temel etkenlerden birisi budur.}
if UzunlukDamgasi >= High(Tamsayi) then
begin
UzunlukDamgasi := Abs((UzunlukDamgasi) - (High(Tamsayi)));
end;
tmp1 := ((Bilgi) Xor ((UzunlukDamgasi))); { Şifreleme ADIM 1 }
tmp2 := ((tmp1) Xor (AnahtarKutusu[SiraBileti])); { Şifreleme ADIM 2 }
Result := tmp2; { Bilgi Başarıyla Şifrelendi }

Kaynakça

http://drcrypt.sourceforge.net 4 Aralık 2013 tarihinde Wayback Machine sitesinde arşivlendi.

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">AES</span> Şifreleme standartı

AES, elektronik verinin şifrelenmesi için sunulan bir standarttır. Amerikan hükûmeti tarafından kabul edilen AES, uluslararası alanda da defacto şifreleme (kripto) standardı olarak kullanılmaktadır. DES'in yerini almıştır. AES ile tanımlanan şifreleme algoritması, hem şifreleme hem de şifreli metni çözmede kullanılan anahtarların birbiriyle ilişkili olduğu, simetrik-anahtarlı bir algoritmadır. AES için şifreleme ve şifre çözme anahtarları aynıdır.

RSA, güvenliği tam sayıları çarpanlarına ayırmanın algoritmik zorluğuna dayanan bir tür açık anahtarlı şifreleme yöntemidir. 1978’de Ron Rivest, Adi Shamir ve Leonard Adleman tarafından bulunmuştur. Bir RSA kullanıcısı iki büyük asal sayının çarpımını üretir ve seçtiği diğer bir değerle birlikte ortak anahtar olarak ilan eder. Seçilen asal çarpanları ise saklar. Ortak anahtarı kullanan biri herhangi bir mesajı şifreleyebilir, ancak şu anki yöntemlerle eğer ortak anahtar yeterince büyükse sadece asal çarpanları bilen kişi bu mesajı çözebilir. RSA şifrelemeyi kırmanın çarpanlara ayırma problemini kırmak kadar zor olup olmadığı hala kesinleşmemiş bir problemdir.

Rabin şifreleme sistemi, Rabin kriptoloji veya Rabin kriptosistemi, güvenliği RSA'daki gibi tam sayı çarpanlarına ayırmanın zorluğu üzerine kurgulanmış olan asimetrik bir kriptografik tekniktir. Bununla birlikte, Rabin kriptosisteminin avantajı, saldırgan tam sayıları verimli bir şekilde çarpanlarına ayıramadığı sürece, seçilmiş bir düz metin saldırısına karşı hesaplama açısından güvenli olduğu matematiksel olarak kanıtlanmıştır, oysa RSA için bilinen böyle bir kanıt yoktur. Rabin fonksiyonunun her çıktısının dört olası girdiden herhangi biri tarafından üretilebilmesi dezavantajı; her çıktı bir şifreli metinse, olası dört girdiden hangisinin gerçek düz metin olduğunu belirlemek için şifre çözmede ekstra karmaşıklık gerekir.

Tek kullanımlık şifre, Gilbert Vernam tarafından keşfedilmiş bir kripto sistemi. Kullanılacak anahtar şifrelenecek metnin boyutu kadar olmalıdır ve yalnız bir kereye mahsus üretilip kullanılmalıdır. Böylece şifrelenmiş metni ele geçiren saldırgana hiçbir bilgi verilmemiş olunur.

Kriptografide çalışma kipleri, bir blok şifrenin tek bir anahtar altında güvenli bir şekilde tekrarlı kullanımına olanak veren yöntemlerdir. Değişken uzunluktaki mesajları işlemek için veriler ayrı parçalara bölünmelidir. Son parça şifrenin blok uzunluğuna uyacak şekilde uygun bir tamamlama şeması ile uzatılmalıdır. Bir çalışma kipi bu bloklardan her birini şifreleme şeklini tanımlar ve genellikle bunu yapmak için ilklendirme vektörü (IV) olarak adlandırılan rastgele oluşturulmuş fazladan bir değer kullanır.

Paillier şifrelemesi , 1999’da Pascal Paillier tarafından geliştirilen olasılıksal açık anahtarlı şifreleme yöntemidir. n’inci kök sınıflarını hesaplamanın zorluğunu kullanan Paillier şifreleme sistemi, kararsal bileşik kök sınıfı varsayımı üzerine kurulmuştur. Sistem, toplama işlemine göre homomorfik özellik gösterir; yani sadece açık anahtarı, ve ’nin şifrelemesini kullanarak ’nin şifrelenmiş hâli hesaplanabilir.

Kriptografide blok şifreleme, blok olarak adlandırılmış sabit uzunluktaki bit grupları üzerine simetrik anahtar ile belirlenmiş bir deterministik algoritmanın uygulanmasıdır. Blok şifreleme birçok kriptografik protokol tasarımının önemli temel bileşenlerindendir ve büyük boyutlu verilerin şifrelemesinde yaygın biçimde kullanılmaktadır.

Blum–Goldwasser Kriptosistem veya Blum-Goldwasser şifreleme sistemidir. 1984 yılında Manuel Blum ve Şafi Goldwasser tarafından önerilen bir asimetrik anahtar şifreleme algoritmasıdır. Bulum-Goldwasser bilinen en verimli kripto sistemlerden biridir. RSA ile hız ve mesaj genişlemesi açısından kıyaslanabilir. Bu şifreleme algoritmasında rastgele sayı üretmek için Blum Blum Shub rastgele sayı üretme algoritması kullanılır. Büyük sayıların asal çarpanlarına ayrılma probleminin çözülemezliği kabulüne dayanan bir şifreleme algoritmasıdır.

Goldwasser–Micali (GM) kriptosistemi 1982 yılında Shafi Goldwasser ve Silvio Micali tarafından geliştirilmiş bir asimetrik anahtar şifreleme algoritmasıdır. GM standart kriptografik varsayımlar altında güvenliği kanıtlanmış ilk probabilistik açık anahtar şifreleme yöntemidir. Bununla birlikte başlangıç düz metinden yüzlerce kez daha geniş olan şifreli metinler olduğundan verimli bir kriptosistem değildir. Kriptosistemin güvenlik özelliğini kanıtlamak için Shafi Goldwasser ve Silvio Micali anlamsal güvenliğin geniş alanda kullanılan bir tanımını önerdiler.

Schmidt-Samoa şifreleme, Alman araştırmacı Katja Schmidt-Samoa tarafından 2005’te oluşturulan asimetrik kriptografi yöntemidir. Bu şifrelemenin güvenilirliği Rabin'deki gibi çarpanlara ayırma probleminin zorluğuna dayanmaktadır. Bu algoritma, Rabin'in aksine şifreleme hızı pahasına, şifre çözmede belirsizlik oluşturmamaktadır.

<span class="mw-page-title-main">Vigenère şifrelemesi</span> bir kriptoloji yöntemi

Vigenère şifrelemesi, alfabetik bir şifreleme metni kullanarak bir dizi farklı Sezar şifrelemesine dayalı harfleri kullanan bir şifreleme yöntemidir. Bu bir çeşit poli alfabetik ikame tablosudur.

<span class="mw-page-title-main">SP ağı</span>

Kriptografide, SP-network ya da koyma-değiştirme ağı(SPN), AES (Rijndael), 3-Way, Kuznyechik, PRESENT, SAFER, SHARK ve Square gibi gibi blok şifreleme algoritmalarında kullanılan bir dizi bağlantılı matematiksel işlemdir.

Kriptografide En İyi Asimetrik Şifreleme Doldurması (OAEP), bir doldurma (padding) şemasıdır ve sık sık RSA şifreleme ile birlikte kullanılır. OAEP, Bellare ve Rogaway tarafından tanıtılmıştır, ve daha sonra standart olarak PKCS#1 v2 ve RFC 2437'de yer verildi.

Bcrypt, Niels Provos ve David Mazières tarafından Blowfish şifreleme yöntemi esas alınarak geliştirilmiş ve ilk kez USENIX’te, 1999 yılında sunulmuş bir parola özet fonksiyonudur. Rainbow table saldırılarına karşı salt kullanmasının yanı sıra adaptif bir fonksiyon olma özelliğine sahiptir. İterasyon sayacı arttırılarak yavaşlatılabilir ve bu sayede kaba kuvvet saldırılarına karşı dirençli kalabilmektedir.

<span class="mw-page-title-main">CBC-MAC</span> Doğrulama kodu oluşturma sistemi

Kriptografide, CBC-MAC, bir blok şifreleme ile mesaj kimlik doğrulama kodu oluşturmak için kullanılır. Mesaj, her blok önceki bloğun düzgün şifrelenmesine bağlı olacak şekilde, bir blok zinciri oluşturmak için CBC kipinde bir blok şifreleme algoritmasıyla şifrelenir. Bu bağlılık sayesinde, şifresiz metnin herhangi bir bitinde yapılan değişikliğin, şifrelenmiş son bloğun, blok şifreleme anahtarı bilinmeden tahmin edilmesini veya etkisiz hale getirilmesini engeller.

<span class="mw-page-title-main">Simon (şifreleme)</span>

Simon, Haziran 2013'te Ulusal Güvenlik Ajansı (NSA) tarafından halka açık bir şekilde yayınlanmış bir hafif blok şifreleme ailesidir. Simon, donanım uygulamaları için optimize edilmişken, kardeş algoritması Speck, yazılım uygulamaları için optimize edilmiştir.

Kriptografide, ilklendirme vektörü kısaca İV ya da ilklendirme değişkeni, tipik olarak rastgele veya sözde rassal olması gereken bir şifreleme temelinin sabit boyuta sahip olan girdisidir. Bu rastgelelik, şifreleme işlemlerinde anlamsal güvenliği sağlamak için çok önemlidir. Anlamsal güvenlik tek bir şifreleme yönteminin aynı anahtar ile tekrar tekrar kullanılmasının şifrelenmiş mesajın bölümleri arasındaki ilişkileri çıkarmasına izin vermediği bir özelliktir. Blok şifreleri için, İV kullanımı çalışma kipleri ile açıklanmaktadır. Ayrıca, evrensel hash fonksiyonları ve buna dayanan mesaj kimlik doğrulama kodları gibi diğer temel öğeler için de rastgeleleştirme gereklidir.

Benaloh kriptosistemi 1994 yılında Josh (Cohen) Benaloh tarafından oluşturulan Goldwasser-Micali şifreleme sisteminin bir genişletilmesidir. Goldwasser-Micali'de bitler tek tek şifrelenirken, Benaloh Kriptosisteminde veri blokları grup olarak şifrelenmektedir. Orijinal makaledeki küçük bir hata Laurent Fousse et al. 'da düzeltilmiştir.

Affine şifreleme veya Doğrusal şifreleme, bir tür monoalfabetik ikame şifresi olup, bir alfabedeki her harf sayısal eşdeğeriyle eşleştirilir, basit bir matematiksel fonksiyon kullanılarak şifrelenir ve tekrar bir harfe dönüştürülür. Kullanılan formül, her harfin başka bir harfe şifrelendiği ve tekrar geri döndüğü anlamına gelir, yani şifre esasen hangi harfin hangisine gideceğini düzenleyen bir kurala sahip standart bir ikame şifresidir. Bu nedenle, tüm ikame şifrelerinin zayıflıklarına sahiptir. Her harf (ax + b) mod 26 fonksiyonu ile şifrelenir, burada b kaydırmanın büyüklüğüdür.

Kriptografide klasik şifre, tarihsel olarak kullanılmış ancak çoğunlukla kullanımdan kalkmış bir şifre türüdür. Modern kriptografik algoritmaların aksine, klasik şifrelerin çoğu pratik olarak hesaplanabilir ve elle çözülebilir. Bununla birlikte, modern teknoloji ile kırılmaları da genellikle çok basittir. Bu terim Yunan ve Roma dönemlerinden beri kullanılan basit sistemleri, ayrıntılı Rönesans şifrelerini, Enigma makinesi gibi II. Dünya Savaşı kriptografisini ve sonrasını içerir.