vault backup: 2023-05-22 14:15:43

This commit is contained in:
2023-05-22 14:15:43 +02:00
parent 5b6533a6e6
commit b98350fad7
3 changed files with 144 additions and 50 deletions

View File

@@ -1498,6 +1498,10 @@ PKCS
Padding
PSe
Pos
Polynoms
Problem
Polynommodul
Polynommultiplikation
obj
oV
oYj
@@ -6423,6 +6427,7 @@ Feld
Fehler
Funktion
FGj
FIPS
stream
se
sH
@@ -8451,6 +8456,8 @@ surjektiv
swA
sre
sHy
speziellen
stattdessen
ZKs
ZN
Zf
@@ -10368,6 +10375,7 @@ Zielsystems
Zugangsbarriere
Zähler
Zkp
Zustands
Who
We
WE
@@ -14554,6 +14562,7 @@ Kryptographiebibliothek
Klartext
Kern
Kerns
Kombination
bq
bQ
bG
@@ -16336,6 +16345,12 @@ betreffende
bringen
bestimmen
bxN
beginnen
bekannt
befindet
betrachtet
beeinflusst
bedingten
iZ
ig
iA
@@ -18327,6 +18342,8 @@ informieren
irreduziblen
impliziert
injektiv
irreduzible
irreduzibles
GJe
GAG
GJ
@@ -21659,6 +21676,8 @@ Außerdem
Abbildung
Also
AKA
Ausführung
Addition
QV
Qom
QJ
@@ -25478,6 +25497,8 @@ nFu
nGQ
ngGC
nuxv
nächste
nehmen
YJ
Yb
YwM
@@ -33992,6 +34013,8 @@ gepaddet
gesamten
gesamte
gXQ
geschieht
genommen
DMg
Dv
DLg
@@ -37447,6 +37470,7 @@ xtEC
xpL
xTHt
xkjB
xFF
Hx
HV
HdH
@@ -40490,6 +40514,8 @@ zJnv
zIC
ztO
zif
zusammen
zweites
hr
hAa
hH
@@ -42059,6 +42085,10 @@ hinaus
homogenen
hMz
huAgG
hier
hexadezimal
hexadezimaler
höchste
pt
ps
pao
@@ -46901,6 +46931,8 @@ auswirkt
aufgespannt
anders
aufspannen
anderes
addieren
fb
fVVvD
fh
@@ -49999,6 +50031,11 @@ BkB
BuZ
BaM
BZW
Bevor
Begriffe
Befehls
Bitverschiebungen
Bitverschiebung
ek
eP
eVPm
@@ -52215,6 +52252,9 @@ einzelner
entschlüsselte
ergeben
einzige
ersetzen
ersetzende
erstes
tj
tg
tt
@@ -60284,6 +60324,8 @@ Einheitsbasis
Entschuldigen
EICJ
EDq
Element
Entschuldigung
lX
ll
lC
@@ -62335,6 +62377,8 @@ leer
lCWt
lsxoj
lpyU
letzte
lässt
wG
wd
ws
@@ -68120,6 +68164,7 @@ vollständig
viel
verfügbar
vzEv
viertes
XE
Xd
XRb
@@ -73815,6 +73860,7 @@ jede
jQBtU
jsN
jSX
jeder
My
Mm
MO
@@ -83793,6 +83839,10 @@ meiner
mathbb
mGk
mgbp
möglichen
modulo
manuell
multiplizierten
dg
dw
de
@@ -86027,6 +86077,8 @@ djA
dGf
dTTW
dHKC
dezimal
drittes
VV
VA
Vsm
@@ -88203,6 +88255,7 @@ Vulnerability
Volumen
VnH
VgZ
Verschiebung
SGN
Sg
SrEHO

View File

