<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://sibiwiki.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Vigenere-Verschl%C3%BCsselung</id>
	<title>Vigenere-Verschlüsselung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://sibiwiki.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Vigenere-Verschl%C3%BCsselung"/>
	<link rel="alternate" type="text/html" href="https://sibiwiki.de/wiki/index.php?title=Vigenere-Verschl%C3%BCsselung&amp;action=history"/>
	<updated>2026-10-31T17:40:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in sibiwiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://sibiwiki.de/wiki/index.php?title=Vigenere-Verschl%C3%BCsselung&amp;diff=311&amp;oldid=prev</id>
		<title>Akaibel: 1 Version importiert</title>
		<link rel="alternate" type="text/html" href="https://sibiwiki.de/wiki/index.php?title=Vigenere-Verschl%C3%BCsselung&amp;diff=311&amp;oldid=prev"/>
		<updated>2026-10-27T17:44:51Z</updated>

		<summary type="html">&lt;p&gt;1 Version importiert&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 27. Oktober 2026, 17:44 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Akaibel</name></author>
	</entry>
	<entry>
		<id>https://sibiwiki.de/wiki/index.php?title=Vigenere-Verschl%C3%BCsselung&amp;diff=310&amp;oldid=prev</id>
		<title>sibiwikialt&gt;Akaibel am 29. Februar 2024 um 15:41 Uhr</title>
		<link rel="alternate" type="text/html" href="https://sibiwiki.de/wiki/index.php?title=Vigenere-Verschl%C3%BCsselung&amp;diff=310&amp;oldid=prev"/>
		<updated>2024-02-29T15:41:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Kategorie:Kryptographie]]&lt;br /&gt;
