İPUCU

Donanım Bilgisayar Donanımı İle İlgili Yardımlaşma Bölümümüz ...

Seçenekler

DrCrypt Şifreleme Algoritması...

code-9x - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2008
Mesajlar:
698
Konular:
85
Teşekkür (Etti):
0
Teşekkür (Aldı):
20
Ticaret:
(0) %
21-03-2008 07:46
#1
Cool
DrCrypt Şifreleme Algoritması...
unit DrCrypt;

interface

uses SysUtils;

{

DrCrypter Simetrik Şifreleme Algoritması (v.0.1 Beta)
* * * * * * * * * * * * * * * * * * * * *

> 2007-2008 NükleerYazılım.com Tarafından GPL Lisansı Altında Dağıtılan Bir Projedir.

Algoritmanın Detayları Aşağıdadır....

DrCrypt Algoritması
* * * * * * * * * * *

1) - Çok Büyük Ve Şifreye Bağlı Bir Sayı Üretilir. (Farklı Bir Algoritma Kullanılabilir...)

2) - Bu Sayının Sayı Değeri Bulunur. (Örn. 54678454 = 5+4+6+7+8+4+5+4=43) [A]

3) - Bu Sayının Sıfırlar Hariç Çarpım İle Sayı Değeri Bulunur.
(Örn. 54678454 = 5*4*6*7*8*4*5*4=537600=5*3*7*6=630)[B]
4)- Bu Sayının Sahip Olduğu Tüm Asal Sayıların Sayısı Bulunur. [C]

5) - Bu Sayının Sahip Olduğu [A] ile Aralarında Asal Tüm Sayıların Toplamı Bulunur. [D]

6) - Tüm Bu Sayılar Aşağıdaki Sıra İle Bir Kez Shl(Shift Bits Left) Uygulanır.
Örn...
[0] = [A] Shl [B] | [3] = [B] Shl [A] | [6] = [C] Shl [A] | [9] = [D] Shl [A]
[1] = [A] Shl [C] | [4] = [B] Shl [C] | [7] = [C] Shl [B] | [A] = [D] Shl [B]
[2] = [A] Shl [D] | [5] = [B] Shl [D] | [8] = [C] Shl [D] | [B] = [D] Shl [C]

7) - Bu Durumda [T] Dörtgeni Oluşur...

[0][1][2]
[3][4][5]
[6][7][8]
[9][X][Y]

8) - [T] Dörtgeninin Tüm Elemanları Not'lanır Ve Mutlak Değerleri Alınır...

9)- [T] Dörtgeninin Tüm Elemanlarına Aşağıdaki İşlem Uygulanır...

a)- Modüler Elemanlar 0'a Bölme Hatasını Engellemek İçin 1 Arttırılır.
[A] = [A] + 1 | [B] = [B] + 1 | [C] = [C] + 1 | [D] = [D] + 1

b)- [T] Dörtgeninin Elemanlarına Sayı mod [n] işleminin sonucu eklenir.
[0] = [0] + (Sayı Mod [A]);
[1] = [1] + (Sayı Mod [B]);
[2] = [2] + (Sayı Mod [C]);
[3] = [3] + (Sayı Mod [D]);
[4] = [4] + (Sayı Mod [A]);
[5] = [5] + (Sayı Mod [B]);
[6] = [6] + (Sayı Mod [C]);
[7] = [7] + (Sayı Mod [D]);
[8] = [8] + (Sayı Mod [A]);
[9] = [9] + (Sayı Mod [B]);
[X] = [X] + (Sayı Mod [C]);
[Y] = [Y] + (Sayı Mod [D]);

10)- [T] Kübü Bu Aşamada Tamamen Oluşmuştur. Şifreleme Ve Çözme Bu Kübün Elemanları İle Yapılır.

11)- Şifreleme İse Aşağıdaki Yöntemle Yapılır.

a)- İlk Önce Çapraz Operatörler Hesaplanır...
[0][1][2]
[3][4][5]
[6][7][8]
[9][X][Y]

[M]Operatör 1 = [1] + ([0] * [4] Mod [8]);

[N]Operatör 2 = [2] + ([3] * [7] Mod [Y]);

[O]Operatör 3 = [2] + ([2] * [4] Mod [6]);

[P]Operatör 4 = [1] + ([5] * [7] Mod [9]);