@@ -7,35 +7,13 @@
"id": "08ad9b53ade42d31",
"type": "tabs",
"children": [
{
"id": "4759485602209736",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "Mathe/KW20/KW20-VekRau.pdf"
}
}
},
{
"id": "3af22a08907820e9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Informationssicherheit/Ueb4/Ueb4.md",
"mode": "source",
"source": false
}
}
},
{
"id": "803efb657af4bf78",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Informationssicherheit/Ueb5/Ueb5.md",
"file": "Informationssicherheit/Ueb5/new UEB5.md",
"mode": "source",
"source": false
}
@@ -48,27 +26,7 @@
"type": "tabs",
"children": [
{
"id": "1f7b587b5c7ba0ca",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "Mathe/KW20/KW20-VekRau_vor.pdf"
}
}
},
{
"id": "97144f693a49a6bd",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "Informationssicherheit/Ueb4/04-ueb_uebungsblatt.pdf"
}
}
},
{
"id": "bb50423caed961c3",
"id": "dc9bd541f67f53ab",
"type": "leaf",
"state": {
"type": "pdf",
@@ -151,7 +109,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Mathe/KW20/KW20-VekRau_vor.pdf",
"file": "Informationssicherheit/Ueb5/new UEB5.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -168,7 +126,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "Mathe/KW20/KW20-VekRau_vor.pdf",
"file": "Informationssicherheit/Ueb5/new UEB5.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@@ -191,7 +149,7 @@
"state": {
"type": "outline",
"state": {
"file": "Mathe/KW20/KW20-VekRau_vor.pdf"
"file": "Informationssicherheit/Ueb5/new UEB5.md"
}
}
},
@@ -252,15 +210,16 @@
"obsidian-wordnet-plugin:WordNet Dictionary": false
}
},
"active": "1f7b587b5c7ba0ca",
"active": "803efb657af4bf78",
"lastOpenFiles": [
"Mathe/KW20/KW20-VekRau.pdf",
"Informationssicherheit/Ueb5/Ueb5.md",
"Informationssicherheit/Ueb5/new UEB5.md",
"Informationssicherheit/Ueb5/05-ueb_uebungsblatt.pdf",
"Mathe/KW20/KW20-VekRau_vor.pdf",
"Mathe/KW20/KW20-VekRau.pdf",
"Informationssicherheit/Ueb4/Ueb4.md",
"Informationssicherheit/Ueb4/04-ueb_uebungsblatt.pdf",
"Mathe/KW20/KW20.md",
"Mathe/KW20/KW20-VekRau_vor.pdf",
"Informationssicherheit/Ueb4/Ueb4 - Kopie.md",
"Informationssicherheit/Ueb5",
"Mathe/KW20",

View File

@@ -0,0 +1,82 @@
Um den Wert des ersten Bytes (erste Zeile, erste Spalte) der Ausgabe des AES-Algorithmus vor AddRoundKey am Ende der ersten Runde zu berechnen, müssen wir die folgenden Schritte des AES-Algorithmus durchlaufen:
1. SubBytes
2. ShiftRows
3. MixColumns
Bevor wir beginnen, hier sind die S-Box und die MixColumns-Matrix, die in FIPS-197 definiert sind:
S-Box:
```
63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15
04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75
09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84
53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF
D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8
51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2
CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73
60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB
E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79
E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08
BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A
70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E
E1 F8 98 11 69 D9 8E 94 9B 1E 87 E9 CE 55 28 DF
8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16
```
MixColumns-Matrix:
```
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
```
Die SubBytes-Phase ist der erste Schritt in der AES-Runde. In dieser Phase wird jedes Byte des Zustands durch ein anderes Byte ersetzt. Dies geschieht durch die Verwendung einer speziellen Tabelle, die als S-Box bekannt ist. Die S-Box ist eine 16x16-Tabelle, die alle möglichen Werte eines Bytes (0x00 bis 0xFF) enthält. Jedes Byte des Zustands wird durch das Byte ersetzt, das sich an der Stelle in der S-Box befindet, die durch die ersten vier Bits (die Zeile) und die letzten vier Bits (die Spalte) des Bytes bestimmt wird.
Da wir nur das erste Byte (erste Zeile, erste Spalte) der Ausgabe berechnen, müssen wir nur das erste Byte des Zustands durch die S-Box ersetzen. Das erste Byte des Zustands ist 0x1A. Die ersten vier Bits von 0x1A sind 0001 (1 in dezimal), und die letzten vier Bits sind 1010 (A in hexadezimal). Daher befindet sich das ersetzende Byte an der Stelle (1, A) in der S-Box, was 0x63 ist.
Daher ist das erste Byte nach der SubBytes-Phase 0x63.
Der nächste Schritt ist die ShiftRows-Phase. In dieser Phase wird jede Zeile des Zustands um eine bestimmte Anzahl von Bytes nach links verschoben. Die erste Zeile bleibt unverändert, die zweite Zeile wird um ein Byte, die dritte Zeile um zwei Bytes und die vierte Zeile um drei Bytes verschoben. Da das erste Byte in der ersten Zeile liegt, bleibt es unverändert.
Daher ist das erste Byte nach der ShiftRows-Phase immer noch 0x63.
Der letzte Schritt ist die MixColumns-Phase. In dieser Phase wird jede Spalte des Zustands als vier Begriffe eines Polynoms betrachtet und dann mit einem festen Polynom multipliziert. Das Ergebnis der Multiplikation wird dann modulo einem irreduziblen Polynom genommen, um sicherzustellen, dass das Ergebnis immer ein Byte ist. Da das erste Byte in der ersten Spalte liegt, wird es durch die MixColumns-Phase beeinflusst.
Um das erste Byte nach der MixColumns-Phase zu berechnen, müssen wir das erste Byte jeder Zeile der Spalte nehmen und es mit dem entsprechenden Element der ersten Zeile der MixColumns-Matrix multiplizieren. Dann addieren wir die Ergebnisse zusammen und nehmen das Ergebnis modulo 0x1B (das irreduzible Polynom).
Das bedeutet, wir müssen die folgende Berechnung durchführen:
0x02 * 0x63 (erstes Byte nach ShiftRows)
0x01 * 0xB2 (zweites Byte der ersten Spalte)
0x01 * 0x32 (drittes Byte der ersten Spalte)
0x03 * 0x70 (viertes Byte der ersten Spalte)
Dann addieren wir die Ergebnisse zusammen und nehmen das Ergebnis modulo 0x1B.
Lassen Sie uns diese Berechnung durchführen.
Entschuldigung, es scheint, dass es ein Problem mit der Ausführung des Polynommodul-Befehls gibt. Lassen Sie uns stattdessen die MixColumns-Berechnung manuell durchführen.
Die Multiplikation in der MixColumns-Phase wird in GF(2^8) durchgeführt, was bedeutet, dass sie eine spezielle Art der Multiplikation ist, die als "Polynommultiplikation modulo ein irreduzibles Polynom" bekannt ist. In diesem Fall ist das irreduzible Polynom x^8 + x^4 + x^3 + x + 1, das in hexadezimaler Form als 0x1B dargestellt wird.
Die Multiplikation mit 0x02, 0x01 und 0x03 in GF(2^8) kann durch eine Kombination von Bitverschiebungen und bedingten XOR-Operationen durchgeführt werden. Die Multiplikation mit 0x02 entspricht einer Bitverschiebung nach links und einer bedingten XOR-Operation mit 0x1B, wenn das höchste Bit vor der Verschiebung 1 ist. Die Multiplikation mit 0x01 lässt das Byte unverändert. Die Multiplikation mit 0x03 entspricht der Addition (die in GF(2^8) einer XOR-Operation entspricht) des ursprünglichen Bytes und des mit 0x02 multiplizierten Bytes.
Lassen Sie uns diese Berechnungen durchführen:
0x02 * 0x63 = 0xC6
0x01 * 0xB2 = 0xB2
0x01 * 0x32 = 0x32
0x03 * 0x70 = 0x70 XOR 0xE0 = 0x90
Dann addieren wir die Ergebnisse zusammen und nehmen das Ergebnis modulo 0x1B:
0xC6 XOR 0xB2 XOR 0x32 XOR 0x90 = 0x54
Daher ist das erste Byte nach der MixColumns-Phase 0x54.
Zusammenfassend ist das erste Byte (erste Zeile, erste Spalte) der Ausgabe des AES-Algorithmus vor AddRoundKey am Ende der ersten Runde 0x54.