[[Kategorie:Informatik-Abitur]]&lt;br /&gt;
[[Kategorie:Informatik]]&lt;br /&gt;
&lt;br /&gt;
[[File:Vigenere-Beispiel.png|thumb|Quelle: [http://commons.wikimedia.org/wiki/File:Vigenere-Beispiel.png Wikimedia] |727px]]&lt;br /&gt;
&lt;br /&gt;
Das Vigenere-Verfahren ist eine &amp;#039;&amp;#039;&amp;#039;polyalphabetische&amp;#039;&amp;#039;&amp;#039; Verschlüsselung, die die [[Caesar-Verschlüsselung]] erheblich verbessert.&lt;br /&gt;
Es wurde im 16. Jahrhundert entwickelt und galt lange als sicher; erst 1854 wurde der sog. &amp;#039;&amp;#039;&amp;#039;Kasiski-Test&amp;#039;&amp;#039;&amp;#039; veröffentlicht, mit dem man das Vigenere-Verfahren für kurze Schlüssellängen bei ausreichender Textmenge knacken konnte. (Bei langen Schlüsseln, am besten so lang wie der Text selber, ist das Vigenere-Verfahren auch heute noch sicher.)&lt;br /&gt;
&lt;br /&gt;
=Verfahren=&lt;br /&gt;
==Verschlüsselung==&lt;br /&gt;
* Unter den Klartext wird der Schlüssel geschrieben. Dabei wird der Schlüssel ggf. mehrfach wiederholt.&lt;br /&gt;
* Jetzt schaut man für jeden Buchstaben in der Tabelle nach (s. Grafik).&lt;br /&gt;
==Entschlüsselung==&lt;br /&gt;
* Man schreibt den Schlüssel unter den Geheimtext, dabei wiederholt man ggf. den Schlüssel.&lt;br /&gt;
* Jetzt geht man von dem Buchstaben des Schlüssels in der Tabelle nach rechts, bis man auf den geheimen Buchstaben trifft.&lt;br /&gt;
* Jetzt geht man nach oben und erhält den Buchstaben des Klartextes.&lt;br /&gt;
&lt;br /&gt;
==Implementierung==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;public class Vigenere {&lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;private static char[][] vigenereQuadrat;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;public static void vigenereQuadratErstellen(){&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
        if(vigenereQuadrat == null){&lt;br /&gt;
            vigenereQuadrat = new char[&amp;#039;z&amp;#039;+1][&amp;#039;z&amp;#039;+1];&lt;br /&gt;
            int zahl = 0;&lt;br /&gt;
            for (char i = &amp;#039;a&amp;#039;; i &amp;lt;= &amp;#039;z&amp;#039;; i++) {&lt;br /&gt;
                for(char j=&amp;#039;a&amp;#039;; j &amp;lt;= &amp;#039;z&amp;#039;; j++){&lt;br /&gt;
                    vigenereQuadrat[i][j] = j;&lt;br /&gt;
                    vigenereQuadrat[i][j] += zahl;&lt;br /&gt;
                    if(vigenereQuadrat[i][j] &amp;gt; &amp;#039;z&amp;#039;){&lt;br /&gt;
                        vigenereQuadrat[i][j] -= 26;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                zahl++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public static void quadratDrucken(){&lt;br /&gt;
        System.out.println(&amp;quot;*** Das Vigenere-Quadrat ***&amp;quot;);&lt;br /&gt;
        if(vigenereQuadrat == null){&lt;br /&gt;
            vigenereQuadratErstellen();&lt;br /&gt;
        }&lt;br /&gt;
        for (char i = &amp;#039;a&amp;#039;; i &amp;lt;= &amp;#039;z&amp;#039;; i++) {&lt;br /&gt;
            for(char j=&amp;#039;a&amp;#039;; j &amp;lt;= &amp;#039;z&amp;#039;; j++){&lt;br /&gt;
                System.out.print(vigenereQuadrat[i][j]);&lt;br /&gt;
            }&lt;br /&gt;
            System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;public static String entschluesseln(String pText, String pSchluessel) {&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
        vigenereQuadratErstellen();&lt;br /&gt;
        // alles auf Kleinbuchstaben bringen!&lt;br /&gt;
        pText = pText.toLowerCase();&lt;br /&gt;
        String ergebnis = &amp;quot;&amp;quot;;&lt;br /&gt;
        int laengeSchluessel = pSchluessel.length();&lt;br /&gt;
        for(int i=0; i&amp;lt;pText.length(); i++){&lt;br /&gt;
            char verschluesseltBuchstabe = pText.charAt(i);&lt;br /&gt;
            int indexSchluessel = i%laengeSchluessel;&lt;br /&gt;
            int schluesselBuchstabe = pSchluessel.charAt(indexSchluessel);&lt;br /&gt;
            // den richtigen Buchstaben suchen!&lt;br /&gt;
            char[] zeile = vigenereQuadrat[schluesselBuchstabe];&lt;br /&gt;
            char textBuchstabe = &amp;#039;a&amp;#039;;&lt;br /&gt;
            while(zeile[textBuchstabe] != verschluesseltBuchstabe){&lt;br /&gt;
                textBuchstabe++;&lt;br /&gt;
            }&lt;br /&gt;
            ergebnis += textBuchstabe;&lt;br /&gt;
        }&lt;br /&gt;
        return ergebnis;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    &amp;#039;&amp;#039;&amp;#039;private static String verschluesseln(String pText, String pSchluessel) {&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
        vigenereQuadratErstellen();&lt;br /&gt;
        // Leerzeichen rausnehmen!&lt;br /&gt;
        pText = pText.replaceAll(&amp;quot; &amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
        // alles auf Kleinbuchstaben bringen!&lt;br /&gt;
        pText = pText.toLowerCase();&lt;br /&gt;
        System.out.println(&amp;quot;Nachricht ohne Leerzeichen und alles klein: &amp;quot;+pText);&lt;br /&gt;
        String ergebnis = &amp;quot;&amp;quot;;&lt;br /&gt;
        int laengeSchluessel = pSchluessel.length();&lt;br /&gt;
        for(int i=0; i&amp;lt;pText.length(); i++){&lt;br /&gt;
            char textBuchstabe = pText.charAt(i);&lt;br /&gt;
            int indexSchluessel = i%laengeSchluessel;&lt;br /&gt;
            char schluesselBuchstabe = pSchluessel.charAt(indexSchluessel);&lt;br /&gt;
            char verschluesseltBuchstabe = vigenereQuadrat[textBuchstabe][schluesselBuchstabe];&lt;br /&gt;
            ergebnis += verschluesseltBuchstabe;&lt;br /&gt;
        }&lt;br /&gt;
        return ergebnis;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        //quadratDrucken();&lt;br /&gt;
        String schluessel = &amp;quot;test&amp;quot;;&lt;br /&gt;
        System.out.println(&amp;quot;Schluessel: &amp;quot;+schluessel);&lt;br /&gt;
        String nachricht = &amp;quot;Hallo zusammen wie gehts&amp;quot;;&lt;br /&gt;
        System.out.println(&amp;quot;Nachricht: &amp;quot;+nachricht);&lt;br /&gt;
        String verschluesselt = verschluesseln(nachricht, schluessel);&lt;br /&gt;
        System.out.println(&amp;quot;verschluesselt: &amp;quot;+verschluesselt);&lt;br /&gt;
        String entschluesselt = entschluesseln(verschluesselt, schluessel);&lt;br /&gt;
        System.out.println(&amp;quot;entschluesselt: &amp;quot;+entschluesselt);&lt;br /&gt;
    }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>sibiwikialt&gt;Akaibel</name></author>
	</entry>
</feed>