[back] [prev] [next] [index] [root]
P := EccDecrypt(K,E,a,M);
finite field | K |
|
list | E |
|
integer | a |
|
list | M |
|
list | P |
See also: EccPointsAdd, EccIntPointMult, EccPointIsOnCurve, EccEncrypt, FF
kash> field := FF(751); Finite field of size 751 kash> ec := [0,0,1,-1,0]; [ 0, 0, 1, -1, 0 ] kash> base_point := [0,0]; [ 0, 0 ] kash> secret_key := 58; 58 kash> public_key := EccIntPointMult(field,ec,secret_key,base_point); [ 201, 380 ] kash> plaintext := [[562,576],[581,395],[484,214],[501,220],[1,0]]; [ [ 562, 576 ], [ 581, 395 ], [ 484, 214 ], [ 501, 220 ], [ 1, 0 ] ] kash> k := [254,180,99,472,275]; [ 254, 180, 99, 472, 275 ] kash> ciphertext := List([1..5], \ > x-> EccEncrypt(field,ec,base_point,public_key,k[x],plaintext[x])); [ [ [ 268, 146 ], [ 378, 547 ] ], [ [ 680, 469 ], [ 409, 94 ] ], [ [ 710, 395 ], [ 195, 432 ] ], [ [ 747, 222 ], [ 101, 371 ] ], [ [ 13, 246 ], [ 386, 303 ] ] ] kash> List(ciphertext, x-> EccDecrypt(field,ec,secret_key,x)); > [ [ 562, 576 ], [ 581, 395 ], [ 484, 214 ], [ 501, 220 ], [ 1, 0 ] ]
<- back[back] [prev] [next] [index] [root]