Hatte ursprünglich eine Frage zur Erstellung der AES S-Box, Antwort war jedoch nur eine falsch definierte Variable. Wen es interessiert, hier der Code zur Erstellung der AES S-Box:
Delphi-Quellcode:
procedure TForm1.DoCalc;
var
i: integer;
logtable: array [0..255] of byte; // Log table
exptable: array [0..255] of byte; // Log table
a, c, s, x: Byte;
begin
a := 1;
for i := 0 to 255 do
begin
exptable[i] := a;
c := a AND $80;
a := a SHL 1;
if (c = $80) then
begin
a := a xor $1b;
end;
a := a xor exptable[i];
logtable[exptable[i]] := i; // Set the log table value
end;
exptable[255] := exptable[0];
logtable[0] := 0;
for i := 0 to 255 do
begin
if i = 0 then
x := 0
else
x := exptable[(255 - logtable[i])];
s := x;
for c := 0 to 3 do
begin
s := (s SHL 1) OR (s SHR 7);
x := x XOR s;
end;
x := x XOR 99;
Memo1.Text := Memo1.Text + '0x' + IntToHex(x, 2) + ', ';
end;
end;