logo

Vigenere-Chiffre

Einführung

Die Vigenere-Chiffre ist ein Algorithmus, der zum Verschlüsseln und Entschlüsseln des Textes verwendet wird. Die Vigenere-Chiffre ist ein Algorithmus zur Verschlüsselung eines alphabetischen Textes, der eine Reihe miteinander verflochtener Caesar-Chiffren verwendet. Es basiert auf den Buchstaben eines Schlüsselworts. Es ist ein Beispiel für eine polyalphabetische Substitutions-Chiffre. Dieser Algorithmus ist leicht zu verstehen und zu implementieren. Dieser Algorithmus wurde erstmals 1553 von beschrieben Giovan Battista Bellaso . Es verwendet eine Vigenere-Tabelle oder ein Vigenere-Quadrat zur Ver- und Entschlüsselung des Textes. Die Vigenere-Tabelle wird auch Tabula Recta genannt.

Zwei Methoden führen die Vigenere-Verschlüsselung durch.

Methode 1

Wenn die Vigenere-Tabelle angegeben ist, erfolgt die Verschlüsselung und Entschlüsselung bei dieser Methode mithilfe der Vigenere-Tabelle (26 * 26-Matrix).

Vigenere-Chiffre

Beispiel: Der Klartext ist „JAVATPOINT“ und der Schlüssel ist „BEST“.

Um einen neuen Schlüssel zu generieren, wird der angegebene Schlüssel zirkulär wiederholt, solange die Länge des Klartextes nicht mit der Länge des neuen Schlüssels übereinstimmt.

Vigenere-Chiffre

Verschlüsselung

c# enthält eine Zeichenfolge

Der erste Buchstabe des Klartextes wird mit dem ersten Buchstaben des Schlüssels kombiniert. Die Klartextspalte „J“ und die Schlüsselzeile „B“ schneiden das Alphabet von „K“ in der Vigenere-Tabelle, sodass der erste Buchstabe des Chiffretexts „K“ ist.

Ebenso wird der zweite Buchstabe des Klartextes mit dem zweiten Buchstaben des Schlüssels kombiniert. Die Klartextspalte „A“ und die Schlüsselzeile „E“ überschneiden sich mit dem Alphabet von „E“ in der Vigenere-Tabelle, sodass der zweite Buchstabe des Chiffretexts „E“ ist.

Dieser Prozess wird kontinuierlich fortgesetzt, bis der Klartext fertig ist.

Geheimtext = KENTUTGBOX

Entschlüsselung

Die Entschlüsselung erfolgt über die Schlüsselreihe in der Vigenere-Tabelle. Wählen Sie zunächst die Zeile des Schlüsselbuchstabens aus, ermitteln Sie die Position des Chiffretextbuchstabens in dieser Zeile und wählen Sie dann die Spaltenbezeichnung des entsprechenden Chiffretexts als Klartext aus.

Vigenere-Chiffre

Beispielsweise steht in der Zeile des Schlüssels „B“ und der Chiffretext ist „K“, und dieser Chiffretextbuchstabe erscheint in der Spalte „J“, das heißt, der erste Klartextbuchstabe ist „J“.

Als nächstes steht in der Zeile des Schlüssels „E“ und der Chiffretext ist „E“, und dieser Chiffretextbuchstabe erscheint in der Spalte „A“, das heißt, der zweite Klartextbuchstabe ist „A“.

Dieser Vorgang wird kontinuierlich fortgesetzt, bis der Chiffretext fertig ist.

Klartext = JAVATPOINT

Beispiel für einen Alpha-Beta-Beschnitt

Methode 2

Wenn die Vigenere-Tabelle nicht angegeben ist, erfolgt die Verschlüsselung und Entschlüsselung bei dieser Methode mithilfe der algebraischen Vigenar-Formel (wandeln Sie die Buchstaben (A-Z) in die Zahlen (0-25) um).

Die Formel der Verschlüsselung lautet:

UNDich= (Sich+ Kich) gegen 26

Die Entschlüsselungsformel lautet:

Dich= (Eich- Kich) gegen 26

Wenn überhaupt (Dich) wird negativ (-ve), in diesem Fall addieren wir 26 zum negativen Wert.

Wo,

E bezeichnet die Verschlüsselung.

Suchalgorithmen

D bezeichnet die Entschlüsselung.

P bezeichnet den Klartext.

K bezeichnet den Schlüssel.

Hinweis: „i“ bezeichnet den Versatz der i-ten Zahl der Buchstaben, wie in der Tabelle unten gezeigt.

Vigenere-Chiffre

Beispiel: Der Klartext ist „JAVATPOINT“ und der Schlüssel ist „BEST“.

Verschlüsselung: UNDich= (Sich+ Kich) gegen 26

Klartext J A IN A T P Ö ICH N T
Klartextwert (P) 09 00 einundzwanzig 00 19 fünfzehn 14 08 13 19
Schlüssel B UND S T B UND S T B UND
Schlüsselwert (K) 01 04 18 19 01 04 18 19 01 04
Geheimtextwert (E) 10 04 13 19 zwanzig 19 06 01 14 23
Geheimtext K UND N T IN T G B Ö X

Entschlüsselung: Dich= (Eich- Kich) gegen 26

Wenn der (Di)-Wert in irgendeinem Fall negativ (-ve) wird, addieren wir in diesem Fall 26 zum negativen Wert. Wie der dritte Buchstabe des Geheimtextes;

binär zu bcd

N = 13 und S = 18

Dich= (Eich- Kich) gegen 26

Dich= (13 - 18) gegen 26

Dich= -5 gegen 26

Dich= (-5 + 26) gegen 26

Dich= 21

Geheimtext K UND N T IN T G B Ö X
Geheimtextwert (E) 10 04 13 19 zwanzig 19 06 01 14 23
Schlüssel B UND S T B UND S T B UND
Schlüsselwert (K) 01 04 18 19 01 04 18 19 01 04
Klartextwert (P) 09 00 einundzwanzig 00 19 fünfzehn 14 08 13 19
Klartext J A IN A T P Ö ICH N T

Programm:

C Sprache

 #include #include using namespace std; int main() { Vigenere cipher(&apos;VIGENERECIPHER&apos;); string original = &apos;I AM INDIAN&apos;; string encrypted = cipher.encrypt(original); string decrypted = cipher.decrypt(encrypted); cout &lt;&lt; original &lt;&lt; endl; cout &lt;&lt; &apos;Encrypted: &apos; &lt;&lt; encrypted &lt;&lt; endl; cout &lt;&lt; &apos;Decrypted: &apos; &lt;&lt; decrypted &lt;&lt; endl; } class Vigenere { public: string key; Vigenere(string key) { for (int i = 0; i = &apos;A&apos; &amp;&amp; key[i] key += key[i]; else if (key[i]&gt;= &apos;a&apos; &amp;&amp; key[i] key += key[i] + &apos;A&apos; - &apos;a&apos;; } } string encrypt(string text) { string out; for (int i = 0, j = 0; i = &apos;a&apos; &amp;&amp; c <= 2 26 'z') c +="A" - 'a'; else if (c continue; out key[j] * 'a') % j="(j" 1) key.length(); } return out; string decrypt(string text) { for (int i="0," && <="z" ) 26) }; pre> <p> <strong>Output:</strong> </p> <pre> I AM INDIAN Encrypted: SDERFGTUJ Decrypted: IAMINDIAN </pre> <hr></=>