AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AES-GCM für DEC

Ein Thema von Michael II · begonnen am 19. Jul 2021
Antwort Antwort
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#1

AES-GCM für DEC

  Alt 19. Jul 2021, 22:10
AES-GMC für DEC

Voraussetzung: DEC ist installiert.

Im Anhang findest du eine unit gcm128.pas fürs Verschlüsseln und Entschlüsseln mit AES* GCM. (AES* von DEC.)

Die unit lässt sich leicht auch für andere AES Implementierungen (zum Beispiel synopses mormot) anpassen.

Umgesetzt wurden die Algorithmen, welche in "The Galois/Counter Mode of Operation (GCM)" by David A. McGrew John Viega beschrieben werden.

gcm128 wurde mit allen 47'250 Testvektoren von NIST erfolgreich getestet.

Beigelegt ist ein FMX-Testprogramm: Wenn du Verbesserungen an gcm128 vornimmst, kannst du damit testen, ob deine Version immer noch korrekt rechnet. Tipp: Teste immer auch mit den Testvektoren von NIST.

gcm128 nutzt für die Polynommultiplikation in GF(2^128) modulo f = 1 + α + α^2 + α^7 + α^128 eine 16*256*16Bytes = 64KB Tabelle (und ist damit punkto Datendurchsatz gegenüber mormots Pascal Lösung mit 4K Tabelle deutlich im Vorteil).

Hinweis: Für intel (und viele andere Prozessoren) gibt es für AES und für die Polynommultiplikation schnellere Methoden dank speziellen Befehlen. (Eine schnelle Lösung für intel findest du bei synopses mormot, ASM Code für die Polynommultiplikation hier.)

intel-Win64:
Referenz: Synopses Lösung im mormot master Branch AES-NI + GCM 4KTabelle
mormot master Branch AES-NI + GCM128 benötigt nur 0.75x so lang
DEC 6.2 AES + GCM128 1.6x*
Schnellste Lösung für intel mormot AES-NI + GCM mit intels pclmulqdq 0.53x
*Vorteil von DEC: Läuft auch zum Beispiel auf Android.

Beachte u.a. auch die Sicherheitshinweise zu AES GCM, u.a. bei Wikipedia.

Getestet mit Delphi 10.4 Update 2 unter Win32, Win64, Android 11.

GCM128 könnte ausgebaut werden: Das Verschlüsseln via AES und die Berechnung von GHASH lässt sich parallelisieren.

Viel Spass.
Angehängte Dateien
Dateityp: zip GCM_FMX.zip (31,2 KB, 17x aufgerufen)
Michael Gasser

Geändert von Michael II (20. Jul 2021 um 15:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz