THT DUYURU

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

ugursuz reklam
takipci
Seçenekler

DrCrypt Şifreleme Algoritması...

code-9x - ait Kullanıcı Resmi (Avatar)
Yeni Üye
Üyelik tarihi:
03/2008
Mesajlar:
698
Konular:
85
Teşekkür (Etti):
0
Teşekkür (Aldı):
20
Ticaret:
(0) %
0
520
21-03-2008 07:46
#1
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