![]() |
Übersetzung AES S-Box Erstellung von C in Delphi (wenig Code)
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; |
AW: Übersetzung AES S-Box Erstellung von C in Delphi (wenig Code)
- bitte löschen, sorry -
|
AW: Übersetzung AES S-Box Erstellung von C in Delphi (wenig Code)
Tipp: Schalte in Indexprüfung in den Projektoptionen an, dann sagt dir Delphi, daß du auf einen Array-Index zugreifen wolltest, welchen es nicht gibt.
Aber die Bereichsprüfung mußt du hier mal auslassen, denn in dieser Code arbeitet absichtlich mit Überläufen, bzw. erspart es sich die Überläufe abzufangen, denn das macht ja das Byte bereits, welches den Wertebereicht weit genug eingrenzt, im Gegensatz zu den Integern. :angel: PS: UINT = unsigned integer unsigned int = Cardinal signed int = Integer Aber der Code arbeitet, an dieser Stelle (i), zum Glück mit beiden Varianten. [edit] Jetzt stell dir mal vor jemand hat ein ähnliches Problem, findet deinen Thread, aber nun ist die Frage und die Antwort weg und somit fehlt ihm jetzt die Lösung, aber zumindestens die SBOX ist jetzt korrekt. :D |
AW: Übersetzung AES S-Box Erstellung von C in Delphi (wenig Code)
Zitat:
|
AW: Übersetzung AES S-Box Erstellung von C in Delphi (wenig Code)
Wie wäre es mit einem Trackball? :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz