PRESENT - Ultraleichte Blockverschlüsselung (Übersetzung des Originals PRESENT: Eine ultraleichte Blockverschlüsselung)

Hallo Habr! Hier ist die Übersetzung des Originalartikels „PRÄSENTIEREN: Eine ultraleichte Blockchiffre“ von Robert B. Weide Bogdanov, Kreditgeber, Paar, Poshman, Robshav, Seurin und Wikkelsoy.


Anmerkung


Mit der Einführung von AES ist der Bedarf an neuen Blockverschlüsselungsalgorithmen gesunken, da AES in den meisten Fällen eine großartige Lösung ist. Trotz seiner einfachen Implementierung ist AES jedoch nicht für extrem eingeschränkte Umgebungen wie RFID- Tags und Lesegeräte geeignet . Dieser Artikel beschreibt den ultraleichten Blockverschlüsselungsalgorithmus PRESENT. Bei der Entwicklung dieses Algorithmus wurden sowohl die Effizienz der Implementierung in Eisen als auch die Zuverlässigkeit der Verschlüsselung berücksichtigt. Infolgedessen ist das Ergebnis der Systemanforderungen mit den heute führenden Kompaktstrom-Chiffren vergleichbar.

1. Einleitung


Der Hauptkurs in der IT des aktuellen Jahrhunderts ist die Entwicklung kleiner Computergeräte, die nicht nur in Konsumgütern verwendet werden, sondern auch einen integralen und unsichtbaren Bestandteil der Kommunikationsinfrastruktur der Umwelt bilden. Es wurde bereits festgestellt, dass solche Implementierungen eine ganze Reihe sehr spezifischer Sicherheitsbedrohungen verursachen. Gleichzeitig sind verfügbare kryptografische Lösungen, auch eher primitive, häufig nicht für die Verwendung in Umgebungen mit stark begrenzten Ressourcen geeignet.

In diesem Artikel bieten wir einen neuen, hardwareoptimierten Blockverschlüsselungsalgorithmus an, der mit den maximal möglichen Größen- und Leistungsbeschränkungen entwickelt wurde. Gleichzeitig haben wir versucht, Datenkompromisse zu vermeiden. Um dies zu erreichen, haben wir die DES- Erfahrung genutzt und die Eigenschaften ergänztSerpent hat eine erstaunliche Leistung in der Hardware gezeigt.

Vielleicht lohnt es sich zu erklären, warum wir uns für die Entwicklung einer neuen Blockverschlüsselung entschieden haben, da die allgemein akzeptierte Tatsache ist, dass Stream-Chiffren möglicherweise kompakter sind. In der Tat haben wir uns am Anfang bemüht, das Design kompakter Stream-Chiffren während der Arbeit am eSTREAM- Projektsowie einige andere vielversprechende Annahmenzu verstehen, dieschnell zu wirken scheinen. Wir haben jedoch mehrere Gründe festgestellt, warum wir uns dennoch für eine Blockverschlüsselung entschieden haben. Erstens ist die Blockverschlüsselung universell und primitiv und wird im Verschlüsselungsmodus verwendetd.h. Wenn wir die bereits verschlüsselten Blöcke verwenden, um Folgendes zu verschlüsseln, erhalten wir eine Streaming-Verschlüsselung. Zweitens und vielleicht hauptsächlich scheinen die Feinheiten der Funktionsprinzipien von Blockchiffren besser untersucht zu sein als die Funktionsprinzipien von Stream-Verschlüsselungsalgorithmen. Während es beispielsweise eine umfangreiche Theorie gibt, die auf der Verwendung von Schieberegistern mit linearer Rückkopplung basiert , ist es nicht so einfach, diese Blöcke so zu kombinieren, dass ein sicheres Angebot erhalten wird. Wir gehen davon aus, dass eine ordentlich gestaltete Blockverschlüsselung sicherer ist als eine frisch erstellte Stream-Verschlüsselung. Daher finden wir, dass eine Blockverschlüsselung, die so viel Eisenressourcen benötigt wie eine kompakte Stream-Verschlüsselung, sehr interessant sein kann.

Es ist wichtig zu beachten, dass wir bei der Erstellung eines neuen Blockverschlüsselungsalgorithmus, insbesondere mit auffälliger Leistung, nicht nur Innovationen verfolgen. Im Gegenteil, die Entwicklung und Implementierung der Chiffre gehen Hand in Hand und enthüllen einige grundlegende Grenzen und inhärente Grenzen. Beispielsweise legt eine bestimmte Sicherheitsstufe Einschränkungen für die Mindestschlüssel- und Blocklängen fest. Selbst die Verarbeitung eines 64-Bit-Status mit einem 80-Bit-Schlüssel begrenzt die minimale Gerätegröße. Sie können auch feststellen, dass die Ausführungsform in der Hardware - insbesondere die Kompaktheit der Hardware-Implementierung - zur Wiederholbarkeit beiträgt. Selbst kleine Änderungen können die Lautstärke des Geräts beeinträchtigen. Kryptoanalytiker legen jedoch auch Wert auf Wiederholbarkeit und suchen nach mathematischen Strukturen, die sich in vielen Runden leicht multiplizieren lassen.Wie viele einfache sich wiederholende Strukturen können verwendet werden, ohne die Systemsicherheit zu beeinträchtigen?

In diesem Artikel wird also die kompakte Blockverschlüsselung PRESENT beschrieben. Nach einer kurzen Überprüfung der vorhandenen Literatur haben wir den Rest des Artikels in einer Standardform gestaltet. Der Code wird in Abschnitt 3 beschrieben, in Abschnitt 4 werden Entwurfsentscheidungen beschrieben. In Abschnitt 5 werden wir die Sicherheit betrachten, während Abschnitt 6 eine detaillierte Analyse der Leistung enthält. Diese Arbeit endet mit unseren Schlussfolgerungen.

2. Bestehende Arbeiten


Während das Arbeitsvolumen für billige Kryptographie stetig wächst, ist die Anzahl der Artikel für superleichte Chiffren überraschend gering. Wenn wir uns auf das Protokollgerät konzentrieren, werden wir uns nicht mehr auf Arbeiten zu billigen Kommunikations- und Identifikationsprotokollen beziehen. Eine der umfangreichsten Arbeiten zur kompakten Implementierung ist derzeit mit dem eSTREAM-Projekt verbunden. Im Rahmen eines Teils dieses Projekts wurden neue Stream-Chiffren vorgeschlagen, die für eine effektive Implementierung in Hardware angepasst sind. Im Rahmen dieser Arbeit werden vielversprechende Kandidaten vorgestellt. Bisher sind die Verhältnisse ungefähr, aber aus den Implementierungsbroschüren geht hervor, dass für kompakte Chiffren des eSTREAM-Projekts etwa 1300-2600 GE (Gate-Äquivalente) erforderlich sind .

Unter den Blockchiffren wurde eine der weithin bekannten, nämlich DES, unter Berücksichtigung der Effizienz der Ausrüstung erstellt. Angesichts des sehr begrenzten Zustands von Halbleitern in den frühen 1970er Jahren ist es nicht überraschend, dass DES sehr wettbewerbsfähige Implementierungseigenschaften aufweist. Während der Entwicklung wurden 3000GE für DES ausgegeben, und nach der Serialisierung fiel diese Zahl auf 2300GE. Die DES-Schlüssellänge schränkt jedoch ihre Nützlichkeit in vielen Anwendungen ein und führt dazu, dass spezielle Modifikationen auf ihrer Basis entwickelt werden, beispielsweise mit erhöhter kryptografischer Stärke oder einem erweiterten Schlüssel.

In Bezug auf moderne Blockchiffren bietet dieser Artikel eine gründliche Analyse kostengünstiger AES. Die Implementierung erfordert jedoch etwa 3.600 GE, was eine indirekte Folge des Entwurfs von Bußgeldern für 8- und 32-Bit-Prozessoren ist. Die Systemanforderungen <a href = " TEA sind nicht bekannt, erfordern jedoch Schätzungen zufolge etwa 2100 GE. Es gibt 4 weitere Lösungen, die für kostengünstige Geräte ausgelegt sind: mCRYPTON (hat eine exakte Ausführung von 2949 GE), HIGHT (etwa 3000 GE), SEA (etwa) 2280 GE) und CGEN (ebenfalls um 2280 GE), obwohl letzteres nicht als Blockchiffre konzipiert wurde.

3. Verschlüsselung PRÄSENTIEREN


