Grundlagen der Kryptographie (Nationale Sicherheit ohne Cybersicherheit)
1. Fünf Fragen der Seele
1. Was ist ein Passwort?
Geheimnisse beziehen sich auf Technologien, Produkte und Dienstleistungen, die bestimmte Transformationsmethoden zum Verschlüsseln, Schützen und Authentifizieren von Informationen usw. verwenden.
2. Was ist Kryptographie?
Kryptographie ist die Technologie und Wissenschaft des Studiums von Codes und deren Entschlüsselung.
3. Was ist Gesichtskodierung?
Das Studium der objektiven Gesetze von Chiffrieränderungen und die Anwendung von Chiffren zum Schutz von Kommunikationsgeheimnissen ist zur Kryptographie geworden.
4. Kryptoanalyse und Entschlüsselung?
Angewandt auf die Entschlüsselung von Codes, um Kommunikationsinformationen zu erhalten, ist es zur Kryptoanalyse und Cracking-Medizin geworden.
Die Kryptographie löst hauptsächlich Folgendes: Vertraulichkeit, Integrität, Authentifizierung der Nachrichtenquelle, Authentifizierung von Kommunikationseinheiten und Nichtabstreitbarkeit
5. Was ist die Grundidee der Chiffre?
Verschleierung von Informationen, damit Unbefugte ihre wahre Bedeutung nicht verstehen können.
3. Übersicht
1. Die grundlegende Zusammensetzung des Passwortkörpers
(1) Klartextraum M: die Sammlung aller Klartexte
(2) Chiffretextraum C: die Sammlung aller Chiffretexte
(3) Schlüsselraum K: die Menge aller Schlüssel, k=<Ke,Kd>, Ke verschlüsselt, Kd entschlüsselt
(4) Verschlüsselungsalgorithmus E: ein Cluster verschlüsselter Transformationen von M—>C
(5) Entschlüsselungsalgorithmus D: ein Cluster von Entschlüsselungstransformationen von C—>M
2. Klassifizierung von Kryptosystemen
1. Teilen Sie, ob der Verschlüsselungsschlüssel und der Entschlüsselungsschlüssel gleich sind
(1) Traditionelle Passwörter (Ke=kd): DES, AES, SMS4, RC4
(2) Public-Key-Kryptographie (Ke != Kd)
Ke != kd, und da Ke Kd nicht berechnen kann, kann Ke veröffentlicht werden, was Kd nicht schadet
Typische Chiffren: RSA, EIGaMAL, ECC
2. Getrennt von der Art und Weise, wie der Schlüssel verwendet wird
(1) Serienpasswort
Klartext, Chiffretext und Schlüssel werden in Biteinheiten (Zeicheneinheiten) verschlüsselt und entschlüsselt
Der Mainstream der Kernpasswörter
Typische Passwörter: RC4, Zu Chongzhis Passwort
(2) Blockchiffre
Chiffretext, Geheimtext und Schlüssel werden in Gruppen verschlüsselt und entschlüsselt
Kommerzielle Chiffren sind Mainstream
Typische Chiffren: DES, AES, SMS4
3. Ob sich der kryptografische Algorithmus ändert oder nicht
Der Algorithmus des Passworts wird während des Arbeitsprozesses festgelegt und der Schlüssel ist variabel
Die allermeisten Chiffren sind bisher feste Algorithmen
Typische Chiffren: AES, DES, SMS4, RC4, RSA, EIGAMAL, ECC
3. Klassifizierung der Kryptoanalyse
1. Mathematikbasierte Analyse
Die sogenannte mathematische Analyse bedeutet, dass der Kryptoanalytiker das Passwort durch mathematische Analyse für den mathematischen Satz des Verschlüsselungsalgorithmus entschlüsselt.
Statistischer Analyseangriff: Entschlüsselung von Passwörtern durch Analyse der statistischen Gesetze von Chiffretext und Klartext
2. Basierend auf einer nicht-mathematischen Analyse
Die sogenannte nicht-mathematische Analyse bedeutet, dass Kryptoanalytiker die physikalischen Parameter des Chips (wie Leistung, Strom, Ton, Ausführungszeit usw.) ermitteln und analysieren, um den Code zu entschlüsseln. Dieser Angriff wird auch als Seitenkanalangriff bezeichnet.
Das Prinzip des Seitenkanalangriffs ist Folgendes
(1) Leistung, Strom, Zeit und Ton, die der kryptografische Chip erzeugt, sind bei der Ausführung verschiedener Anweisungen unterschiedlich
(2) Die Leistung, der Strom, die Zeit und der Ton, die der Verschlüsselungschip bei der Verarbeitung verschiedener Daten verbraucht, sind unterschiedlich
3. Klassifizierung nach den belegten Datenressourcen
(1) Der Angreifer kann jederzeit an den Chiffretext gelangen
(2) Der Angreifer kann immer den kryptografischen Algorithmus kennen, nicht jedoch den Schlüssel
(3) Der Angreifer verfügt über ausreichende Rechenressourcen
4. Welche Algorithmen werden zur Lösung verschiedener Probleme verwendet?
Verschleierung von Informationen, damit Unbefugte ihre wahre Bedeutung nicht verstehen können.
Zur Lösung der Vertraulichkeit: Verschlüsselung mit symmetrischem Schlüssel (Stromverschlüsselung, Blockverschlüsselung), öffentlicher Schlüssel und Verschlüsselung
Adressierung der Integrität: Hash-Funktionen, Nachrichten-Digest-Funktionen
Authentifizierung lösen: digitale Signatur, Identitätsauthentifizierungsprotokoll
Bewältigung der Nichtabstreitbarkeit: Digitale Signaturen
5. Einführung von symmetrischer Verschlüsselung, asymmetrischer Verschlüsselung und Hash
1. Symmetrischer Schlüsselverschlüsselungsalgorithmus
Die Merkmale des Verschlüsselungsalgorithmus mit symmetrischem Schlüssel: Die Verschlüsselungs- und Entschlüsselungsschlüssel sind gleich und die Geschwindigkeit der Verschlüsselung und Entschlüsselung ist hoch
Gängige Algorithmen: Zu Chongzhi-Algorithmus (ZUC), DES, AES, SM4 usw.
2. Verschlüsselungsalgorithmus mit asymmetrischem Schlüssel (Kryptosystem mit öffentlichem Schlüssel)
Merkmale der asymmetrischen Verschlüsselung: Die Verschlüsselungs- und Entschlüsselungsschlüssel sind unterschiedlich und die Verschlüsselungs- und Entschlüsselungsgeschwindigkeit ist langsam
Anwendung: Kurznachrichtenverschlüsselung, digitale Signatur, Identitätsauthentifizierung
Gängige Algorithmen: RSA, ECC, SM2
3. Hash-Algorithmus
Merkmale: ①Beliebig lange Eingaben werden einer Ausgabe fester Länge zugeordnet; ②Wenn sich die Eingabe ändert, ändert sich die Ausgabe unvorhersehbar; ③Die Ausgabe kann nicht von der Eingabe abgeleitet werden;
Anwendung: Integritätsprüfung
Gängige Algorithmen: MD5, SM3
4. Die Zeitleiste der Entwicklung der Kryptographie
Antike Kryptographie: Von den Anfängen der Menschheit bis zum Jahr 1800 galt sie früher als Kunst, und es gab keinen Grund zu beweisen, dass sie ausschließlich durch Intuition entworfen und analysiert wurde. Es gibt eine antike spartanische „Buch des Himmels“-Chiffre aus dem Jahr 500 v. Chr. (vor 500 n. Chr.) (Ersatzchiffre), eine antike griechische Schachchiffre aus dem Jahr 205–123 v. Chr. (Ersatzchiffre), eine antike römische Cäsar-Verschlüsselung aus dem Jahr 50 v Chiffre (statt Cipher)
5. Klassische Kryptographie
5.1 Passwort ersetzen
1. Ordnen Sie die Buchstaben im Klartext neu an. Die Buchstaben selbst bleiben unverändert, aber ihre Positionen werden geändert. Die so angeordneten Passwörter werden Permutationspasswörter genannt.
#例如:把明文中的字母颠倒过来,然后截取固定长度的字母组作为密文
#明文:明晨五点行动
MING CHNEG WU DIAN XING DONG
#密文:
GNODG NIXNA IDUWG ENHCG NIM
2. Ordnen Sie den Klartext in einer bestimmten Reihenfolge in einer Matrix an, wählen Sie dann die Buchstaben in der Matrix in einer anderen Reihenfolge aus, um den Chiffretext zu bilden, und schneiden Sie ihn schließlich als Chiffretext in Buchstabengruppen fester Länge.
#例如:明晨五点反攻
#明文:
MING CHENG WU DIAN FAN GONG
#矩阵:
MINGCH
ENWUDI
ANFANG
ONG###
#选出顺序:按列
#密文:
MEAO INNN NWFG GUA# CDN# HIG#
Theoretisch ist der Verschlüsselungsschlüssel der Permutationsverschlüsselung die Permutationsmatrix P, und der Entschlüsselungsschlüssel ist die Umkehrung des Permutationsbeweises p
Permutations-Chiffren können bekannten Klartextangriffen nicht standhalten
5.2 Ersetzung von Passwörtern
Erstellen Sie zunächst ein oder mehrere Chiffretext-Alphabete und ersetzen Sie dann Klartextbuchstaben oder Buchstabengruppen durch Buchstaben oder Buchstabengruppen in geheimen Alphabeten. Die relative Position jedes Buchstabens oder jeder Buchstabengruppe bleibt unverändert, ändert sich jedoch selbst.
5.2.1 Ersetzen einzelner Tabellen: Erscheint hauptsächlich in englischen Buchstaben
1. Das Konzept der Einzeltabellenersetzung: Verwenden Sie feste Informationen, um den Originaltext durch Chiffretext zu ersetzen. Beispiel: Bee, ersetze b durch w, e durch p, das Wort wird zu wpp
2. Klassifizierung von Single-Table-Substitutions-Chiffren: additive Chiffren, multiplikative Chiffren und affine Chiffren
3. Unfähig, erschöpfenden Angriffen standzuhalten
5.2.1.1 Additive Chiffren
1. Caesar-Verschlüsselung: Kennen Sie die Entschlüsselungsregeln. Die Caesar-Verschlüsselung ist ein Prinzip der Verschlüsselungsmethode (k = 3)
: Verschieben Sie 26 Buchstaben, bewegen Sie sich nach links oder rechts und achten Sie darauf, beim Verschieben höchstens 25 Ziffern zu verschieben
Beispiel: abcd bewegt sich um zwei cdef zurück
package com.liping.ascii;
/**
*凯撒加密
*/
public class AsciiDemo {
public static void main(String [] args){
//定义原文
String input = "Hello world";
//字母向后移动位数
int key = 3;
//凯撒加密
String s =encryptKaiser(input,key);
System.out.println("密文是:"+ s);
//解密
String s1=decryptKasier(s,key);
System.out.println("明文是:"+ s1);
}
/**
*解密
* @param s
* @param key
* @return
*/
private static String decryptKasier(String s, int key) {
char [] chars = s.toCharArray();
StringBuilder sb = new StringBuilder();
for (char aChar : chars) {
int b = aChar;
b = b - key;
char newb = (char)b;
sb.append(newb);
}
return sb.toString();
}
/**
* 加密
* @param input
* @return
*/
private static String encryptKaiser(String input,int key) {
//把字符串转换成数组
char [] chars = input.toCharArray();
StringBuilder sb = new StringBuilder();
for(char achar:chars){
int b = achar;
b = b + key;
char newc = (char)b;
sb.append(newc);
}
// System.out.println("密文是:"+sb.toString());
return sb.toString();
}
}
5.2.1.2 Multiplikations-Chiffre (k hat 12 Möglichkeiten)
Es ist erforderlich, dass k zueinander Primzahlen sind
5.2.1.3 Affine Chiffren (k hat 12 Möglichkeiten, b hat 26 Möglichkeiten)
5.2.2 Austausch mehrerer Tische
Zeigt an, dass mehrere Tabellen vorhanden sind, der Originaltext und der Chiffriertext verglichen werden und das typische Passwort das Virginia-Passwort (Vigenere) ist.
Beispiel Virginia
Erklärung der mathematischen Sprache:
5.3 Algebraische Chiffren
Vernam-Chiffre: Klartext, Chiffretext und Schlüssel stellen alle binäre Bits dar
M=m1,m2,m3,m4...mn
K=k1,k2,k3,k4…kn
C=C1,C2,C3,C4…Cn
Verschlüsselung und Entschlüsselung sind alles Modulo-2-Operationen
Vernam-Chiffren können bekannten Klartextangriffen nicht standhalten. Wenn die Schlüsselsequenz wiederholt wird, sind Vernam-Chiffren unsicher.
Im Extremfall einmaliges Pad, aber nicht praktikabel
5.3 Cracking-Methode: Frequenzanalysemethode, ohne die Cracking-Regeln zu kennen
Häufigkeitsanalysemethode: Wahrscheinlichkeitstheorie, ohne die Cracking-Regeln zu kennen, in der Reihenfolge der Häufigkeit sortieren
6. Moderne Kryptographie
1. Der Kern der Enigma-Verschlüsselungsmaschine
ist auch die von Turing geknackte Verschiebungs- und Substitutionsmethode
2. Zu Chongzhi-Sequenzverschlüsselungsalgorithmus
Bedeutung: Der ZUC-Algorithmus ist ein wortbasierter synchroner Sequenzverschlüsselungsalgorithmus. Die Länge des Startschlüssels SK und des Anfangsvektors IV beträgt jeweils 128 Bit.
Struktur des ZUC-Algorithmus
Die erste Schicht: lineare Feedback-Schieberegisterschicht
Die zweite Schicht: Bitspeicherschicht
Die dritte Ebene: lineare Funktion
2.1 Symbolbedeutung des Passworts von Zu Chongzhi.
2.2 Algorithmusstruktur des Passworts von Zu Chongzhi
7. Moderne Kryptographie
1. Hash-Funktion
Die Hash-Funktion wird auch Hash-Funktion genannt
Gängige Verschlüsselungsmethoden: MD5, SHA-1, SHA256
MD5 kann aus einem beliebig langen Originaltext einen 128-Bit (16 Byte) großen Hashwert generieren
SHA-1 kann aus einem Originaltext beliebiger Länge einen 160-Bit-Hashwert (20 Byte) generieren
2. Symmetrische Verschlüsselung
Bei der symmetrischen Verschlüsselung wird für die Ver- und Entschlüsselung derselbe Schlüssel verwendet
3. Asymmetrische Verschlüsselung
①Asymmetrische Verschlüsselung: Auch als moderner Verschlüsselungsalgorithmus bekannt
②Der asymmetrische Verschlüsselungsalgorithmus erfordert zwei geheime Schlüssel, einen öffentlichen Schlüssel und einen privaten Schlüssel
③ Der öffentliche Schlüssel und der private Schlüssel sind ein Paar, das als geheimes Schlüsselpaar bezeichnet wird. Wenn der öffentliche Schlüssel zum Verschlüsseln verwendet wird, muss der private Schlüssel zum Entschlüsseln verwendet werden. Wenn der private Schlüssel zum Verschlüsseln verwendet wird, muss der öffentliche Schlüssel verwendet werden zum Entschlüsseln verwendet
(Asymmetrische Verschlüsselung, es gibt zwei geheime Schlüssel. Zum Verschlüsseln wird der öffentliche Schlüssel verwendet, zum Entschlüsseln muss der private Schlüssel verwendet werden. Bei der Verschlüsselung mit privatem Schlüssel muss zum Entschlüsseln der öffentliche Schlüssel verwendet werden.)
Gängiger asymmetrischer Verschlüsselungsalgorithmus:RSA-Algorithmus
4. So legen Sie ein sicheres Passwort fest
1. Passwörter sollten nicht zu häufig vorkommen
2. Die Passworteinstellungen in jeder Anwendungssoftware sind unterschiedlich, andernfalls kann es zu einem Absturz kommen
3. Fügen Sie beim Festlegen des Passworts einige spezielle Markierungen hinzu, eine Anwendung + ein Passwort
5. Die Beziehung zwischen Byte und Bit
1. Wenn das UTF-8-Codierungsformat verwendet wird, entspricht ein chinesisches Zeichen 3 Bytes
2. Wenn das GBK-Codierungsformat verwendet wird, entspricht ein chinesisches Zeichen 2 Bytes
3. Wenn das Format dem Englischen entspricht, gibt es kein Codierungskonzept und alle entsprechen einem Byte
package com.liping.bytebit;
import java.io.UnsupportedEncodingException;
import java.sql.SQLOutput;
public class ByteBitDemo {
/**
* 编码方式是utf-8一个中文对应三个bit'
*
* 如果是jbk一个中文对应两个字节
* @param args
*/
public static void main(String[] args) throws UnsupportedEncodingException {
String a = "李";
//现在默认是utf-8
// byte [] bytes =a.getBytes();
//现在设置为GBK,同时需要抛出异常
byte [] bytes = a.getBytes("GBK");
for (byte aByte : bytes) {
System.out.println(aByte);
String s = Integer.toBinaryString(aByte);
System.out.println(s);
}
}
}
Acht, moderne Verschlüsselung (symmetrische Verschlüsselung)
8.1 Stream-Verschlüsselung: Nacheinander verschlüsseln
1. Pseudozufälliges Golomb-Postulat
Drei Postulate der Zufälligkeit:
(1) In einem Zyklus der Sequenz beträgt die Differenz zwischen der Zahl 0 und 1 bis zu 1. (Es zeigt, dass die Eintrittswahrscheinlichkeit von 0 und 1 grundsätzlich gleich ist)
(2) In einem Zyklus der Sequenz macht die Länge des Laufs von i 1/(2^i) der Gesamtzahl der Läufe aus, und die Anzahl der Läufe von 0 und die Anzahl der Läufe von 1 sind in gleich die Läufe sind gleich lang. (Dies zeigt an, dass 0 und 1 die gleiche Wahrscheinlichkeit haben, an jeder Position in der Sequenz zu erscheinen.)
(3) Die phasenverschobene Autokorrelationsfunktion ist eine konstante Funktion. (Durch Vergleich der Sequenz mit der übersetzten Sequenz können keine weiteren Informationen gegeben werden)
8.2 Blockverschlüsselung: Blockverschlüsselung
1. Sicherheitsdesignprinzip: Verwirrungsprinzip
Das Prinzip der Verwirrung besteht darin, die Geschwisterbeziehung und die algebraische Beziehung zwischen Chiffretext, Klartext und Schlüssel so kompliziert wie möglich zu gestalten. Selbst wenn der Gegner den Chiffretext und den Klartext erhält, kann er keine Informationen über den Schlüssel finden; selbst wenn er die statistischen Gesetze des Mi Wen und den Klartext erhält, kann er keine neuen Informationen über den Klartext finden.
2. Erfüllen Sie die Anforderungen
(1) Die Paketlänge n muss groß genug sein, um umfassende Klartextangriffe zu verhindern
(2) Die Anzahl der Schlüssel sollte groß genug sein, um schwache Schlüssel so weit wie möglich zu eliminieren und so zu verhindern, dass Schlüsselerschöpfungsangriffe funktionieren
(3) Der durch den Schlüssel bestimmte Permutationsalgorithmus sollte komplex genug sein
(4) Verschlüsselungs- und Entschlüsselungsvorgänge sind einfach und durch Software und Hardware mit hoher Geschwindigkeit leicht zu implementieren
(5) Die Fehlerausbreitung sollte so gering wie möglich sein und ein Chiffretextblock sollte die Entschlüsselung anderer Chiffretextblöcke so wenig wie möglich beeinflussen.
3. SP-Netzwerk (vorgeschlagen von Shannon)
Überblick über die Substitution: Wenn die Blocklängen von Klartext und Chiffretext beide nbit betragen, dann hat jeder Klartextblock 2^n Möglichkeiten. Jeder Klartextblock erzeugt einen eindeutigen Chiffretextblock, und eine solche Transformation ist reversibel, was als reversible Transformation von Klartext in einen Chiffretextblock als Substitution bezeichnet wird.
(1) Alternative
(2) Ersatz
4. Feistel-Passwort
4.1 Design Thinking
Eine Produktchiffre bezieht sich auf die sequentielle Ausführung von zwei oder mehr Basiskryptosystemen, sodass das Endergebnis kryptografisch stärker ist als das von jedem Basiskryptosystem erzeugte Ergebnis
Parameter der Feistel-Netzwerkimplementierung
(1) Gruppengröße: Je größer die Gruppe, desto höher die Sicherheit und desto langsamer die Verschlüsselungsgeschwindigkeit
(2) Schlüsselgröße: Je länger der Schlüssel, desto höher die Sicherheit und desto langsamer die Verschlüsselungsgeschwindigkeit
(3) Anzahl der Runden: Eine Struktur mit nur einem Rad reicht nicht aus, um die Sicherheit zu gewährleisten, und eine Struktur mit mehreren Rädern kann die Sicherheit gewährleisten. Die typische Anzahl der Runden beträgt sechzehn.
(5) Algorithmus zur Unterschlüsselgenerierung: Je komplexer der Algorithmus ist, desto schwieriger ist die Kryptoanalyse.
(6) Rundenfunktion: Je komplexer die Rundenfunktion ist, desto größer ist die Schwierigkeit der Kryptoanalyse
4.2 Verschlüsselungsstruktur![Fügen Sie hier eine Bildbeschreibung ein](https://img-blog.csdnimg.cn/467d61bbfa634205989c3e3842990fb3.png#pic_center)
Feistal-Entschlüsselungsprozess:
5. Typisch für die Feistal-Verschlüsselung: DES-Algorithmus (Data Encryptography Standard)
5.1 DES-Entwicklungsgeschichte
(1) Im Jahr 1937 forderte das US-amerikanische National Bureau of Standards öffentlich Verschlüsselungsalgorithmen auf, um Standards für Verschlüsselungsalgorithmen festzulegen.
(2) Die zweite Ausschreibung im Jahr 1974
(3) Der Algorithmus von IBM wurde 1975 ausgewählt und zur Kommentierung veröffentlicht
(4) Offiziell verkündet am 15. Januar 1977
(5) Die Verschlüsselung wurde nach Ende 1998 deaktiviert
(6) 3DES wurde 1999 veröffentlicht und ist auch mit den vorherigen Verschlüsselungsmethoden kompatibel
5.2 Überblick über den DES-Algorithmus (16 Runden Feistal)
1. Hauptzweck
(1) Verschlüsselung schützt nicht vertrauliche sensible Daten von Regierungsbehörden und kommerziellen Sektoren
(2) Die Verschlüsselung schützt den statischen Speicher und überträgt dann Daten im Kanal.
2. Merkmale der DES-Verschlüsselung
(1) Die Paketlänge beträgt 64 Bit
(2) Die Länge des Chiffretextblocks beträgt 64 Bit
(3) Die Schlüssellänge beträgt 64 Bit mit 8 Bit Parität und die effektive Anzahl von Bits beträgt 56 Bit
(4) Inversionsbetrieb
Die Involutionsoperation in der Mathematik bezieht sich auf f(f(x))=x.
Bei DES bedeutet dies, dass sich Verschlüsselung und Entschlüsselung denselben Vorgang teilen können.
(5) Hauptsächlich enthaltene Algorithmen: anfängliche Permutations-IP, Produkttransformation von 16 Iterationsrunden , Umkehrung der inversen anfänglichen Permutations-IP und 16 Unterschlüsselgeneratoren
5.3DES-Verschlüsselungsprozess
1. Der 64-Bit-Schlüssel generiert über den Unterschlüssel-Generierungsalgorithmus 16 Unterschlüssel K1, K2, K3 ... K16, von denen jeder eine Verschlüsselungsiteration bereitstellt
2. Der 64-Bit-Klartext wird nach dem ersten Test durch die IP ersetzt, und die Daten werden verwürfelt und neu angeordnet und in linke und rechte Hälften geteilt. Links L0, Rechts R0
3. Starten Sie die Verschlüsselungsiteration
Erste Verschlüsselungsiteration:
L1=R0
R1=L0 und oberes f(R0,K1)
Sekunde bis Fünfzehntel
Die rechte Seite hat noch nie eine Berechnung durchgeführt und wird direkt der nächsten linken Seite Li=R(i-1) zugewiesen.
Das nächste Mal passiert die rechte Seite Li=L(i-1) und die obere f(R i-1,K1)
5.4 Prozess der Unterschlüsselgenerierung
Die Rolle der 1-Permutationsauswahl im Prozess der Unterschlüsselgenerierung
1. Entfernen Sie die 8 Paritätsprüfungen im Schlüssel
2. Mischen Sie die Neuanordnung, um links 28 Bits und rechts 28 Bits (64-8)/2 zu bilden
eine neue Matrix bilden
4. Nach der sechzehnten Verschlüsselungsiteration wird eine 64-Bit-Datengruppe generiert, wobei die linken 32 Bit als R16 und die rechten 32 Bit als L16 dienen.
5. Führen Sie R16L16 zusammen, führen Sie die Umkehrung der inversen anfänglichen Permutation IP durch, ordnen Sie die Daten neu an und erhalten Sie einen 64-Bit-Chiffretext
6. Verschlüsselungsfunktion: der Kern der DES-Geheimhaltung
Ersatzfunktionsgruppe S (S-Box)
Allgemeine Eigenschaften von S-Boxen
(1) Die S-Box ist die nichtlineare Transformation der Verschiebung in DES und der Schlüssel zur Sicherheit von DES.
(2) Verwirrend im Hinblick auf die Vertraulichkeit
(3) Es gibt insgesamt 8 S-Boxen, die parallel agieren
(4) Jede S-Box verfügt über 6 Eingänge und 4 Ausgänge, was einer nichtlinearen Komprimierungstransformation entspricht
(5) Die Eingabe sei b1b2b3b4b5b6, dann bildet b1b6 die Zeilennummer in Binärform, b2b3b4b4 bildet die Spaltennummer der Binärzahl und der Schnittpunkt ist die Ausgabe (binär).
5.5 Multiple DES-Algorithmus
Double DES von Diffie und Hellman
6.AES
1. Der Hintergrund der AES-Generierung
(1) Im Dezember 1984 befahl Präsident Reagan der National Security Agency (NSA), einen Standard als Ersatz für DES zu entwickeln
(2) Im Jahr 1991 begann das neue Passwort, Meinungen einzuholen, und der Algorithmus wurde nicht offengelegt, nur der Chip wurde bereitgestellt
(3) Der neue Verschlüsselungsstandard EES wurde 1994 verkündet
(4) Im Mai 1995 griff M. Blaze, ein Doktorand an den Bell Labs, 45 Minuten lang erfolgreich Rechtsgebiete auf einem Computer an
(5) Im Juli 1995 wurde die EES-Datenverschlüsselung aufgegeben
(6) Im Jahr 1997 erhob die US-Regierung öffentlich AES von der Öffentlichkeit
2. AES-Designanforderungen
(1) Sicherheit: Kann allen bekannten Angriffen widerstehen
(2) Praktikabilität: Passt sich an verschiedene Anwendungsumgebungen an und die Geschwindigkeit der Ver- und Entschlüsselung ist hoch
(3) Skalierbarkeit: Die Blocklänge und Schlüssellänge können erweitert werden, um sich an die steigenden Anforderungen der Gesellschaft an die Vertraulichkeit anzupassen
3. AES-Designanforderungen
(1) Blockverschlüsselung: Sowohl Chiffretext als auch Klartext sind 128 Bit lang und die Schlüssellänge kann geändert werden (128/192/256, wählen Sie jetzt 128 Bit).
(2) Binärorientierter kryptografischer Algorithmus: Kann jede Form von Computerdaten verschlüsseln
(3) Sie sind eine Involutionsoperation: Die Algorithmen zur Verschlüsselung und Entschlüsselung sind unterschiedlich
(5) Umfassender Einsatz mehrerer kryptografischer Techniken: Permutation, Substitution, Algebra
(6) Gesamtstruktur: SP-Struktur, grundlegende Rundenfunktionsiteration, variable Diskussion der Iteration
4. Mathematische Grundlagen von AES
(1) Der Grundbereich von AES ist das endliche Feld GF(2^8)
(2) Alle 256 Werte eines Bytes bilden ein GF(2^8)
(3) Ein 8-Grad-Polynom auf GF(2) kann ein GF(2^8) erzeugen
(4) Alle Elemente von GF(2^8) können auch kommutative Gruppen und lineare Räume hinzufügen
(5) Die Nicht-Null-Elemente von GF(2^8) bilden eine multiplikative zyklische Gruppe
(6) Die Elemente in GF(2^8) haben mehrere Darstellungen
[Externer Link: Bildübertragung fehlgeschlagen, die Quellseite verfügt möglicherweise über einen Anti-Leeching-Mechanismus. Es wird empfohlen, das Bild zu speichern und direkt hochzuladen (img-26mMzktT-1661609172345) (D:\MD note\pictures\GF multiple perspectives.png )]
5. GF (2^8)-Darstellung von AES
Zusatz:
Multiplikation
xtime
6. Untervertretung und Betrieb der AES
-
Die Einheit der AES-Datenverarbeitung ist Byte und Wort
-
Ein Wort = 4 Bytes = 32 Bits
-
Ein Wort kann als Polynom ausgedrückt werden, dessen Koeffizienten aus GF(2^8) mit einem Grad kleiner als 4 entnommen werden
-
Wortaddition: Zwei Polynomkoeffizienten werden modulo 2 addiert
-
Wortmultiplikation: Seien a und c zwei Wörter, a(x) und c(x) sind ihre Wortpolynome, AES definiert die Punktzahl b von a und c als b(x)=a(x)c(x)modx^ 4+1
7. Grundlegende Transformation von AES
1. Verschlüsselungsprozess
(1) Vorläufige Transformation
(2) Neun-Runden-Zyklus
1) Byte-Ersetzung
2) Zeilenverschiebung
3) Spaltenmischung
4) Rundenschlüsseladdition
5) Erweiterung des Rundschlüssels
2. S-Box-Transformation
(1) Die S-Box-Transformation ist die einzige nichtlineare Transformation von AES, die den Schlüssel zur AES-Sicherheit darstellt
(2) AES verwendet 16 identische S-Boxen und DES verwendet 8 verschiedene S-Boxen
(3) Die S-Box von AES verfügt über einen 8-Bit-Eingang und einen 8-Bit-Ausgang, was eine nichtlineare Permutation darstellt
Die S-Box von DES verfügt über einen 6-Bit-Eingang und einen 4-Bit-Ausgang, was einer nichtlinearen Komprimierung entspricht
3. Zeilenverschiebungstransformation
(1) Die Zeilenverschiebungstransformation führt eine zirkuläre Verschiebung des Zustands durch
(2) Die nullte Zeile verschiebt sich nicht, die erste Zeile verschiebt C1-Bytes, die zweite Zeile verschiebt C2-Bytes und die dritte Zeile verschiebt C3-Bytes
(3) Die Zeilentransformation gehört zur Permutation und linearen Transformation und besteht im Wesentlichen darin, die Daten zu verschlüsseln und neu anzuordnen und eine Rolle bei der Diffusion zu spielen.
6.3 Merkmale der symmetrischen Verschlüsselung
1. Schnelle Verschlüsselungsgeschwindigkeit
2. Der Chiffretext ist irreversibel und der geheime Schlüssel kann nicht preisgegeben werden
3. Wenn das entsprechende Zeichen nicht in der Codetabelle gefunden werden kann, werden verstümmelte Zeichen angezeigt
4. Muss im Allgemeinen in Kombination mit Base64 verwendet werden
Neun, Blockchiffrierung
Arbeitsmodus der Blockverschlüsselung
1. Elektronischer Codebuchmodus (ECB)
Verwenden Sie direkt die Blockverschlüsselung, um jeden Block des vertraulichen Texts zu verschlüsseln
Die Codebuchmethode ist der grundlegende Arbeitsmodus der Blockverschlüsselung
Mangel:
Es kann zu Engpässen kommen, die eine besondere Behandlung erfordern
Der Schlüssel K ist fest, wenn Mi=Mj, dann Ci=Cj, wodurch der Klartext-Datenmodus offengelegt wird
2. Chiffretext-Feedback-Chaining-Modus (CBC)
2.1 Chiffretext-Feedback-Verbindungsmodus
Im CBC-Modus wird jeder zu verschlüsselnde Chiffrierblock vor der Verschlüsselung mit dem Chiffretext des vorherigen Chiffrierblocks XOR-verknüpft und anschließend mit einem Verschlüsselungsgerät verschlüsselt. Der erste Klartextblock wird mit einem Datenblock, einem sogenannten Initialisierungsvektor, XOR-verknüpft
Vorteile: Es kann die Strukturinformationen des Klartexts verdecken und sicherstellen, dass derselbe Chiffretext unterschiedliche Klartexte erhalten kann, sodass es nicht einfach ist, aktiv anzugreifen, und die Sicherheit besser ist als bei ECB, geeignet für
Die Übertragung von Paketen großer Länge ist der Standard von SSL und lPSec.
Nachteile:
(1) Nicht förderlich für paralleles Rechnen;
(2) Übertragungsfehler – wenn der vorherige falsch ist, sind alle nachfolgenden falsch;
(3) Der erste Klartextblock muss mit einem Initialisierungsvektor IV verglichen werden, und die Auswahl des Initialisierungsvektors IV ist komplizierter
Verschlüsselung: Unbegrenzte Fehlerausbreitung: Mi- oder Ci-1-Fehler wirken sich auf Ci und alle nachfolgenden Chiffretextfehler aus
Entschlüsselung: Begrenzte Fehlerausbreitung
3. Ausgangs-Feedback-Modus (OFB)
Auf diese Weise lässt sich die Verwendung von Blockchiffren zur Implementierung von Sequenzchiffren implementieren
Wandelt eine Blockchiffre in einen Schlüsselsequenzgenerator um. Auf diese Weise können Blockchiffren nach Art von Stromchiffren zur Ver- und Entschlüsselung eingesetzt werden
Es wird ein Schieberegister verwendet und R0 ist der Anfangsinhalt, der als Seed bezeichnet wird.
Wenn die Blockverschlüsselung sicher ist, ist auch die resultierende Schlüsselfolge sicher
Bei der Ver- und Entschlüsselung gibt es keine Fehlerausbreitung.
OFB verwendet zunächst eine Blockverschlüsselung, um einen Schlüsselstrom (Keystream) zu generieren, und verknüpft dann den Schlüsselstrom mit dem Klartextstrom, um einen Chiffretextstrom zu erhalten. Bei der Entschlüsselung wird zunächst eine Blockverschlüsselung verwendet.
Generieren Sie den Schlüsselstrom und XORen Sie dann den Schlüsselstrom und den Chiffretextstrom, um den Klartext zu erhalten. Aufgrund der Symmetrie der XOR-Operation sind die Verschlüsselungs- und Entschlüsselungsprozesse genau gleich.
Glauben Sie, dass es der CFB-Verschlüsselung sehr ähnlich ist?
OFB eignet sich wie CFB sehr gut zum Verschlüsseln von Streaming-Daten. Da die OFB-Verschlüsselung und -Entschlüsselung von den vorherigen Daten abhängt, können Verschlüsselung und Entschlüsselung nicht parallel durchgeführt werden.
Vorteile: Versteckt den Klartextmodus; kombiniert Blockverschlüsselung und Stream-Verschlüsselung (Blockverschlüsselung wird in Stream-Modus umgewandelt); kann Daten, die kleiner als der Block sind, zeitlich verschlüsseln und übertragen.
Nachteile: Nicht förderlich für paralleles Rechnen; Notwendigkeit, einen Schlüsselstrom zu generieren; aktiver Angriff auf Klartext ist möglich.
4. Chiffre-Feedback-Modus (CFB)
Wenn es sich von OFB unterscheidet, geben Sie den Chiffretext an das Schieberegister zurück
Verschlüsselung: Verschlüsselung bedeutet, dass, wenn der Klartext um ein Bit falsch ist, dies Auswirkungen auf den entsprechenden Chiffretextfehler hat. Nachdem dieser Fehler an das Schieberegister zurückgemeldet wurde, wirkt er sich darauf aus, dass die nachfolgende Schlüsselsequenz falsch ist, was zu allen nachfolgenden Chiffretextfehlern führt .
Entschlüsselung: Wenn der Chiffretext beim Entschlüsseln um ein Bit falsch ist, wirkt sich dies nicht nur auf den entsprechenden Klartextfehler aus, sondern auch die Fehlerrückmeldung des Chiffretexts wirkt sich auf den nachfolgenden Flitterwochensequenzfehler nach dem Senden an das Schieberegister aus, was zu allen führt nachfolgende Klartextfehler
Unbegrenzte Fehlerausbreitung
5.X CBC
Es handelt sich um eine Erweiterung von CBC, die als Arbeitsmodus von AES empfohlen wird
Die Hauptlösung von XCBC besteht darin, dass CBC erfordert, dass die Länge der Klartextdaten ein ganzzahliges Vielfaches der Länge des Chiffrierblocks ist und Daten beliebiger Länge verarbeiten kann.
Der Unterschied zwischen X CBC und CBC
CBC erfordert, dass der letzte Datenblock ein Standardblock und kein kurzer Block ist
Der letzte Datenblock wird anders als bei CBC verschlüsselt
Da es eine Auffüllung gibt, müssen Informationen zur Auffülllänge übertragen werden
X CBC ermöglicht, dass der letzte Datenblock entweder ein Standardblock oder ein kurzer Block ist
Hauptvorteile des X-CBC-Modus
Kann Daten beliebiger Länge verarbeiten.
Es eignet sich zur Berechnung und Generierung eines Nachrichtenauthentifizierungscodes MAC zur Erkennung der Datenintegrität.
Die Hauptnachteile des X-CBC-Modus:
Mit Auffüllung, nicht für Datei- und Datenbankverschlüsselung geeignet.
Die Verwendung von 3 Tasten erfordert eine Übertragungslänge, die kompliziert zu steuern ist.
6. CTR-Modus
Der Rechnermodus ist nicht üblich. Im CTR-Modus gibt es einen Auto-Inkrement-Operator. Die mit dem Schlüssel verschlüsselte Ausgabe dieses Operators und das Klartext-XOR-Ergebnis werden erhalten
Für den Geheimtext entspricht es einem One-Time-Pad. Diese Verschlüsselungsmethode ist einfach, schnell, sicher und zuverlässig und kann parallel verschlüsselt werden, kann jedoch nicht über einen längeren Zeitraum im Computer aufrechterhalten werden.
In diesem Fall kann der Schlüssel nur einmal verwendet werden.
Vorteile: Keine Offenlegung von Klartext; Es muss nur eine Verschlüsselungsfunktion implementiert werden; Kein Auffüllen; Paralleles Rechnen. Nachteile: Der Momentanwert IV ist erforderlich und es ist schwierig, die Einzigartigkeit von lIVv zu garantieren
CTR-Verschlüsselungsprozess
CTR-Entschlüsselungsprozess
Vorteile des CTR-Arbeitsmodus:
Die Vorteile des CTR-Modus sind sicher, effizient, parallelisierbar und für Daten beliebiger Länge geeignet;
Die Berechnung von 0i kann mit hoher Geschwindigkeit vorverarbeitet werden;
Da die Verschlüsselung durch Hinzufügen von Touch 2 implementiert wird, handelt es sich um eine Umkehroperation, und die Entschlüsselungsoperation ist dieselbe wie die Verschlüsselungsoperation.
Geeignet zur Entschlüsselung zufällig gespeicherter Daten.
Nachteile des CTR-Modus:
Es gibt keine Fehlerausbreitung, sodass die Datenintegrität nicht einfach gewährleistet werden kann.
Kurzblockverschlüsselung
Eine Blockverschlüsselung kann jeweils nur einen Klartextblock fester Länge verschlüsseln
Ein Datenblock, dessen Länge kleiner als die Paketlänge ist, ist ein kurzer Block
Zur Lösung des Problems der Kurzblockverschlüsselung müssen vernünftige Techniken eingesetzt werden
Short-Block-Verarbeitungstechnologie:
1. Abfülltechnik
Füllen Sie kurze Blöcke mit nutzlosen Daten, um sie zu Standardblöcken zu machen. Das Auffüllen ist zufällig und kann zu einem Speicherüberlauf führen, daher ist es nicht für die Datei- und Datenbankverschlüsselung geeignet
2. Technologie zur Veruntreuung von Chiffretext
3. Serielle Verschlüsselung
3.1 Klassifizierung von Sequenzchiffren
Der Algorithmus zur Schlüsselsequenzgenerierung hat nichts mit dem Klartext zu tun, und die generierte Schlüsselsequenz hat nichts mit dem Klartext zu tun.
(1) Synchronsequenz-Passwort
Es findet keine Fehlerausbreitung statt. Wenn einige Chiffretextzeichen in der Kommunikation Fehler erzeugen, ist nur die Entschlüsselung der entsprechenden Zeichen betroffen, andere Zeichen sind nicht betroffen.
(2) Selbstsynchronisierende serielle Verschlüsselung
Unter der Annahme, dass der Schlüsselsequenzgenerator über n Speicherbits verfügt, wirkt sich ein Chiffretextfehler während der Verschlüsselung auf nachfolgende n aufeinanderfolgende Chiffretextfehler aus. Danach korrekt zurückgesetzt.
Ein einzelner Chiffretextfehler während der Entschlüsselung wirkt sich auch auf nachfolgende n aufeinanderfolgende Klartextfehler aus.
Die Verschlüsselung führt zu einer Fehlerausbreitung, aber die Fehlerausbreitung ist begrenzt und die Richtigkeit wird wiederhergestellt, nachdem der Fehler behoben wurde
Lineares Schieberegister
3.2 Lineares Schieberegister
Die m-Sequenz weist eine gute Zufälligkeit auf
1. Lauflänge: Man sagt, dass die i aufeinanderfolgenden 1-Bit-Längen in der Sequenz gleich der 1-Lauflänge von i sind
Die Reiseroute finden Sie unter Erweitertes Wissen
2. Autokorrelationsfunktion
Sei {ki} eine Folge mit der Periode p und k0, k1,..., kp-1 eines der periodischen Untersegmente, dann k0+τ, k1+τ,..., kp-1+τ sind ebenfalls ein periodisches Untersegment. Beachten Sie, dass die gleiche Anzahl von Ziffern in diesen beiden Unterabschnitten A ist und die unterschiedliche Anzahl von Ziffern D ist. Dann ist die Autokorrelationsfunktion wie folgt definiert:
R(j)=(AD)/ P
Die Autokorrelationsfunktion spiegelt den Grad wider, in dem das durchschnittliche Bit über einen Zeitraum hinweg gleich ist
[Bildübertragung mit externem Link fehlgeschlagen, die Quellseite verfügt möglicherweise über einen Anti-Leeching-Mechanismus. Es wird empfohlen, das Bild zu speichern und direkt hochzuladen (img-2x2SBN9O-1661609172347) (D:\MD-Notizen\Bilder\Autokorrelationsfunktion)]
10. Übersicht über die kommerzielle Blockverschlüsselung SM4
1. Die kommerzielle Verschlüsselung meines Landes
(1) Halten Sie sich an die offenen Designprinzipien von Passwörtern
(2) Öffnen Sie das Originaldesign
(3) Kommerzielle Chiffriermaschinen sollten ihre Algorithmen offenlegen
2. Blockverschlüsselung
(1) Datengruppierung, Klartext, Chiffretextlänge = 128 Bit, Schlüssellänge = 128 Bit
(2) Datenverarbeitungseinheit: Byte (8 Bit), Wort (32 Bit)
3. Eigenschaften des kryptografischen Algorithmus
Involutionsoperation: Der Entschlüsselungsalgorithmus ist derselbe wie der Verschlüsselungsalgorithmus
Der Unterschlüsselgenerierungsalgorithmus ähnelt der Struktur des Verschlüsselungsalgorithmus
4. Passwortstruktur
Es handelt sich weder um eine SP-Struktur noch um eine Feisel-Struktur, sondern um eine neue Struktur: die Schiebefensterstruktur
Struktur des SMS4-Passwortalgorithmus
5. SMS4-Passwortalgorithmus
1. Grundlegende Operationen
Modulo 2 plus: 32-Bit-XOR-Operation
Zyklische Verschiebung: <<<i, 32-Bit-Wörter werden um i Bits nach links gedreht
2. Grundlegende Passwortkomponenten
(1) Nichtlineare Byte-Transformationskomponente S-Box:
8-Bit-Eingabe, 8-Bit-Ausgabe, im Wesentlichen nichtlineare 8-Bit-Permutation
Die Eingabe sei a, die Ausgabe sei b und die S-Box-Operation wird ausgedrückt als: b=S_Box(a)
Datenblatt der S-Box:
Die Ersetzungsregel der S-Box: Das erste Halbbyte der Eingabe ist die Zeilennummer, das letzte Halbbyte ist die Spaltennummer und die Daten dividiert durch den Schnittpunkt von Zeile und Spalte sind die Ausgabe. (Zum Beispiel: Geben Sie „ef“ ein, e ist die Zeilennummer, f ist die Spaltennummer, der Ausgabewert von S-Box ist der Wert des Schnittpunkts von Zeile e, Spalte f in der Tabelle, Sbox('ef') ='84')
(2) Nichtlineare Worttransformation τ: Nichtlineare Transformation von 32-Bit-Wörtern
Paralleler Austausch von 4 S-Boxen
(3) Wortlineare Komponenten-L-Transformation: 32-Bit-Eingabe, 32-Bit-Ausgabe. Die Eingabe sei B und die Ausgabe C, ausgedrückt als: C=L(B)
(4) Wortsynthesetransformation T: Sie wird auch durch Addition der nichtlinearen Transformation τ und der linearen Transformation L gebildet
3. Runden Sie die Funktion F
Eingabedaten: (X0, X1, X2, X3), 128 Bit, vier 32-Bit-Wörter
Eingaberundenschlüssel: rk, 32-Bit-Wort
Ausgabedaten: 32-Bit-Wort
Rundenfunktion F:
Elftens die Grundidee der Public-Key-Kryptographie
1. Grundidee der Public-Key-Kryptographie
1. Teilen Sie den Schlüssel K in zwei Teile: Ke und Kd. Ke ist der Verschlüsselung gewidmet, Kd ist der Entschlüsselung gewidmet, Ke ist nicht gleich Kd, es ist bequemer, eine digitale Signatur zu realisieren
2. Ke kann Kd nicht berechnen, daher kann Ke veröffentlicht werden, um die Ke-Schlüsselverteilung zu vereinfachen
2. Grundbedingungen für den öffentlichen Schlüssel
Vertraulichkeitsbedingung: E und D sind reziprok D(E(M))=M
Sicherheitsbedingung: Ke ist nicht gleich Kd, Ke kann Kd nicht berechnen
Praktikabilität: Sowohl E als auch D sind effizient
Treuebedingung: D(E(M))=M
Die ersten drei Bedingungen werden für die Vertraulichkeit verwendet, die letzten drei für die Treue und alle vier Bedingungen werden für die Vertraulichkeit und Treue erfüllt
Absender: A überprüft zuerst PKDB und findet den öffentlichen Verschlüsselungsschlüssel Keb von B. Verwenden Sie dann Keb, um M zu verschlüsseln, um den Chiffretext C = E (M, Keb) zu erhalten, und senden Sie schließlich C an B.
Empfänger: B akzeptiert C und B entschlüsselt mit seinem eigenen Kdb, um den Klartext M=D(C,Kdb)=D(E(M,Keb),Kdb) zu erhalten.
3. RSA-Kryptographie mit öffentlichem Schlüssel
Verschlüsselungsalgorithmus
1. Wählen Sie zufällig zwei verschiedene große Primzahlen p und q aus und berechnen Sie n=pq; φ(n)=(p-1)(q-1); 2. Wählen Sie ein e(1<e<p(
n )) und ist teilerfremd zu p(n), d. h. ggT(e,φ(n))=1;
3. Berechnen Sie das Umkehrelement d von e und φ(n), (de) mod φ(n )= 1 ;
4. Öffentlicher Schlüssel: KU=(e,n);
5. Privater Schlüssel KR=(d,n)
Die Modulo-Inversionsoperation
ist gcd(e, φ(n))=1, dann kann eine ganze Zahl d gefunden werden, so dass ed-1 durch φ(n) teilbar ist, oder der durch ed erhaltene Rest ist durch φ(n) teilbar 1 ed-1
= kφ(n)
(ed) modφ(n)=1
12. Hash
1. Eigenschaften:
(1) Irreversibilität
(2) Starke Antikollision (verschiedene Daten-Hash-Werte sind unterschiedlich und dieselben Daten-Hash-Werte sind gleich)
(3) Es gibt geringfügige Änderungen in den Originaldaten, aber die Änderungen im Hash-Wert sind sehr groß
(4) Betreiben Sie die Originaldaten durch die Hash-Funktion, und die Länge des erhaltenen Hash-Werts wird festgelegt
(5) Der ursprüngliche Hashwert ist eine Binärzeichenfolge fester Länge
2. Hash-Algorithmus
2.1MD5
Hashwert: 16b
2.2SHA2
2.2.1sha1
Hashwert: 20 Byte
2.2.2sha224
Hashwert: 28 Byte
2.2.3sha256
Hashwert: 32 Byte
2.2.4sha384
Hashwert: 48 Byte
2.2.5sha512
Hashwert: 64 Byte
13. Digitale Signatur
Da es sich nicht um das Einzige handelt, was nicht digital signiert werden kann, nutzt die digitale Signatur eine asymmetrische Verschlüsselung
1. Drei Bedingungen, die digitale Signaturen erfüllen
1. Der Unterzeichner kann seine Unterschrift nachträglich nicht verweigern
2. Niemand sonst kann die Unterschrift fälschen
3. Besteht zwischen den beiden Parteien Streit über die Echtheit der Unterschrift, können sie deren Echtheit durch Beglaubigung vor einem notariell beglaubigten Schiedsrichter bestätigen
2. Arten digitaler Signaturen
Universelle Signatur, Quorum-Signatur, Blindsignatur, Gruppensignatur, Schwellenwertsignatur, Proxy-Signatur
3. Die Verfassung einer digitalen Signatur umfasst zwei Aspekte der Verarbeitung
1. Unterschrift anwenden
Der Algorithmus zum Anwenden der Signatur ist SIG, der Schlüssel zum Generieren der Signatur ist K, die signierten Daten sind M und die generierten Signaturinformationen sind S
S=SIG(M,k)
2. Überprüfen Sie die Signatur
Der Algorithmus zur Überprüfung der Signatur ist VER, der zur Überprüfung der Signatur verwendet werden kann, um die Authentizität von S zu identifizieren
Vierzehn, SM1, SM2, SM3, SM4, SM7, SM8, SM9 SMSMSM
1.SM1
SM1 ist eine Blockverschlüsselung, die Blocklänge und der Schlüssel betragen jeweils 128 Bit
2. SM2
Der SM2-Algorithmus ist ein ECC-Kryptographiemechanismus mit elliptischen Kurven
Eigenschaften elliptischer Kurven
(1) Die elliptische Kurve wird mit Punktadditionsoperationen auf dem endlichen Feld kombiniert, um eine endliche kommutative Gruppe zu bilden, und die Reihenfolge zu diesem Zeitpunkt ähnelt der Größe des Basisfelds
(2) Führen Sie mehrere Punktoperationen auf der elliptischen Kurve durch, um eine Einwegfunktion zu bilden
3. SM3
SM3-Hash-Algorithmus
4.SM4
5. SM7
SM7 ist ein Blockverschlüsselungsalgorithmus mit einer Blocklänge und einer Schlüssellänge von 128
6. SM8
7. SM9
Der identitätsbasierte Kryptographiealgorithmus IBC (Identity-Based Cryptography) umfasst die folgenden Module
Digitale Signatur
Schlüsselaustausch
Schlüsselverpackung
Verschlüsselung mit öffentlichem Schlüssel
Identifikation: Informationen, die eine Entität eindeutig identifizieren. Die Identifizierung sollte aus Informationen bestehen, die vom Unternehmen nicht zurückgewiesen werden können. Zum Beispiel Ausweisnummer, Telefonnummer usw.
Die Identifizierung von SM9 ist der öffentliche Schlüssel, es ist kein öffentliches Schlüsselzertifikat erforderlich, und der Link zur Gültigkeit des öffentlichen Schlüsselzertifikats wird zu einer einfachen Bestätigungsidentifikation
6.Base64
1. Base64 ist kein Verschlüsselungsalgorithmus, sondern ein Lesbarkeitsalgorithmus. Der Zweck besteht nicht darin, unsere Daten zu schützen, sondern lesbare Daten zu schaffen
2. Die Zusammensetzung von base64: Großbuchstabe AZ, Kleinbuchstabe az, Zahlen: 0-9, zwei Sonderzeichen: + und /
3. Base64 ist eine Gruppe von drei Bytes, ein Byte besteht aus 8 Bits, insgesamt 24 Bits. Konvertieren Sie drei Bytes in vier Gruppen, jede Gruppe besteht aus 6 Bits und jeder Gruppe fehlen zwei Bits, da ein Byte aus 8 Bits besteht. mit 0 in der hohen Position
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import javax.sound.midi.Soundbank;
import java.net.SocketTimeoutException;
public class Base64Test {
public static void main(String[] args) {
System.out.println(Base64.encode("李".getBytes()));
/**
* 1 表示 一个字节,不够3个字节,进行编码的时候用 = 不起
* 12 表示两个字节,就补齐一个=
*/
System.out.println(Base64.encode("1".getBytes()));
System.out.println(Base64.encode("12".getBytes()));
System.out.println(Base64.encode("123".getBytes()));
System.out.println(Base64.encode("a".getBytes()));
}
}
7.Base58 ist eine Kodierungsmethode in Bitcoin
In base58 gibt es keine Zahl 0 und keinen Buchstaben o, keinen Großbuchstaben I und Kleinbuchstaben i, kein + und /
9. Verschlüsselungsmodus
1. ECB: Teilen und verschlüsseln Sie einen Text, verwenden Sie denselben Schlüssel zum separaten Verschlüsseln und kombinieren Sie sie dann miteinander.
2. CBC: Beim Verschlüsseln hängt es vom vorherigen Vektor ab, XOR verwendet den vorherigen Vektor, und der folgende Klartext hängt beim Verschlüsseln immer vom vorherigen Verschlüsselungsschlüssel ab.
10. Nachrichtenauszug (SHA-1, SHA-256)
Nachrichtenzusammenfassungen werden auch als digitale Zusammenfassungen bezeichnet. Es wird durch eine Einzelelement-Hash-Verschlüsselungsfunktion generiert, die auf die Nachricht einwirkt. Digitale Werte dürfen nicht manipuliert werden, um die Sicherheit von Dateien oder Werten zu gewährleisten.
Wissenspunkte erweitern:
1. Rundgang
In einem Zyklus kommen 0 und 1 nahezu gleich oft vor.
2Das einmalige Anordnen eines Zyklus von a im Uhrzeigersinn auf dem Umfang, mit allen Einsen oder Nullen in der Mitte, wird als Lauf von 1 oder Lauf von 0 bezeichnet. Die Länge des Laufs ist die Anzahl der Einsen oder Nullen in der Mitte.
2. Starke Pseudoprimzahlen
Die Verwendung der Miller-Rabin-Primalitätstestmethode ist eine probabilistische Methode, um festzustellen, ob eine Zahl eine starke Pseudoprimzahl ist
Definition starker Pseudoprimzahlen
3. Der Unterschied zwischen symmetrischer Verschlüsselung und asymmetrischer Verschlüsselung
1. Symmetrische Verschlüsselung
Symmetrisch: Verschlüsselung und Entschlüsselung verwenden denselben Schlüssel
Vorteile: hohe Geschwindigkeit und hohe Effizienz
Nachteile: Es ist schwierig, geheime Schlüssel auszutauschen, es ist schwierig, Schlüssel auszutauschen, es müssen viele Schlüssel verwaltet werden und es gibt keine Möglichkeit, die Datenquelle zu bestätigen
2. Asymmetrische Verschlüsselung
Asymmetrisch: Verschlüsselung mit öffentlichem Schlüssel, Entschlüsselung mit privatem Schlüssel
Vorteile: Die Quelle der Daten kann bestätigt werden (Bestätigung der Quelle: Verschlüsselung mit dem privaten Schlüssel und Entschlüsselung mit dem entsprechenden öffentlichen Schlüssel möglich)
Nachteile: relativ geringer Wirkungsgrad
3. Zum Beispiel: der Vorgang des Besuchs einer Website
1. Der Kunde sendet eine Anfrage, ich möchte sicher mit Ihnen kommunizieren
2. Das Zertifikat des Webservers wird an den Client gesendet (Zusammensetzung des Zertifikats: Sca(PuWebSrv+CA+Gültigkeitszeitraum)) (der Webserver übergibt seinen eigenen öffentlichen Schlüssel an den Benutzer)
3. Der Client vertraut normalerweise der Zertifizierungsstelle, dh der Client erhält den öffentlichen Schlüssel des Webservers
4. Nachdem Sie den öffentlichen Schlüssel erhalten haben, generieren Sie einen Sitzungsschlüssel auf dem Client-Server, verschlüsseln Sie den Sitzungsschlüssel gerade mit dem öffentlichen Schlüssel des Servers und senden Sie ihn dann an den Webserver
5. Der Webserver entsperrt mit seinem eigenen privaten Schlüssel, um den Sitzungsschlüssel zu erhalten
CA
/etc/pki/tls/openssl.cnf
Generieren Sie einen privaten Schlüssel: umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
Berühren Sie /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial
openssl ca -in /tmp/test.csr -out /etc/pki/CA/certs/test.crt -days 200
Klient
umask 077;openssl genrsa -out /app/testkey.pem
openssl req -new -key /app/testkey.pem -out /app/test.csr
CN