b)- Bu Çarpaz [M],[N],[O],[P] Operatörleri Şifrelemede Kullanılacak Olan Sayılardır.
Şifreleme Ise Şu Şekilde Yapılır...
> (Bilgi Xor [M] Xor [N] Xor [O] Xor [P])
Çözümleme Ise Şu Şekilde Yapılır...
> (Bilgi Xor [M] Xor [N] Xor [O] Xor [P])


}

type DrCrypter = class(TObject)
public
function ToplamaliSayiDegeriBul(Sayi:Integer):Integer; // [A]
function CarpmaliSayiDegeriBul(Sayi:Integer):Integer; // [B]
function AsalSayilarinSayisiniBul(Sayi:Integer):Integer; // [C]
function A_ILE_AralarindaAsalSayilariBul(A:Integer;Sayi:Int eger):Integer; // [D]
function T_Dortgeni_0(Sayi,A,B,C,D:Integer):Integer; // [0]
function T_Dortgeni_1(Sayi,A,B,C,D:Integer):Integer; // [1]
function T_Dortgeni_2(Sayi,A,B,C,D:Integer):Integer; // [2]
function T_Dortgeni_3(Sayi,A,B,C,D:Integer):Integer; // [3]
function T_Dortgeni_4(Sayi,A,B,C,D:Integer):Integer; // [4]
function T_Dortgeni_5(Sayi,A,B,C,D:Integer):Integer; // [5]
function T_Dortgeni_6(Sayi,A,B,C,D:Integer):Integer; // [6]
function T_Dortgeni_7(Sayi,A,B,C,D:Integer):Integer; // [7]
function T_Dortgeni_8(Sayi,A,B,C,D:Integer):Integer; // [8]
function T_Dortgeni_9(Sayi,A,B,C,D:Integer):Integer; // [9]
function T_Dortgeni_X(Sayi,A,B,C,D:Integer):Integer; // [X]
function T_Dortgeni_Y(Sayi,A,B,C,D:Integer):Integer; // [Y]
function CaprazOperatorM(_1,_0,_4,_8:Integer):Integer; // [M]
function CaprazOperatorN(_2,_3,_7,_Y:Integer):Integer; // [N]
function CaprazOperatorO(_2,_4,_6,_X:Integer):Integer; // [O]
function CaprazOperatorP(_1,_5,_7,_9:Integer):Integer; // [P]
published
function Sifrele(M,N,O,P:Integer;Bilgi:Integer):Integer;
function Coz(M,N,O,P:Integer;Bilgi:Integer):Integer;
end;

implementation

function DrCrypter.ToplamaliSayiDegeriBul(Sayi:Integer):Int eger; // [A]
var
tmpStr : String;
tmpInt : Integer;
i : Integer;
begin
tmpInt := 0;
tmpStr := IntToStr(Sayi);
for I := 1 to Length(tmpStr) do
begin
tmpInt := tmpInt + StrToInt(tmpStr[i]);
end;
Result := tmpInt;
end;

function DrCrypter.CarpmaliSayiDegeriBul(Sayi:Integer):Inte ger; // [B]
var
tmpStr : String;
tmpInt : Integer;
i : Integer;
begin
tmpInt := 1;
tmpStr := IntToStr(Sayi);
for I := 1 to Length(tmpStr) do
begin
if StrToInt(tmpStr[i]) <> 0 then
begin
tmpInt := tmpInt * StrToInt(tmpStr[i]);
end;
end;
Result := tmpInt;
end;

function DrCrypter.AsalSayilarinSayisiniBul(Sayi:Integer):I nteger; // [C]
var
i:integer;
AsalSayilarinToplami:Integer;
begin
AsalSayilarinToplami:=0;
for I := 1 to Sayi do
begin
if Frac(I / 2) <> 0 then
begin
Inc(AsalSayilarinToplami);
end;
end;
Result := AsalSayilarinToplami;
end;

function DrCrypter.A_ILE_AralarindaAsalSayilariBul(A:Intege r;Sayi:Integer):Integer; // [D]
var
I: Integer;
p,q:Real;
AralarindaAsallar : Integer;
begin
AralarindaAsallar:=0;
for I := 1 to Sayi do
begin
p:=Frac(i / 2);
q:=Frac(A / 2);
if ((p <> 0) And (q <> 0)) then
begin
Inc(AralarindaAsallar);
end;
end;
Result := AralarindaAsallar;
end;

