IBE (Identitiy Based Encryption)
Master Key Generation
edgetk -pkey setup -algorithm bls12381 -master "Master.pem" -pass nil -pub "MasterPublic.pem"
Master key pair generated successfully:
Master Key saved to: albanese.atwebpages.com/directrix/Master.pem
Public Key saved to: albanese.atwebpages.com/directrix/MasterPublic.pem
Fingerprint: e9u2GEJbHtiSjYCTGkGjRgm72+CKohvQZcrzpUpKFK8=
BLS12-381
+-----------------+
|%B#^^^^@%^#O#^^^^|
|=E=BO^O^=O*==^^^^|
|o *o+o^.=.+.Bo^|
| B.=.+ # . =oO.|
| + + o S % o + +|
| . . & + . o |
| o |
| |
| |
+-----------------+
User 1 Private Key Generation
edgetk -pkey keygen -algorithm bls12381 -master "Master.pem" -prv "Private1.pem" -passout nil -id "user1"
User 1's private key generated successfully:
Private Key saved to: albanese.atwebpages.com/directrix/Private1.pem
User 2 Private Key Generation
edgetk -pkey keygen -algorithm bls12381 -master "Master.pem" -prv "Private2.pem" -passout nil -id "user2"
User 2's private key generated successfully:
Private Key saved to: albanese.atwebpages.com/directrix/Private2.pem
Key Details
edgetk -pkey text -key "Master.pem"
Master key details:
-----BEGIN BLS12381 MASTER KEY-----
qbBj1iz7b+rmsPK5xB82Frihi6g9rDklrT3B7mJvCcY=
-----END BLS12381 MASTER KEY-----
MasterKey:
a9:b0:63:d6:2c:fb:6f:ea:e6:b0:f2:b9:c4:1f:36:
16:b8:a1:8b:a8:3d:ac:39:25:ad:3d:c1:ee:62:6f:
09:c6
PublicKey:
82:77:ce:56:44:cd:f0:9d:6f:a7:e5:7a:db:d4:22:
fd:00:2c:62:f9:69:5e:4b:5f:9a:67:d1:47:de:9a:
4b:2a:aa:11:fb:d0:de:9f:5b:18:b2:21:d1:47:c1:
55:6a:51:09:6c:a9:9c:e8:aa:7f:9a:81:07:ce:29:
5b:18:39:35:9a:de:c2:07:ef:7c:e2:14:4b:da:7a:
69:f5:df:b2:e8:c7:bb:29:08:5a:b0:b9:5d:a8:6e:
49:bf:af:a0:1f:99
Curve: BLS12381
edgetk -pkey text -key "Private1.pem"
User 1's Private key details:
-----BEGIN BLS12381 SECRET KEY-----
RNs64hkmH6SShJq4o8ekMgI6TtEv/BbwDv7fhsSX058=
-----END BLS12381 SECRET KEY-----
SecretKey:
44:db:3a:e2:19:26:1f:a4:92:84:9a:b8:a3:c7:a4:
32:02:3a:4e:d1:2f:fc:16:f0:0e:fe:df:86:c4:97:
d3:9f
Curve: BLS12381
edgetk -pkey text -key "Private2.pem"
User 2's Private key details:
-----BEGIN BLS12381 SECRET KEY-----
GPSV8lMyX4mzfZUg6s5b3yjqik+YMIwD9x03OnUgLAw=
-----END BLS12381 SECRET KEY-----
SecretKey:
18:f4:95:f2:53:32:5f:89:b3:7d:95:20:ea:ce:5b:
df:28:ea:8a:4f:98:30:8c:03:f7:1d:37:3a:75:20:
2c:0c
Curve: BLS12381
edgetk -pkey text -key "MasterPublic.pem"
Master public key details:
-----BEGIN BLS12381 PUBLIC KEY-----
gnfOVkTN8J1vp+V629Qi/QAsYvlpXktfmmfRR96aSyqqEfvQ3p9bGLIh0UfBVWpR
CWypnOiqf5qBB84pWxg5NZrewgfvfOIUS9p6afXfsujHuykIWrC5XahuSb+voB+Z
-----END BLS12381 PUBLIC KEY-----
PublicKey:
82:77:ce:56:44:cd:f0:9d:6f:a7:e5:7a:db:d4:22:
fd:00:2c:62:f9:69:5e:4b:5f:9a:67:d1:47:de:9a:
4b:2a:aa:11:fb:d0:de:9f:5b:18:b2:21:d1:47:c1:
55:6a:51:09:6c:a9:9c:e8:aa:7f:9a:81:07:ce:29:
5b:18:39:35:9a:de:c2:07:ef:7c:e2:14:4b:da:7a:
69:f5:df:b2:e8:c7:bb:29:08:5a:b0:b9:5d:a8:6e:
49:bf:af:a0:1f:99
Curve: BLS12381
KeyID: cd69de4c2c5f998a2cdca4251f678e558899727a
Encryption
edgetk -pkey encrypt -algorithm bls12381 -key "MasterPublic.pem" -id "user1" "test.txt" > "ciphertext.enc"
Message encrypted successfully:
Encrypted message in Base64 (64-character wrap):
MIGyBGAL1avEl61CvVYfCxrYzWcJf8xfzArKM6ujhb8Z97O4b9+a896FMO4wUL2r
7Y2LyAUODn844y9BQmahtJlX1ex32T3BJgsYiSrbjGim+f/E96uKACplE4mv0DOj
wHK+f84CICt/adytwg+XM4dhnExiPlxRuU85oI4GZDUakTw28AoCBCx+i3n33aBu
VVBypfWiHuI6VBD7aLCxMc9MbsNRc1cdkFyLe+bOo2VQVW+ooAo=
edgetk -pkey decrypt -algorithm bls12381 -key "Private1.pem" "ciphertext.enc"
Message decrypted successfully:
Portability, Compatibility, Interoperability
Key Exchange
edgetk -pkey derive -algorithm bls12381 -key "Private1.pem" -pub "MasterPublic.pem" -id "user2"
User 1 Key exchange completed successfully:
Shared= 8abf19d35e4687304381d68ce7101ff0e70d9b26dd5f823b87e014d8a0e1c353
edgetk -pkey derive -algorithm bls12381 -key "Private2.pem" -pub "MasterPublic.pem" -id "user1"
User 2 Key exchange completed successfully:
Shared= 8abf19d35e4687304381d68ce7101ff0e70d9b26dd5f823b87e014d8a0e1c353
Signature
edgetk -pkey sign -algorithm bls12381 -key "Private1.pem" "test.txt"
Digital signature generated successfully:
b0c5f29c65aeacd192c310ec80ff45067d84bf0738d1136ca44aff0262b768932e09e81b81d16a700d1663177ab00bb6
edgetk -pkey verify -algorithm bls12381 -key "MasterPublic.pem" -id "user1" -signature "b0c5f29c65aeacd192c310ec80ff45067d84bf0738d1136ca44aff0262b768932e09e81b81d16a700d1663177ab00bb6" "test.txt"
Signature verified successfully:
Verified: true