PRESENT ist ein Sonderfall des SP-Netzwerks und besteht aus 31 Runden. Die Blocklänge beträgt 64 Bit, und die Schlüssel werden in 2 Versionen unterstützt, 80- und 128-Bit. Dieses Schutzniveau sollte für Anwendungen mit geringer Sicherheit ausreichen, die normalerweise für die Bereitstellung basierend auf Tags verwendet werden. Darüber hinaus stimmt PRESENT in seinen Designmerkmalen weitgehend mit den Stream-Chiffren des eSTREAM-Projekts überein, die für eine effektive Implementierung in Hardware geschärft wurden, sodass wir einen angemessenen Vergleich ermöglichen können ihr.
Sicherheitsanforderungen und Betriebseigenschaften von 128-Bit-Versionen finden Sie im Anhang zum Originalartikel.

Jede der 31 Runden besteht aus einer XOR-Operation zur Eingabe des Schlüssels K i für 1 ≤ i ≤ 32, für den K 32 verwendet wirdBleichen des Schlüssels , lineare bitweise Permutation und nichtlineare Substitutionsschicht (oder einfacher Erhöhung der Verschlüsselungsstärke). Die nichtlineare Schicht verwendet separate 4-Bit- S-Blöcke , die in jeder Runde 16 Mal parallel angewendet werden. Die durch den Pseudocode beschriebene Verschlüsselung ist in der Abbildung dargestellt:



Nun wird jede Stufe nacheinander bestimmt. Die Entwurfsbegründungen sind in Abschnitt 4 angegeben, und die Bits sind überall von Grund auf neu nummeriert, beginnend mit dem richtigen in einem Block oder Wort.

Hinzufügen eines runden Schlüssels (addRoundKey). Der runde Schlüssel K i = k i 63 ... k i 0 , wobei 1 ≤ i ≤ 32 ist, sowie der aktuelle Zustand b 63 ... b 0. Das Hinzufügen eines runden Schlüssels zum aktuellen Zustand erfolgt modulo 2 (b j = b j ⊕ k i j , wobei 0 ≤ j ≤ 63).

S-Box-Schicht (sBoxlayer). Die in PRESENT verwendeten S-Blöcke ordnen 4-Bit-Blöcke 4-Bit-Blöcken zu. Die Wirkung dieses Blocks im Hexadezimalzahlensystem ist in der folgenden Tabelle gezeigt:



Für die S-Blockschicht ist der aktuelle Zustand b 63 ... b 0 16 4-Bit-Wörter w 15 ... w 0 , wobei w i = b 4 * i + 3 || b 4 * i + 2 || b 4 * i + 1 || b 4 * i für 0 ≤ i ≤ 15. Rahmenausgang S [w i] gibt aktualisierte Statuswerte auf offensichtliche Weise zurück.

Permutationsschicht (pLayer). Bitweise Permutation verwendet PRESENT in der folgenden Tabelle definiert (der Zustand von Bit i wird auf die Position P (i) verschoben):



Schlüsselkonvertierung ( Der Schlüsselplan ). PRESENT kann 80- und 128-Bit-Schlüssel verwenden, wir werden uns jedoch auf die 80-Bit-Version konzentrieren. Der vom Benutzer bereitgestellte Schlüssel wird in dem Schlüsselregister K gespeichert, das als k 79 k 78 ... k 0 dargestellt ist . In der i-ten Runde ist ein 64-Bit-Rundenschlüssel K i = k 63 k 62 ... k 0, bestehend aus 64 linken Bits des aktuellen Inhalts des Registers K. Somit haben wir in der i-ten Runde:
K i = k 63 k 62 ... k 0 = k 79 k 78 ... k 16 .

Nach dem Auspacken des runden Schlüssels K i wird das Schlüsselregister K = k 79 k 78 ... k 0 wie folgt aktualisiert:
1. [k 79 k 78 ... k 1 k 0 ] = [k 18 k 17 ... k 20 k 19 ]
2. [k 79 k78 k 77 k 76 ] = S [k 79 k 78 k 77 k 76 ]
3. [k 19 k 18 k 17 k 16 k 15 ] = [k 19 k 18 k 17 k 16 k 15 ] ⊕ round_counter

Registrieren Sie sich daher Der Schlüssel wird um 61 Positionen nach links verschoben, die 4 am weitesten links liegenden Bits werden durch den S-Block geleitet, und round_counter, der Wert von i, wird modulo 2 mit den Bits k 19 k 18 k 17 k 16 k 15 addiertvon K mit dem niedrigstwertigen Bit von round_counter nach rechts.



Eine Schlüsselkonvertierung für einen 128-Bit-Algorithmus finden Sie im Anhang zum Originalartikel.

4. Designmerkmale von PRESENT