function DrCrypter.T_Dortgeni_0(Sayi,A,B,C,D:Integer):Integ er; begin Result := A Shl B; A := A + 1; Result := Abs(Not Result) + (Sayi Mod A); end; // [0]
function DrCrypter.T_Dortgeni_1(Sayi,A,B,C,D:Integer):Integ er; begin Result := A Shl C; B := B + 1; Result := Abs(Not Result) + (Sayi Mod B); end; // [1]
function DrCrypter.T_Dortgeni_2(Sayi,A,B,C,D:Integer):Integ er; begin Result := A Shl D; C := C + 1; Result := Abs(Not Result) + (Sayi Mod C); end; // [2]
function DrCrypter.T_Dortgeni_3(Sayi,A,B,C,D:Integer):Integ er; begin Result := B Shl A; D := A + 1; Result := Abs(Not Result) + (Sayi Mod D); end; // [3]
function DrCrypter.T_Dortgeni_4(Sayi,A,B,C,D:Integer):Integ er; begin Result := B Shl C; A := A + 1; Result := Abs(Not Result) + (Sayi Mod A); end; // [4]
function DrCrypter.T_Dortgeni_5(Sayi,A,B,C,D:Integer):Integ er; begin Result := B Shl D; B := B + 1; Result := Abs(Not Result) + (Sayi Mod B); end; // [5]
function DrCrypter.T_Dortgeni_6(Sayi,A,B,C,D:Integer):Integ er; begin Result := C Shl A; C := C + 1; Result := Abs(Not Result) + (Sayi Mod C); end; // [6]
function DrCrypter.T_Dortgeni_7(Sayi,A,B,C,D:Integer):Integ er; begin Result := C Shl B; D := D + 1; Result := Abs(Not Result) + (Sayi Mod D); end; // [7]
function DrCrypter.T_Dortgeni_8(Sayi,A,B,C,D:Integer):Integ er; begin Result := C Shl D; A := A + 1; Result := Abs(Not Result) + (Sayi Mod A); end; // [8]
function DrCrypter.T_Dortgeni_9(Sayi,A,B,C,D:Integer):Integ er; begin Result := D Shl A; B := B + 1; Result := Abs(Not Result) + (Sayi Mod B); end; // [9]
function DrCrypter.T_Dortgeni_X(Sayi,A,B,C,D:Integer):Integ er; begin Result := D Shl B; C := C + 1; Result := Abs(Not Result) + (Sayi Mod C); end; // [X]
function DrCrypter.T_Dortgeni_Y(Sayi,A,B,C,D:Integer):Integ er; begin Result := D Shl C; D := D + 1; Result := Abs(Not Result) + (Sayi Mod D); end; // [Y]
function DrCrypter.CaprazOperatorM(_1,_0,_4,_8:Integer):Int eger; var a,b :Integer; begin a:= _0 * _4; b := a mod _8; Result := b + _1; end; // M
function DrCrypter.CaprazOperatorN(_2,_3,_7,_Y:Integer):Int eger; var a,b :Integer; begin a:= _3 * _7; b := a mod _Y; Result := b + _2; end; // N
function DrCrypter.CaprazOperatorO(_2,_4,_6,_X:Integer):Int eger; var a,b :Integer; begin a:= _2 * _4; b := a mod _6; Result := b + _2; end; // O
function DrCrypter.CaprazOperatorP(_1,_5,_7,_9:Integer):Int eger; var a,b :Integer; begin a:= _5 * _7; b := a mod _9; Result := b + _1; end; // P

function DrCrypter.Sifrele(M,N,O,P:Integer;Bilgi:Integer):I nteger;
begin
Result := Bilgi Xor M Xor N Xor O Xor P;
end;

function DrCrypter.Coz(M,N,O,P:Integer;Bilgi:Integer):Integ er;
begin
Result := Bilgi Xor M Xor N Xor O Xor P;
end;

end.

alıntıdır..
---------------------
|ıııııııııııııııııııııııııııııııııııııııııııııııııı ıııııııııııııııııııı|
808c01928o997856d4754e8991x8
Ne MuTLu TüRküM DiYeNe
T H T

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı