This is an old revision of the document!


Diceware-Verfahren

Das Diceware-Verfahren ist ein einfaches Verfahren zur Generierung von Passphrasen (also langen Passwörter), die gleichzeitig sicher und realtive einfach zu merken sind.

Weiter unten finden Sie ein Python-Programm, mit dessen Hilfe Sie Diceware-Passphrasen automatisiert erzeugen können. Um das Programm auszuführen, benötigen sie noch eine Diceware-Wortliste, die Sie zum Beispiel hier http://world.std.com/~reinhold/diceware_german.txt finden können. Weiterhin benötigen Sie natürlich auch noch Python selbst: https://www.python.org/

Das Python-Programm ist freie Software. Das bedeutet, dass die Nutzerin oder der Nutzer das Recht hat, die Funktionsweise des Programms analysieren und verstehen zu können. Technisch wird dies dadurch erreicht, dass der unten abgedruckte Quelltext des Programms veröffenlicht wird. Auch wenn Sie die Programmiersprache Python nicht kennen und deshalb vielleicht nicht jedes Detail verstehen, so lesen sie doch einfach mal den Quelltext quer. Vielleicht bekommen Sie ja dennoch ein Gefühl dafür, ob das Programm tatsächlich nur das Erwartete tut, oder ob es vielleicht im Hintergrund zusätzlich noch heimlich andere Dinge tut, die Sie nicht erwarten und deshalb als betrügerisch empfinden würden?

diceware.py
# Lizenz: Freie Software, GPL-3.0, Autorin: selva
# URL zur lizenz: https://www.gnu.org/licenses/gpl.html
 
import random
 
# Einlesen der Wortliste aus Datei:
file = open("diceware_german.txt", "r")
wordlist = {}
for line in file:
    if line[0] != "#":
        number = line[0:5]
        word = line[6:len(line)-1]
        wordlist[number] = word
file.close()
 
# Erzeugen der Passphrase:
print("Generate Passphrase with Diceware-Method:")
print("Press e for exit, any key for one more word:")
passphrase = ""
entropie = 0
next = True
while(next):
    # 5-malige Würfeln (Pseudozufallszahlen):
    randomValue = ""
    for i in range(0,5):
        randomValue += str( random.randint(1,6) )
    # Nachschlagen des Diceware-Wortes und Zusammenbau der Passphrase:
    passphrase += wordlist[randomValue] + " "
    entropie += 12.92
    print( passphrase )
    print("   (Entropie {e:5.2f} Bit)".format(e=entropie) )
    if( input() == 'e' ):
        next = False