Neben Sicherheit und effizienter Implementierung ist die Hauptleistung von PRESENT die Einfachheit. Daher ist es nicht verwunderlich, dass ähnliche Projekte unter anderen Umständen angenommen und sogar als Lehrbuch für Studenten verwendet wurden. In diesem Abschnitt werden wir die Entscheidungen begründen, die wir beim Entwerfen von PRESENT getroffen haben. Zunächst beschreiben wir jedoch die erwarteten Anwendungsanforderungen.

4.1. Zweck und Anwendungsumgebung


Beim Entwerfen einer Blockverschlüsselung, die in Umgebungen mit engen Einschränkungen anwendbar ist, ist es wichtig zu verstehen, dass wir keine Blockverschlüsselung erstellen, die sicherlich in vielen Situationen anwendbar ist - dafür gibt es AES. Im Gegenteil, wir zielen auf eine sehr spezifische Anwendung ab, für die AES nicht geeignet ist. Das Vorstehende bestimmt die folgenden Eigenschaften.

  • Die Verschlüsselung wird "in Hardware" implementiert.
  • Anwendungen sind nur erforderlich, um die Sicherheitsstufe anzupassen. Daher wäre ein 80-Bit-Schlüssel eine robuste Lösung. Beachten Sie, dass die Entwickler von Stream-Chiffren des eSTREAM-Projekts an derselben Position festhalten.
  • Anwendungen erfordern keine Verschlüsselung großer Datenmengen. Somit kann eine Implementierung hinsichtlich Leistung oder Platz optimiert werden, ohne zu viele Änderungen vorzunehmen.
  • , . , ( ).
  • , , , , , .
  • , , (encryption-only mode). , - (challenge-response) , , , , .

Aufgrund dieser Überlegungen haben wir beschlossen, PRESENT als 64-Bit-Blockverschlüsselung mit einem 80-Bit-Schlüssel zu erstellen. Verschlüsselung und Entschlüsselung haben in diesem Fall ungefähr die gleichen physischen Anforderungen. Mit der Fähigkeit, sowohl Verschlüsselung als auch Entschlüsselung zu unterstützen, ist PRESENT kompakter als nur AES-Verschlüsselung. Und im Fall einer Ausführung nur mit Verschlüsselung ist unsere Verschlüsselung ganz einfach. Encryption Unterschlüssel wird auf dem Sprung berechnet werden.

In der Literatur gibt es viele Beispiele für Kompromissangriffe zwischen Zeit, Datum und Erinnerung oder Angriffe mit dem Geburtstagsparadoxonbeim Verschlüsseln großer Datenmengen. Diese Angriffe hängen jedoch nur von den Parametern der Verschlüsselung ab und verwenden nicht die interne Struktur. Unser Ziel ist es, diese Angriffe so gut wie möglich gegen uns zu machen. Kanalangriffe von Drittanbietern und direkte Chip-Breaking-Angriffe bedrohen PRESENT ebenso wie andere kryptografische Grundelemente . Für wahrscheinliche Anwendungen machen moderate Sicherheitsanforderungen die Vorteile für einen Angreifer in der Praxis jedoch sehr begrenzt. Bei der Risikobewertung werden solche Bedrohungen nicht als wesentlicher Faktor wahrgenommen.

4.2. Permutationsschicht


Bei der Auswahl einer Schlüsselmischschicht erfordert unsere Aufmerksamkeit für die Hardwareeffizienz eine lineare Schicht, die mit einer minimalen Anzahl von Steuerelementen (z. B. Transistoren) implementiert werden kann. Dies führt zu einer bitweisen Permutation. Aus Gründen der Einfachheit haben wir uns für eine regelmäßige bitweise Permutation entschieden, um eine transparente Sicherheitsanalyse durchzuführen (siehe Abschnitt 5).

4.3. S-Blöcke.


Bei PRESENT verwenden wir separate S-Blöcke, die 4 Bit in 4 Bit übersetzen (F 4 2 → F 4 2 ). Dies ist eine direkte Folge unseres Wunsches nach Hardwareeffizienz, und die Implementierung eines solchen S-Blocks ist normalerweise viel kompakter als die eines 8-Bit-S-Blocks. Da wir die Bitmap-Permutation für eine lineare Diffusionsschicht verwenden, sind AES-ähnliche Diffusionstechnologien für unsere Verschlüsselung keine Option. Daher stellen wir einige zusätzliche Bedingungen an S-Blöcke, um den sogenannten „Lawineneffekt“ zu reduzieren . Genauer gesagt erfüllen die S-Blöcke für PRESENT die folgenden Bedingungen, wobei wir den Fourier-Koeffizienten S mit

S W b (a) = ∑ (-1) <b, S (x)> + <a, x> , x∈F 4 bezeichnen2

1. Für jede feste Eingangsvorspannung ungleich Null ∆ I ∈ F 4 2 und jede feste Eingangsvorspannung ungleich Null ∆ O ∈ F 4 2 innerhalb des S-Blocks benötigen wir
# {x ∈ F 4 2 | S (x) + S (x + ∆ I. ) = ∆ O } ≤ 4.

2. Für jede feste Eingangsdifferenz ungleich Null ∆ I ∈ F 4 2 und jede feste Ausgangsdifferenz ungleich Null ∆ O ∈ F 4 2, so dass wt (∆ I ) = wt (∆ O ) = 1 haben wir
{x ∈ F 4 2| S (x) + S (x + ∆ I ) = ∆ O } = ∅

3. Für alle ungleich Null a ∈ F 4 2 und alle ungleich Null b ∈ F 4 gilt | S W b (a) | ≤ 8
4. Für alle ungleich Null a ∈ F 4 2 und alle ungleich Null b ∈ F 4, so dass wt (a) = wt (b) = 1 gilt, gilt S W b (a) = ± 4.

Wie aus Abschnitt 5 hervorgeht, Diese Bedingungen stellen sicher, dass PRESENT gegen differentielle und lineare Angriffe resistent ist. Unter Verwendung der Klassifizierung aller 4-Bit-S-Blöcke, die die obigen Bedingungen erfüllen, haben wir den S-Block ausgewählt, der besonders für eine effiziente Hardware-Implementierung geeignet ist.

5. Sicherheitsanalyse


Jetzt werden wir die Ergebnisse der PRESENT-Sicherheitsanalyse präsentieren.

Differenzielle und lineare Kryptoanalyse


Die differentielle und lineare Kryptoanalyse sind einige der leistungsfähigsten Methoden, die Kryptoanalytikern zur Verfügung stehen. Um den gegenwärtigen Widerstand gegen differentielle und lineare Kryptoanalyse zu messen, setzen wir die Untergrenze für die Anzahl der sogenannten aktiven S-Blöcke, die an der differentiellen (oder linearen) Charakteristik beteiligt sind.

Differenzielle Kryptoanalyse


Der Fall der differentiellen Kryptoanalyse wird durch den folgenden Satz abgedeckt.

Satz 1. Jede Fünfkreis-Differentialkennlinie von PRESENT hat mindestens 10 aktive S-Blöcke.

Satz 1 ist in Anhang 3 des Originalartikels bewiesen, und wir setzen die Beobachtungen fort. Wir teilen 16 S-Blöcke in 4 Gruppen ein:



Die Zahlen am Eingang (oben) geben die Nummer des S-Blocks im vorherigen Schritt und am Ausgang (unten) an - beim nächsten

Beachten Sie Folgendes:

  1. Die Eingangsbits zum S-Block stammen von 4 verschiedenen S-Blöcken derselben Gruppe.
  2. Eingangsbits für Gruppen von vier S-Blöcken stammen aus 16 verschiedenen S-Blöcken.
  3. Vier Ausgangsbits eines bestimmten S-Blocks sind in vier verschiedenen S-Blöcken enthalten, von denen jeder in der nächsten Runde zu einer separaten Gruppe von S-Blöcken gehört.
  4. Die Ausgangsbits von S-Blöcken in verschiedenen Gruppen gehen zu verschiedenen S-Blöcken.

Gemäß Satz 1 muss jede Differentialcharakteristik für mehr als 25 Runden von PRESENT mindestens 5 × 10 = 50 aktive S-Blöcke haben. Die maximale Differentialwahrscheinlichkeit des PRESENT S-Blocks beträgt 2 -2 , und daher ist die Wahrscheinlichkeit einer einzelnen 25-Runden-Differentialkennlinie auf 2 -100 begrenzt. Fortgeschrittene Methoden ermöglichen es dem Kryptoanalytiker, externe Runden aus der Chiffre zu entfernen, um eine kürzere Eigenschaft zu verwenden. Selbst wenn wir dem Angreifer erlauben, sechs Runden aus der Chiffre zu entfernen, was eine beispiellose Situation darstellt, überschreiten die Daten, die zur Verwendung der verbleibenden 25-Runden-Differenzcharakteristik erforderlich sind, die verfügbare Menge. Sicherheitsgrenzen sind daher mehr als zuverlässig. Wir haben jedoch praktisch bestätigt, dass die Grenze der Anzahl der aktiven S-Blöcke in Satz 1 eng ist.

