AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Algorithmen Delphi XTEA (Encryption Algorithm)

XTEA (Encryption Algorithm)

Ein Thema von trifid · begonnen am 12. Okt 2005
Antwort Antwort
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#1

XTEA (Encryption Algorithm)

  Alt 12. Okt 2005, 12:38
Der XTEA ist ein sehr schlanker Blockziffernalgorithmus.
Dieser Algorithmus verschlüsselt 64-bit Daten-Blöcke mit einer Schlüssellänge von 128-bit.
XTEA ist keinen Patenten unterworfen.

näheres unter Wikipedia - XTEA

Das Modul xtea.pas mit der Implementierung
Delphi-Quellcode:
unit xtea;

interface

uses Classes;

{$OVERFLOWCHECKS OFF}

type TxteaKey = array[0..3] of LongWord;
type TxteaData = array[0..1] of LongWord;

type
  Txtea = class(TPersistent)
  public
   procedure Crypt (Key : TxteaKey; var Data : TxteaData);
   procedure Decrypt (Key : TxteaKey; var Data : TxteaData);
  end;

implementation

procedure Txtea.Crypt (Key : TxteaKey; var Data : TxteaData);
   var Summe : LongWord;
   var Delta : LongWord;
   var n : Integer;
begin
   Summe := 0;
   Delta := $9E3779B9;

   for n := 1 to 32 do
   begin
      Data[0] := Data[0] +
            ( (((Data[1] shl 4) xor (Data[1] shr 5)) + Data[1]) xor
                (Summe + Key[Summe and 3]) );
      Summe := Summe + Delta;

      Data[1] := Data[1] +
            ( (((Data[0] shl 4) xor (Data[0] shr 5)) + Data[0]) xor
                (Summe + Key[Summe shr 11 and 3]) );
   end;
end;

procedure Txtea.Decrypt (Key : TxteaKey; var Data : TxteaData);
   var Summe : LongWord;
   var Delta : LongWord;
   var n : Integer;
begin
   Summe := $C6EF3720;
   Delta := $9E3779B9;

   for n := 1 to 32 do
   begin
      Data[1] := Data[1] -
            ( (((Data[0] shl 4) xor (Data[0] shr 5)) + Data[0]) xor
                (Summe + Key[Summe shr 11 and 3]) );
      Summe := Summe - Delta;
      Data[0] := Data[0] -
            ( (((Data[1] shl 4) xor (Data[1] shr 5)) + Data[1]) xor
                (Summe + Key[Summe and 3]) );
   end;
end;

end.
Auszug aus einem Beispiel
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
   var xtea : Txtea;
   var Key : TxteaKey;
   var Data : TxteaData;
begin
   xtea := Txtea.Create;
   try
      Key[0] := 9999;
      Key[1] := 8888;
      Key[2] := 7777;
      Key[3] := 6666;

      Data[0] := 1357;
      Data[1] := 2468;
      
      xtea.Crypt (Key, Data);
      xtea.Decrypt (Key, Data);
   finally
      xtea.Free;
   end;
end;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf