EDGE Toolkit Technical Guideline

Elliptic Curve-based ElGamal Key Agreement Scheme (ECKA-EG)

EC-ElGamal Key Pair Generation

edgetk -pkey keygen -algorithm ec-elgamal -curve bls12381g2 -prv "Private.pem" -pass nil -pub "Public.pem" 2>&1
ElGamal key pair generated successfully:
Private Key saved to: albanese.atwebpages.com/directrix/Private.pem
Public Key saved to: albanese.atwebpages.com/directrix/Public.pem
Fingerprint: 3NiCTfpMTCafZDt6i6Zhex1qKXmh5AFrwhGoFsoCF2M=
EC-ElGamal (381-bit)
+-----------------+
|     o==X@^^^^^^^|
|       =.XE^^^^^^|
|      . .oX+=^^^^|
|     .  .@  o+oO*|
|      ..S *    ..|
|       ..*o .  o |
|         + + .. .|
|          o . . .|
|               . |
+-----------------+

Private Key Details

edgetk -pkey text -key "Private.pem"
Private key details:
-----BEGIN EC-ELGAMAL DECRYPTION KEY-----
IE1m7VpJKbcf9udyxL7wsMzRr5oP9q3KPJw3m4ynBXfKCkJMUzEyMzgxRzI=
-----END EC-ELGAMAL DECRYPTION KEY-----
DecryptionKey:
    20:4d:66:ed:5a:49:29:b7:1f:f6:e7:72:c4:be:f0:
    b0:cc:d1:af:9a:0f:f6:ad:ca:3c:9c:37:9b:8c:a7:
    05:77:ca:0a:42:4c:53:31:32:33:38:31:47:32
EncryptionKey:
    60:8d:a7:e7:98:11:cc:02:13:14:b7:b4:b8:6b:ff:
    48:a8:39:27:9e:59:e5:31:f8:29:86:b4:04:2b:d0:
    32:c8:53:b8:ea:7a:39:ba:ce:50:91:87:ea:f2:5d:
    34:90:c7:0f:09:d5:e6:7e:88:01:0c:34:30:3c:a8:
    93:f1:c9:28:1b:ad:35:0b:c8:31:24:9c:88:d3:8d:
    60:93:a0:50:44:4a:28:13:1c:ba:48:34:b7:37:5e:
    f5:61:95:87:b6:14:8d:0a:42:4c:53:31:32:33:38:
    31:47:32
Curve: BLS12381G2

Public Key Details

edgetk -pkey text -key "Public.pem"
Public key details:
-----BEGIN EC-ELGAMAL ENCRYPTION KEY-----
YI2n55gRzAITFLe0uGv/SKg5J55Z5TH4KYa0BCvQMshTuOp6ObrOUJGH6vJdNJDH
DwnV5n6IAQw0MDyok/HJKButNQvIMSSciNONYJOgUERKKBMcukg0tzde9WGVh7YU
jQpCTFMxMjM4MUcy
-----END EC-ELGAMAL ENCRYPTION KEY-----
EncryptionKey:
    60:8d:a7:e7:98:11:cc:02:13:14:b7:b4:b8:6b:ff:
    48:a8:39:27:9e:59:e5:31:f8:29:86:b4:04:2b:d0:
    32:c8:53:b8:ea:7a:39:ba:ce:50:91:87:ea:f2:5d:
    34:90:c7:0f:09:d5:e6:7e:88:01:0c:34:30:3c:a8:
    93:f1:c9:28:1b:ad:35:0b:c8:31:24:9c:88:d3:8d:
    60:93:a0:50:44:4a:28:13:1c:ba:48:34:b7:37:5e:
    f5:61:95:87:b6:14:8d:0a:42:4c:53:31:32:33:38:
    31:47:32
Curve: BLS12381G2

Shared Key Negotiation

edgetk -pkey wrapkey -algorithm ec-elgamal -key "Public.pem" -bits 256
Ciphertext (Wrapped key) generated:
Cipher= 308201250481c010e7f55d7b97feabebea3970f68d7ab11d060693997728cf78b4185b080e70f26db908333977dc5ce10299d58644e6270f9c97df814b2082f9241e96a3cb72e3386dc4b551c00abfaa0b6632ad79e1be92b9c455d0c4ea7cbd61088296386a6506a522fd7913d61f22333ea77fcb3e779654cb43d03bbdea3adceeb2c2f5202cb42b576a8a4f67a390e6e13a27a10c2d15626e085fab89cff14f283a2f33160b26087b7b83c703581be6b17de02d6be9978cb4d2313019e0857c793e8fc6f6830460856ff0df940066c57bc185ab763f9f64c394611cbd3c45b570168b8de92d31f251cebdd8f00ffe3149c84f327a4e956417b63abee6d7c0a3ee4f853848479207d346e05b4530ecc932258c62d715c6a3d48ad175aaaa66ad2bee0e34644d065f
Shared= f356f9dbe0f28faef88b704208b80bc6556470b379cedd89aedf1e099c17784f

Unwrapping the Ciphertext

edgetk -pkey unwrapkey -algorithm ec-elgamal -key "Private.pem" -cipher 308201250481c010e7f55d7b97feabebea3970f68d7ab11d060693997728cf78b4185b080e70f26db908333977dc5ce10299d58644e6270f9c97df814b2082f9241e96a3cb72e3386dc4b551c00abfaa0b6632ad79e1be92b9c455d0c4ea7cbd61088296386a6506a522fd7913d61f22333ea77fcb3e779654cb43d03bbdea3adceeb2c2f5202cb42b576a8a4f67a390e6e13a27a10c2d15626e085fab89cff14f283a2f33160b26087b7b83c703581be6b17de02d6be9978cb4d2313019e0857c793e8fc6f6830460856ff0df940066c57bc185ab763f9f64c394611cbd3c45b570168b8de92d31f251cebdd8f00ffe3149c84f327a4e956417b63abee6d7c0a3ee4f853848479207d346e05b4530ecc932258c62d715c6a3d48ad175aaaa66ad2bee0e34644d065f
Shared key decrypted successfully:
Shared= f356f9dbe0f28faef88b704208b80bc6556470b379cedd89aedf1e099c17784f