Praktische Bestätigung


Wir können Merkmale definieren, die zehn S-Blöcke über fünf Runden umfassen. Das nächste iterative Merkmal für zwei Runden umfasst zwei S-Blöcke pro Runde und gilt mit einer Wahrscheinlichkeit von 2 bis 25 für fünf Runden.

Komplexere Eigenschaften werden mit einer Wahrscheinlichkeit von 2 bis 21 für 5 Runden gehalten.

Obwohl die Wahrscheinlichkeit dieses zweiten Merkmals sehr nahe an der Grenze von 2 bis 20 liegtEs ist nicht iterativ und hat wenig praktischen Wert. Stattdessen haben wir experimentell die Wahrscheinlichkeit eines iterativen Differentials mit zwei Runden bestätigt. In Experimenten mit mehr als 100 unabhängigen Unterschlüsseln unter Verwendung von 223 ausgewählten Klartextpaaren wurde die beobachtete Wahrscheinlichkeit vorhergesagt. Dies scheint darauf hinzudeuten, dass für dieses spezielle Merkmal kein gleichzeitiger signifikanter Unterschied besteht. Das Ausmaß eines Differentialeffekts zu bestimmen, ist jedoch eine komplexe und zeitaufwändige Aufgabe, obwohl unsere vorläufige Analyse ermutigend war.

Lineare Kryptoanalyse


Der Fall der linearen PRESENT-Kryptoanalyse wird im folgenden Satz betrachtet, in dem wir die beste lineare Annäherung an die vier Runden von PRESENT analysieren.

Satz 2. Sei E 4R die maximale lineare Verschiebung der Vier-Runden-Näherung mit PRESENT. Dann ist E 4R ≤ 2 -7 .
Der Beweis des Satzes ist in Anhang 4 des Originalartikels enthalten. Dann beträgt die maximale Verschiebung für 28 Runden
2 6 × E 4R 7 = 2 6 × (2 -7 ) 7 = 2 -43

Unter der Annahme, dass ein Kryptoanalytiker nur etwa 28 der 31 Runden in PRESENT benötigt, um einen Schlüsselwiederherstellungsangriff auszulösen, erfordert eine lineare Kryptoanalyse einer Chiffre etwa 2 84 bekannte Klartexte / Chiffretexte. Diese Datenanforderungen überschreiten den verfügbaren Text.

Einige fortgeschrittene differentielle / lineare Angriffe


Die PRESENT-Struktur ermöglicht es uns, einige der verschiedenen Formen von Angriffen zu betrachten. Keiner von ihnen führte jedoch zu einem Angriff, der weniger Text als die Untergrenze der Textanforderungen für die lineare Kryptoanalyse erforderte. Unter den ausgezeichneten Angriffen haben wir einen betrachtet, der palindromische Unterschiede verwendet, da symmetrische Unterschiede mit einer Wahrscheinlichkeit von eins (d. H. Immer) über der Diffusionsschicht bestehen, sowie einige fortgeschrittene Versionen von differentiell-linearen Angriffen. Obwohl die Angriffe für mehrere Runden vielversprechend erschienen, verloren sie schnell ihren praktischen Wert und es ist unwahrscheinlich, dass sie in der gegenwärtigen Kryptoanalyse nützlich sind. Wir fanden auch heraus, dass eine verkürzte differentielle Kryptoanalyse wahrscheinlich von begrenztem Wert ist, obwohl die nächsten beiden Runden.

Eine abgeschnittene Erweiterung wird mit einer Wahrscheinlichkeit von eins durchgeführt.

Selbst wenn die Länge der bereits identifizierten Differentialmerkmale verringert wird, bleiben die Datenanforderungen übermäßig hoch. Eine Rangfolgeerweiterung wird mit einer Wahrscheinlichkeit von eins durchgeführt.

5.2. Strukturelle Angriffe


Strukturelle Angriffe wie die integrierte Kryptoanalyse und die Engpassanalyse eignen sich gut zur Analyse von AES-ähnlichen Chiffren. Solche Chiffren haben starke wortähnliche Strukturen, wobei Wörter normalerweise Bytes sind. Die Darstellungskonstruktion ist jedoch fast ausschließlich bitweise, und obwohl die Permutationsoperation etwas regelmäßig ist, wird die Entwicklung und Verteilung von Wortstrukturen durch die in der Chiffre verwendeten bitweisen Operationen gestört.

