Arno Pasternak: Kryptograhie Mit diesem Programm können die Schüler das Public-Key-System austesten. 0010 //PUBLIC-KEY-Verschluesselungssystem 0020 // 0030 REPEAT 0040 PRINT "Satz eingeben: 1" 0050 PRINT "Satz ausgeben: 2" 0060 PRINT "Satz laden : 3" 0070 PRINT "Satz speichern: 4" 0080 PRINT "Satz verschlüsseln: 5" 0090 PRINT "Satz entschlüsseln: 6" 0100 PRINT "Meldungen: 7" 0101 PRINT "Codezahl eingeben: 8" 0110 PRINT "Ende: 9" 0120 PRINT 0121 PRINT 0130 PRINT "Eingabe" 0140 INPUT wahl 0150 IF wahl=1 THEN satzeingabe 0160 IF wahl=2 THEN satzausgabe 0170 IF wahl=3 THEN satzladen 0180 IF wahl=4 THEN satzspeichern 0190 IF wahl=5 THEN publickeyverschlüsseln 0200 IF wahl=6 THEN publickeyentschlüsseln 0210 IF wahl=7 THEN meldungen 0211 IF wahl=8 THEN codezahl_eingeben 0220 UNTIL wahl=9 0230 // 0240 // 0250 //******************* Prozeduren *************************** 0260 // 0270 PROC satzeingabe 0280 PRINT "Bitte Satz eingeben:" 0290 INPUT satz$ 0300 ENDPROC satzeingabe 0310 // 0320 PROC satzausgabe 0330 PRINT "Der aktuell Satz lautet: ",satz$ 0340 ENDPROC satzausgabe 0350 // 0360 PROC satzladen 0370 PRINT "Aus welcher Datei soll geladen werden?" 0380 INPUT datei$ 0390 SELECT INPUT "f:"+datei$ 0400 INPUT satz$ 0410 SELECT INPUT "CON:" 0420 ENDPROC satzladen 0430 // 0440 PROC satzspeichern 0450 PRINT "In welche Datei soll gespeichert werden?" 0460 INPUT datei$ 0470 SELECT OUTPUT "f:"+datei$ 0480 PRINT satz$ 0490 SELECT OUTPUT "CON:" 0500 ENDPROC satzspeichern 0510 // 0760 // 0770 PROC meldungen 0780 DIR "f:*.dat" 0790 ENDPROC meldungen 0800 // 0810 // 0820 PROC codezahl_eingeben 0830 PRINT "Bitte codezahl:" 0840 INPUT code$ 0850 ENDPROC codezahl_eingeben 0860 // 0870 // 1020 PROC publickeyverschlüsseln 1030 // 1040 internercode$:="123" 1050 stelle:=1 1060 codestelle:=1 1070 internercodestelle:=1 1080 REPEAT 1090 asciizahl:=ORD(satz$(:stelle:)) 1100 codezahl:=ORD(code$(:codestelle:))-48 1110 internercodezahl:=ORD(internercode$(:internercodestelle:))-48 1120 summencodezahl:=codezahl+internercodezahl 1130 IF summencodezahl>9 THEN summencodezahl:=summencodezahl-10 1140 asciizahl:=asciizahl+summencodezahl 1150 satz$(:stelle:):=CHR$(asciizahl) 1160 stelle:=stelle+1 1170 IF codestelle=LEN(code$) THEN 1180 codestelle:=1 1190 ELSE 1200 codestelle:=codestelle+1 1210 ENDIF 1220 IF internercodestelle=LEN(internercode$) THEN 1230 internercodestelle:=1 1240 ELSE 1250 internercodestelle:=internercodestelle+1 1260 ENDIF 1270 UNTIL stelle>LEN(satz$) 1280 // 1290 ENDPROC publickeyverschlüsseln 1300 1310 1320 PROC publickeyentschlüsseln 1330 // 1340 stelle:=1 1350 codestelle:=1 1360 REPEAT 1370 asciizahl:=ORD(satz$(:stelle:)) 1380 codezahl:=ORD(code$(:codestelle:))-48 1390 asciizahl:=asciizahl-codezahl 1400 satz$(:stelle:):=CHR$(asciizahl) 1410 stelle:=stelle+1 1420 IF codestelle=LEN(code$) THEN 1430 codestelle:=1 1440 ELSE 1450 codestelle:=codestelle+1 1460 ENDIF 1470 UNTIL stelle>LEN(satz$) 1480 // 1490 ENDPROC publickeyentschlüsseln 1491