write "======================================"
write "Private Schlüssel werden berechnet"
write "======================================"
write " "
privates_passwort_berechnen = (codewort) ->
stelle = 0
asciizahl = 0
verschiebung = -1
buchstabe = ''
passwort = ''
while stelle < codewort.length
buchstabe = codewort[stelle]
asciizahl = buchstabe.charCodeAt(0)
verschiebung += 1
verschiebung = 0 if verschiebung > 2
asciizahl -= verschiebung
buchstabe = String.fromCharCode(asciizahl)
passwort += buchstabe
stelle += 1
return passwort
# Ende von privates_passwort_berechnen
signier_passwort_berechnen = (codewort) ->
stelle = 0
asciizahl = 0
verschiebung = 1
buchstabe = ''
passwort = ''
while stelle < codewort.length
buchstabe = codewort[stelle]
asciizahl = buchstabe.charCodeAt(0)
verschiebung = verschiebung - 1
asciizahl = asciizahl - verschiebung
buchstabe = String.fromCharCode(asciizahl)
passwort = passwort + buchstabe
stelle = stelle + 1
if verschiebung < -1 then verschiebung = 1
return passwort
# Ende von signier_passwort_berechnen
# ============= Hauptprogramm ====================================
turtle.remove()
#
write " "
await read 'Öffentlicher Schlüssel: ', defer codewort
write " "
write "========================================="
write "Es werden die privaten Schlüssel zum öffentlichen Schlüssel"
write ""+codewort+""
write "ermittelt."
write "========================================="
passwort = privates_passwort_berechnen codewort
write " "
write "Der private Schlüssel lautet:"
write ""+passwort+""
write "========================================="
passwort = signier_passwort_berechnen codewort
write " "
write "Der Signier-Schlüssel lautet:"
write ""+passwort+""
write "========================================="