5.3. Algebraische Angriffe


Algebraische Angriffe wurden verwendet , um den Erfolg bei der Anwendung auf Stream-Chiffren zu verringern, als um sie zu blockieren. Die einfache Struktur von PRESENT bedeutet jedoch, dass sie ernsthaft untersucht werden müssen. Der PRESENT S-Block wird durch 21 quadratische Gleichungen für acht Eingangs- / Ausgangsbitvariablen über Feld G (2) beschrieben. Dies ist nicht überraschend, da bekannt ist, dass jeder Vier-Bit-S-Block durch mindestens 21 solcher Gleichungen beschrieben werden kann. Dann kann die gesamte Chiffre durch quadratische Gleichungen e = n × 21 in den Variablen v = n × 8 beschrieben werden, wobei n die Anzahl der S-Blöcke im Verschlüsselungs- und Schlüsseltransformationsalgorithmus ist.

Für PRESENT haben wir n = (31 × 16) + 31, also besteht das gesamte System aus 11.067 quadratischen Gleichungen in 4.216 Variablen. Das allgemeine Problem der Lösung eines Systems mehrdimensionaler quadratischer Gleichungen ist NP-hart. Die für Blockchiffren erhaltenen Systeme sind jedoch sehr selten, da sie aus n kleinen Systemen bestehen, die durch einfache lineare Schichten verbunden sind. Es ist jedoch nicht klar, ob diese Tatsache für den sogenannten algebraischen Angriff verwendet werden kann. Es wurden einige spezielle Methoden vorgeschlagen, wie z. B. XL und XSL, obwohl bei beiden Methoden Mängel festgestellt wurden. Stattdessen wurden die einzigen praktischen Ergebnisse zur algebraischen Kryptoanalyse von Blockchiffren durch Anwendung der Buchberger- und F4- Algorithmen erhalten.als Teil von Magma. Die Modellierung an kleinen Versionen von AES zeigte, dass für alle außer den kleinsten SP-Netzwerken schnell Schwierigkeiten sowohl in Bezug auf die Zeit als auch auf die Speicherkomplexität auftreten. Gleiches gilt für PRESENT.

Praktische Bestätigung.Wir haben Simulationen mit kleinen Versionen unter Verwendung des F4-Algorithmus in Magma durchgeführt. Wenn es einen S-Block gibt, dh einen sehr kleinen Block mit einer Größe von vier Bits, kann Magma das resultierende Gleichungssystem in vielen Runden lösen. Wenn jedoch die Blockgröße zunimmt und S-Blöcke zusammen mit der entsprechenden Variante der linearen Diffusionsschicht hinzugefügt werden, wird das Gleichungssystem bald zu groß. Selbst wenn wir ein System in Betracht ziehen, das aus sieben S-Blöcken besteht, dh eine Blockgröße von 28 Bit hat, konnten wir nicht innerhalb einer angemessenen Zeit eine Lösung für die verkürzte Verschlüsselungsversion finden, die zwei Runden bestanden hat. Unsere Analyse zeigt, dass algebraische Angriffe wahrscheinlich keine Bedrohung für PRESENT darstellen.

5.4. Key Conversion-Angriffe


Da es keine festgelegten Richtlinien für die Entwicklung von Schlüsseltransformationen gibt, gibt es sowohl eine Vielzahl von Projekten als auch eine Vielzahl von Angriffen, die auf den Merkmalen des Projekts basieren. Die effektivsten Angriffe fallen unter die allgemeine Überschrift Angriff auf verwandte Schlüssel und Scherangriff , und beide basieren auf der Konstruktion identifizierbarer Beziehungen zwischen verschiedenen Sätzen von Unterschlüsseln. Um dieser Bedrohung entgegenzuwirken, verwenden wir einen rundenabhängigen Zähler, sodass Unterschlüsselsätze nicht einfach „verschoben“ werden können, und wir verwenden eine nichtlineare Operation, um den Inhalt des Schlüsselregisters K zu mischen. Insbesondere:

  • Alle Bits im Schlüsselregister sind eine nichtlineare Funktion des 80-Bit-Schlüssels, den der Benutzer für Runde 21 bereitgestellt hat.
  • dass jedes Bit im Schlüsselregister nach Runde 21 von mindestens vier der vom Benutzer bereitgestellten Schlüsselbits abhängt, und
  • Bis wir K 32 erhalten , sind sechs Bits Ausdrücke des zweiten Grades von 80 vom Benutzer bereitgestellten Schlüsselbits, 24 Bits sind Grad drei, während die verbleibenden Bits eine Funktion der vom Benutzer bereitgestellten Schlüsselbits des Grades sechs oder neun sind.

