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

View File

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