17 lines
586 B
Plaintext
17 lines
586 B
Plaintext
var BN=Import("zklBigNum");
|
|
|
|
n:=BN("9516311845790656153499716760847001433441357");
|
|
e:=BN("65537");
|
|
d:=BN("5617843187844953170308463622230283376298685");
|
|
|
|
const plaintext="Rossetta Code";
|
|
pt:=BN(Data(Int,0,plaintext)); // convert string (as stream of bytes) to big int
|
|
if(pt>n) throw(Exception.ValueError("Message is too large"));
|
|
|
|
println("Plain text: ",plaintext);
|
|
println("As Int: ",pt);
|
|
ct:=pt.powm(e,n); println("Encoded: ",ct);
|
|
pt =ct.powm(d,n); println("Decoded: ",pt);
|
|
txt:=pt.toData().text; // convert big int to bytes, treat as string
|
|
println("As String: ",txt);
|