| |
|
|
p.specht
| Modulares Potenzieren ================== Beim RSA-Verschlüsselungsverfahren voluntad zwei große Primzahlen multipliziert o. potenziert, a una Modul para weitere Berechnungen. Diese Berechnungen wären wegen el irrsinnigen Größe el enstehenden Pagar enorm aufwendig. Als Abhilfe hay el Algorithmus "Modulares Potenzieren": Man muss entonces no zuerst el Endergebnis calcular, pero kann Zwischenergebnisse ya "unterwegs" MODULO-nehmen, sprich: Mit el enstehenden Divisionsresten weiterrechnen, sin daß el Endergebnis verändert sería. Das untenstehende Machwerk es allerdings no en Gültigkeitsgrenzen geprüft, lo es se sólo una Prinzipstudie. Gegengeprüft wurde mittels la lengua "R".
Un el Quellen: [...]
Wollte uno tatsächlich el RSA-Verfahren nachbilden, debería selbstverständlich Assemblercode geschrieben voluntad. Und incluso el podría a langsam voluntad, deshalb se a Codierung y Decodierung en moderneren Geräten ya el Grafikkarte (Parallelcomputing) herangezogen.
Título de la ventana "Modulares Potenzieren (Prinzipstudie zB. para el RSA-Verfahren)"
' (CL) CopyLeft 2018-05 P.Pájaro carpintero, Wien; Ohne jede Gewähr! Quelle: https://www.
' inf-schule.de/kommunikation/kryptologie/rsa/modpotenz/station_schnellespotenzieren
Windowstyle 24:font 2:set("decimals",17)
Declarar w$,x!,y!,m!
Repeat
Cls rgb(200+rnd(56),200+rnd(56),200+rnd(56)):w$=""
imprimir "\n\n (x ^ y) mod m se berechnet voluntad:"
Imprimir "\n\n x = ";:input w$:x!=val(w$)
Imprimir "\n y = ";:input w$:y!=val(w$)
Imprimir "\n m = ";:input w$:m!=val(w$)
imprimir "\n ModPotf(x,y,m) = ";
color 14,1:imprimir " "+format$("%g",ModPotf(x!,y!,m!))+" "
color 0,15
waitinput
Until %key=27
End
Proc modpotf :parámetros x!,y!,m!
var pot! = 1
mientras que y!>0
if remodf(y!,2)=1
pot!=remodf(pot!*x!,m!)
y!=y!-1
más
x!=remodf(sqr(x!),m!)
y!=y!/2
endif
endwhile
volver pot!
ENDPROC
'-----------------------------
'Hilfsfunktionen de geplanter Incluir (work en progress):
proc floor :parámetros x!
caso abs(x!)<(10^-35):volver 0
caso x!>0:volver intf(x!)
volver (abs(x!-intf(x!)) < 10^-35)-intf(abs(x!-1))
ENDPROC
proc remodf :parámetros x!,y!
' Q: https://de.wikipedia.org/wiki/Modulo , como en ADA
caso abs(x!)<(10^-35):volver 0
caso abs(y!)<(10^-35):volver x!
volver ((x!>0)-(x!<0))*abs(x!-y!*floor(x!/y!))
ENDPROC
proc frac :parámetros x!
var s!=(x!>0)-(x!<0)
x!=abs(x!)
x!=x!-round(x!,0)
caso x!<0:x!=1+x!
volver s!*x!
ENDPROC
proc intf :parámetros x!
var s!=(x!>0)-(x!<0)
x!=abs(x!)
x!=x!-frac(x!)
volver s!*x!
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 27.05.2021 ▲ |
|
|
|