Wir glauben, dass diese Eigenschaften ausreichen, um Schlüsselangriffen auf der Grundlage der Schlüsselkonvertierung standzuhalten.

6. Produktivität von "Eisen"


Wir haben PRESENT-80 in VHDL implementiert und es für die standardmäßige Virtual Silicon Cell Library (VST) basierend auf der UMC L180 0.18 μ 1P6M Logic angepasst. Wir verwendeten die Mentor Graphics Modelsim SE PLUS 5.8 c für die Simulation und Synopsys Design Compilerversion Y-2006.06 für die Synthese und Modellierung des Stromverbrauchs. Es wurden typische Werte für die Gießerei verwendet (1,8 Volt für die Kernspannung und 25 ° C für die Temperatur), und das vorgeschlagene Modell der Drahtbelastung wurde zur Modellierung der Leistung verwendet. Bitte beachten Sie, dass eine solche Simulation für Strukturen um 10.000 GE vorgesehen ist, sodass die Leistungsergebnisse für viel kleinere Strukturen pessimistisch sind. Auf dem Bild



Der gezeigte Datenpfad ist platzoptimiert PRESENT-80 ohne die Möglichkeit der Entschlüsselung (nur Verschlüsselung), die eine Runde pro Zyklus ausführt, dh der Datenpfad ist 64 Bit breit. Bitte beachten Sie, dass wir in der Entwurfsphase von PRESENT 16 Mal denselben S-Block verwenden, anstatt 16 verschiedene S-Blöcke zu haben, und dies erleichtert die weitere Serialisierung des Projekts, d. H. Mit einem 4-Bit-Datenkanal. Unsere Implementierung erfordert 32 Taktzyklen zum Verschlüsseln von 64-Bit-Klartext mit einem 80-Bit-Schlüssel, benötigt 1570 GE und hat einen Stromverbrauch von 5 MikW bei der Modulation.



Räumliche Anforderungen PRÄSENTIEREN

Der größte Teil des Bereichs wird von Triggern zum Speichern des Schlüssel- und Datenstatus belegt, gefolgt von der S-Schicht und der XOR-Schlüsselabteilung. Einfache Permutationsbitpermutationen vergrößern den Bereich nur, wenn die Implementierung die Orts- und Routenstufe erreicht. Beachten Sie, dass das Hauptziel unserer Implementierung eine kleine Menge an Hardware war. Wir haben jedoch auch einen auf Leistung optimierten Prozess synthetisiert. Für weitere 53 GE erreichen wir einen Energieverbrauch von nur 3,3 μW, und der Strom 128 wird eine geschätzte Fläche von 1886 GE einnehmen. Zusätzlich zu seiner sehr geringen Größe hat PRESENT einen ziemlich hohen Durchsatz und liefert eine gute Energie pro Bit. Der Vergleich mit anderen Chiffren ist in der Tabelle angegeben:



7. Fazit


In diesem Artikel haben wir die neue PRESENT-Blockverschlüsselung beschrieben. Unser Ziel war eine ultraleichte Verschlüsselung, die ein Sicherheitsniveau bietet, das der Größe eines 64-Bit-Blocks und eines 80-Bit-Schlüssels entspricht. Infolgedessen hat PRESENT ähnliche Implementierungsanforderungen wie viele kompakte Stream-Chiffren. Wir glauben daher, dass dies sowohl von theoretischem als auch von praktischem Interesse ist. Wie bei allen neuen Vorschlägen empfehlen wir nicht die sofortige Einführung von PRESENT, sondern fordern dessen Analyse.

Bekenntnis


Die in diesem Dokument vorgestellten Arbeiten wurden teilweise von der Europäischen Kommission durch STREP UbiSec & Sens des EU-Rahmenprogramms 6 für Forschung und Entwicklung (www.ist-ubisecsens.org) unterstützt. Die in diesem Dokument enthaltenen Meinungen und Schlussfolgerungen sind die der Autoren und sollten nicht als offizielle Politik oder Bestätigung interpretiert werden, die vom UbiSec & Sens-Projekt oder der Europäischen Kommission zum Ausdruck gebracht oder gebilligt wird.

Source: https://habr.com/ru/post/undefined/


All Articles