| |
|
|
p.specht
| Modulares Potenzieren ================== Beim RSA-Verschlüsselungsverfahren volonté deux grand Primzahlen multipliziert bzw. potenziert, trop einem Modul pour weitere Berechnungen. cet Berechnungen wären à cause de qui irrsinnigen Taille qui enstehenden payons enorm aufwendig. comme Abhilfe gibt es den Algorithmus "Modulares Potenzieren": on muss ensuite pas d'abord cela Endergebnis errechnen, mais peux Zwischenergebnisse déjà "unterwegs" MODULO-prendre, sprich: avec den enstehenden Divisionsresten weiterrechnen, sans qui cela Endergebnis modifié serait. cela untenstehende Machwerk ist allerdings pas sur Gültigkeitsgrenzen geprüft, es handelt sich seulement um une Prinzipstudie. Gegengeprüft wurde mittels qui Discours "R".
une qui Quellen: [...]
voulais on réellement cela RSA-procéder nachbilden, devrait bien sûr Assemblercode geschrieben volonté. et selbst cela pourrait trop lente volonté, c'est pourquoi wird zur Codierung et Decodierung dans moderneren Geräten bereits qui Grafikkarte (Parallelcomputing) herangezogen.
Titre de la fenêtre "Modulares Potenzieren (Prinzipstudie zB. pour cela RSA-procéder)"
' (CL) CopyLeft 2018-05 P.Specht, Wien; sans chacun Gewähr! source: https://www.
' inf-une école.de/communication/kryptologie/rsa/modpotenz/station_schnellespotenzieren
Windowstyle 24:font 2:set("decimals",17)
Déclarer w$,x!,y!,m!
Repeat
Cls rgb(200+rnd(56),200+rnd(56),200+rnd(56)):w$=»
imprimer "\n\n (x ^ y) mod m soll berechnet volonté:"
Imprimer "\n\n x = ";:input w$:x!=val(w$)
Imprimer "\n y = ";:input w$:y!=val(w$)
Imprimer "\n m = ";:input w$:m!=val(w$)
imprimer "\n ModPotf(x,y,m) = ";
color 14,1:imprimer " "+format$("%g",ModPotf(x!,y!,m!))+" "
color 0,15
waitinput
Until %clé=27
Fin
Proc modpotf :parameters x!,y!,m!
var pot! = 1
tandis que y!>0
si remodf(y!,2)=1
pot!=remodf(pot!*x!,m!)
y!=y!-1
d'autre
x!=remodf(sqr(x!),m!)
y!=y!/2
endif
endwhile
return pot!
endproc
'-----------------------------
'Hilfsfunktionen aus geplanter Include (work dans progress):
proc floor :parameters x!
cas abs(x!)<(10^-35):return 0
cas x!>0:return intf(x!)
return (abs(x!-intf(x!)) < 10^-35)-intf(abs(x!-1))
endproc
proc remodf :parameters x!,y!
' Q: https://de.wikipedia.org/wiki/Modulo , comment dans ADA
cas abs(x!)<(10^-35):return 0
cas abs(y!)<(10^-35):return x!
return ((x!>0)-(x!<0))*abs(x!-y!*floor(x!/y!))
endproc
proc frac :parameters x!
var s!=(x!>0)-(x!<0)
x!=abs(x!)
x!=x!-round(x!,0)
cas x!<0:x!=1+x!
return s!*x!
endproc
proc intf :parameters x!
var s!=(x!>0)-(x!<0)
x!=abs(x!)
x!=x!-frac(x!)
return s!*x!
endproc
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 27.05.2021 ▲ |
|
|
|