![]() |
MixColumn - Polynom-Multiplikation - wie?
Hallo,
ich bin gerade dabei mir meine eigene kleine AES-Verschlüsselung zu bauen. Ich komme auch schon ganz gut vorran, allerdings stellt sich mir das Problem, dass ich MixColumn nicht ganz(oder garnicht) verstehe. Irgendwie werden da Polynom-Mulitplikation in GF(256) durchgeführt. Ich habe jetzt also z.B. $D4 das ich mit 2 mulitplizieren muss. Rauskommen soll $B3. Weitere Beispiele: $BF * 3 -> $DA $5D * 1 -> $5D $30 * 1 -> $30 Mein Ansatz wäre etwa so: e = $D4 * 2 mod 255. Aber das liefert (natürlich) falsche Ergebnisse. :cry: Wie mache ich das jetzt richtig ? P.S. Aus Google und Wikipedia werd ich auch nicht schlau. Grüße geofranz |
Re: MixColumn - Polynom-Multiplikation - wie?
Zitat:
Delphi-Quellcode:
Um allerdings halbwegs auf Geschwindigleit zu kommen, benutzt man sinnvollerweise Power- und Logarithmentabellen. Ein Beispiel findest Du im Programm t_mkctab.pas in meinem AES-Archiv.
program t_gf28;
{$apptype console} uses sysutils; {---------------------------------------------------------------------------} function gf_mul(a,b: byte): byte; {-Return a*b in GF(2^8)} const poly=$1b; var t: byte; begin if b=0 then gf_mul := 0 else begin t := 0; while b<>0 do begin if odd(b) then t := t xor a; b := b shr 1; if a and $80 = 0 then a := a shl 1 else a := (a shl 1) xor poly; end; gf_mul := t; end; end; begin writeln('GF(2^8): $D4 * $02 = $',IntToHex(gf_mul($D4,$02),2)); writeln('GF(2^8): $BF * $03 = $',IntToHex(gf_mul($BF,$03),2)); end. ![]() Gruß Gammatester |
Re: MixColumn - Polynom-Multiplikation - wie?
Hey Danke! Das funktioniert ja super! Vielen Dank für den Code. :thumb:
PS: Meine nichttrivialen Beispiele stammen von der schrittweisen Doku über die Funktionsweise von AES :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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