# Programm Public-Key-Verschlüsseln # ************************* Prozeduren *************** proc public_key_verschluesseln {} { global satz global schluessel set internercode 123 set stelle 0 set codestelle 0 set internercodestelle 0 set verschluesselter_satz "" set laenge [string length $satz] set codelaenge [string length $schluessel] set internercodelaenge [string length $internercode] while {$stelle < $laenge} { set zeichen [string index $satz $stelle] scan $zeichen %c asciizahl set codezahlzeichen [string index $schluessel $codestelle] scan $codezahlzeichen %c codezahl set codezahl [expr $codezahl -48] set internercodezahlzeichen [string index $internercode $internercodestelle] scan $internercodezahlzeichen %c internercodezahl set internercodezahl [expr $internercodezahl -48] set summencodezahl [expr $codezahl + $internercodezahl] if {$summencodezahl > 9} { set summencodezahl [expr $summencodezahl - 10] } set asciizahl [expr $asciizahl + $summencodezahl] set zeichen [format %c $asciizahl] set verschluesselter_satz $verschluesselter_satz$zeichen set stelle [expr $stelle + 1] set codestelle [expr $codestelle +1] set internercodestelle [expr $internercodestelle +1] if {$codestelle == $codelaenge} { set codestelle 0 } if {$internercodestelle == $internercodelaenge} { set internercodestelle 0 } } set satz $verschluesselter_satz } proc public_key_entschluesseln {} { global satz global schluessel set stelle 0 set codestelle 0 set entschluesselter_satz "" set laenge [string length $satz] set codelaenge [string length $schluessel] while {$stelle < $laenge} { set zeichen [string index $satz $stelle] scan $zeichen %c asciizahl set codezahlzeichen [string index $schluessel $codestelle] scan $codezahlzeichen %c codezahl set codezahl [expr $codezahl -48] set asciizahl [expr $asciizahl - $codezahl] set zeichen [format %c $asciizahl] set entschluesselter_satz $entschluesselter_satz$zeichen set stelle [expr $stelle + 1] set codestelle [expr $codestelle +1] if {$codestelle == $codelaenge} { set codestelle 0 } } set satz $entschluesselter_satz } # ************************* Ende der Prozeduren *************** puts \n\n\n\n puts "Ein kleines Programm zur Demonstration der Public-Key - Verschlüsselung" puts "" puts "" puts "Bitte Satz eingeben: " gets stdin satz puts "Bitte öffentlichen Schlüssel eingeben: " gets stdin schluessel puts "Unverschlüsselt: $satz" puts "" public_key_verschluesseln puts "Verschlüsselt: $satz" puts "Bitte privaten Schlüssel eingeben: " gets stdin schluessel public_key_entschluesseln puts "Entschlüsselt: $satz" # Ende des Programmes Public_Key_-Verschlüsseln