Pure ElGamal Cryptosystem
ElGamal Parameters Generation
edgetk -pkey setup -algorithm elgamal -bits 1024
ElGamal parameters generated successfully:
-----BEGIN ELGAMAL PARAMETERS-----
KH8DAQENRWxHYW1hbFBhcmFtcwH/gAABAgEBUAH/ggABAUcB/4IAAAAK/4EFAQL/
hAAAAP4BC/+AAf+BAoMPM4qYtq7l/akEfTvp3yjgrKqbseAy2yYQxilxzng6Q6NZ
uz9o/J17w4cX7bfKdbrs9xwZwxXzerApHVR4F7YdrmHF3Xl9vFtgZRtE2aajsBEk
IqWUNF1Eo+8h5LegRPQyujwKwcbm5l+5R0EL/UtFbj/WU+d40Depn9KEqi/jAf+B
AguRcqUQwoh9baIuSuqaTQTtGl+udju8gRW94XbNHOAlfI9zo6TuBlc5I8KdehG9
wGroO7F5FF8RtLnASd+UiG0yzc3X6+kO/OAMVXe+6IUaIEfN7nlpWoDXHQPxnqi0
S3t8LpHIGBvObHdfIJEhdK1ACfMeNSUVRVN9hQUzyGizAA==
-----END ELGAMAL PARAMETERS-----
ElGamal Parameters Details
edgetk -pkey text -params Params.pem
ElGamal parameters details:
-----BEGIN ELGAMAL PARAMETERS-----
KH8DAQENRWxHYW1hbFBhcmFtcwH/gAABAgEBUAH/ggABAUcB/4IAAAAK/4EFAQL/
hAAAAP4BC/+AAf+BAoMPM4qYtq7l/akEfTvp3yjgrKqbseAy2yYQxilxzng6Q6NZ
uz9o/J17w4cX7bfKdbrs9xwZwxXzerApHVR4F7YdrmHF3Xl9vFtgZRtE2aajsBEk
IqWUNF1Eo+8h5LegRPQyujwKwcbm5l+5R0EL/UtFbj/WU+d40Depn9KEqi/jAf+B
AguRcqUQwoh9baIuSuqaTQTtGl+udju8gRW94XbNHOAlfI9zo6TuBlc5I8KdehG9
wGroO7F5FF8RtLnASd+UiG0yzc3X6+kO/OAMVXe+6IUaIEfN7nlpWoDXHQPxnqi0
S3t8LpHIGBvObHdfIJEhdK1ACfMeNSUVRVN9hQUzyGizAA==
-----END ELGAMAL PARAMETERS-----ElGamal Parameters:
Prime(p):
83:0f:33:8a:98:b6:ae:e5:fd:a9:04:7d:3b:e9:df:
28:e0:ac:aa:9b:b1:e0:32:db:26:10:c6:29:71:ce:
78:3a:43:a3:59:bb:3f:68:fc:9d:7b:c3:87:17:ed:
b7:ca:75:ba:ec:f7:1c:19:c3:15:f3:7a:b0:29:1d:
54:78:17:b6:1d:ae:61:c5:dd:79:7d:bc:5b:60:65:
1b:44:d9:a6:a3:b0:11:24:22:a5:94:34:5d:44:a3:
ef:21:e4:b7:a0:44:f4:32:ba:3c:0a:c1:c6:e6:e6:
5f:b9:47:41:0b:fd:4b:45:6e:3f:d6:53:e7:78:d0:
37:a9:9f:d2:84:aa:2f:e3
Generator(g):
b9:17:2a:51:0c:28:87:d6:da:22:e4:ae:a9:a4:d0:
4e:d1:a5:fa:e7:63:bb:c8:11:5b:de:17:6c:d1:ce:
02:57:c8:f7:3a:3a:4e:e0:65:73:92:3c:29:d7:a1:
1b:dc:06:ae:83:bb:17:91:45:f1:1b:4b:9c:04:9d:
f9:48:86:d3:2c:dc:dd:7e:be:90:ef:ce:00:c5:57:
7b:ee:88:51:a2:04:7c:de:e7:96:95:a8:0d:71:d0:
3f:19:ea:8b:44:b7:b7:c2:e9:1c:81:81:bc:e6:c7:
75:f2:09:12:17:4a:d4:00:9f:31:e3:52:51:54:55:
37:d8:50:53:3c:86:8b:3
ElGamal Key Pair Generation
edgetk -pkey keygen -algorithm elgamal -params Params.pem -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: kX0dhw/JqBkJGjwwrVJk+i4+6Lgw2+cd+FjAbGbbeMA=
ElGamal (1024-bits)
+-----------------+
| o/^^^^^^^^^^^^^^|
|.oE/^^^^^^^^^^^^^|
|..X* ^*^#X^/^^^^^|
|.X. *.* X^.%o^^^^|
|+. . ..*S O % ^#^|
|. . B = B+&o|
| oo=.+|
| oo.|
| o.|
+-----------------+
Private Key Details
edgetk -pkey text -key "Private.pem"
Private key details:
-----BEGIN ELGAMAL PRIVATE KEY-----
MIIBBwKBgQCDDzOKmLau5f2pBH076d8o4Kyqm7HgMtsmEMYpcc54OkOjWbs/aPyd
e8OHF+23ynW67PccGcMV83qwKR1UeBe2Ha5hxd15fbxbYGUbRNmmo7ARJCKllDRd
RKPvIeS3oET0Mro8CsHG5uZfuUdBC/1LRW4/1lPneNA3qZ/ShKov4wKBgAuRcqUQ
woh9baIuSuqaTQTtGl+udju8gRW94XbNHOAlfI9zo6TuBlc5I8KdehG9wGroO7F5
FF8RtLnASd+UiG0yzc3X6+kO/OAMVXe+6IUaIEfN7nlpWoDXHQPxnqi0S3t8LpHI
GBvObHdfIJEhdK1ACfMeNSUVRVN9hQUzyGizXza61LFdj92EZZsBN3JmRHl9+6f7
K5DlUn/Zihv5reo+Q+eXvFrCpMBSjYBMXYW2r7A2HqjHu2wYfEmm9e7cs+vDFpjn
Lno1dWCNQGNXpefR1heuQ9j0CwkR/eQ77ci3YBpzn2OheNPaPt0VBmH9CJicOqEb
cA2rvXpIwruxkrw=
-----END ELGAMAL PRIVATE KEY-----
PrivateKey(x):
5f:36:ba:d4:b1:5d:8f:dd:84:65:9b:01:37:72:66:
44:79:7d:fb:a7:fb:2b:90:e5:52:7f:d9:8a:1b:f9:
ad:ea:3e:43:e7:97:bc:5a:c2:a4:c0:52:8d:80:4c:
5d:85:b6:af:b0:36:1e:a8:c7:bb:6c:18:7c:49:a6:
f5:ee:dc:b3:eb:c3:16:98:e7:2e:7a:35:75:60:8d:
40:63:57:a5:e7:d1:d6:17:ae:43:d8:f4:0b:09:11:
fd:e4:3b:ed:c8:b7:60:1a:73:9f:63:a1:78:d3:da:
3e:dd:15:06:61:fd:08:98:9c:3a:a1:1b:70:0d:ab:
bd:7a:48:c2:bb:b1:92:bc
Prime(p):
83:0f:33:8a:98:b6:ae:e5:fd:a9:04:7d:3b:e9:df:
28:e0:ac:aa:9b:b1:e0:32:db:26:10:c6:29:71:ce:
78:3a:43:a3:59:bb:3f:68:fc:9d:7b:c3:87:17:ed:
b7:ca:75:ba:ec:f7:1c:19:c3:15:f3:7a:b0:29:1d:
54:78:17:b6:1d:ae:61:c5:dd:79:7d:bc:5b:60:65:
1b:44:d9:a6:a3:b0:11:24:22:a5:94:34:5d:44:a3:
ef:21:e4:b7:a0:44:f4:32:ba:3c:0a:c1:c6:e6:e6:
5f:b9:47:41:0b:fd:4b:45:6e:3f:d6:53:e7:78:d0:
37:a9:9f:d2:84:aa:2f:e3
Generator(g in the range [2, p-2]):
b9:17:2a:51:0c:28:87:d6:da:22:e4:ae:a9:a4:d0:
4e:d1:a5:fa:e7:63:bb:c8:11:5b:de:17:6c:d1:ce:
02:57:c8:f7:3a:3a:4e:e0:65:73:92:3c:29:d7:a1:
1b:dc:06:ae:83:bb:17:91:45:f1:1b:4b:9c:04:9d:
f9:48:86:d3:2c:dc:dd:7e:be:90:ef:ce:00:c5:57:
7b:ee:88:51:a2:04:7c:de:e7:96:95:a8:0d:71:d0:
3f:19:ea:8b:44:b7:b7:c2:e9:1c:81:81:bc:e6:c7:
75:f2:09:12:17:4a:d4:00:9f:31:e3:52:51:54:55:
37:d8:50:53:3c:86:8b:3
PublicKey(Y = g^x mod p):
49:e6:57:60:49:79:6f:28:95:ab:62:59:8d:c0:17:
c2:ae:3b:ff:53:d9:02:bd:94:fe:6b:f3:97:e6:05:
a3:15:e6:01:7a:c2:c6:84:69:49:98:e3:59:fd:a9:
10:3b:7c:b2:41:85:b3:ae:ea:f0:a1:d8:7e:6d:f7:
c0:f8:ac:48:cf:e3:28:2a:6f:a2:ec:11:be:fb:43:
38:1e:9d:8d:73:5c:4b:26:ef:a3:12:fc:08:93:e6:
7f:40:c7:3e:b1:c7:07:5d:9a:de:62:a9:43:d8:d6:
85:ce:e7:7c:8c:d7:73:ed:59:63:6f:22:33:e8:10:
75:20:63:66:35:ee:7e:20
Public Key Details
edgetk -pkey text -key "Public.pem"
Public key details:
-----BEGIN ELGAMAL PUBLIC KEY-----
MIIBBwKBgQCDDzOKmLau5f2pBH076d8o4Kyqm7HgMtsmEMYpcc54OkOjWbs/aPyd
e8OHF+23ynW67PccGcMV83qwKR1UeBe2Ha5hxd15fbxbYGUbRNmmo7ARJCKllDRd
RKPvIeS3oET0Mro8CsHG5uZfuUdBC/1LRW4/1lPneNA3qZ/ShKov4wKBgAuRcqUQ
woh9baIuSuqaTQTtGl+udju8gRW94XbNHOAlfI9zo6TuBlc5I8KdehG9wGroO7F5
FF8RtLnASd+UiG0yzc3X6+kO/OAMVXe+6IUaIEfN7nlpWoDXHQPxnqi0S3t8LpHI
GBvObHdfIJEhdK1ACfMeNSUVRVN9hQUzyGizSeZXYEl5byiVq2JZjcAXwq47/1PZ
Ar2U/mvzl+YFoxXmAXrCxoRpSZjjWf2pEDt8skGFs67q8KHYfm33wPisSM/jKCpv
ouwRvvtDOB6djXNcSybvoxL8CJPmf0DHPrHHB12a3mKpQ9jWhc7nfIzXc+1ZY28i
M+gQdSBjZjXufiA=
-----END ELGAMAL PUBLIC KEY-----
Public Key Parameters:
Prime(p):
83:0f:33:8a:98:b6:ae:e5:fd:a9:04:7d:3b:e9:df:
28:e0:ac:aa:9b:b1:e0:32:db:26:10:c6:29:71:ce:
78:3a:43:a3:59:bb:3f:68:fc:9d:7b:c3:87:17:ed:
b7:ca:75:ba:ec:f7:1c:19:c3:15:f3:7a:b0:29:1d:
54:78:17:b6:1d:ae:61:c5:dd:79:7d:bc:5b:60:65:
1b:44:d9:a6:a3:b0:11:24:22:a5:94:34:5d:44:a3:
ef:21:e4:b7:a0:44:f4:32:ba:3c:0a:c1:c6:e6:e6:
5f:b9:47:41:0b:fd:4b:45:6e:3f:d6:53:e7:78:d0:
37:a9:9f:d2:84:aa:2f:e3
Generator(g):
b9:17:2a:51:0c:28:87:d6:da:22:e4:ae:a9:a4:d0:
4e:d1:a5:fa:e7:63:bb:c8:11:5b:de:17:6c:d1:ce:
02:57:c8:f7:3a:3a:4e:e0:65:73:92:3c:29:d7:a1:
1b:dc:06:ae:83:bb:17:91:45:f1:1b:4b:9c:04:9d:
f9:48:86:d3:2c:dc:dd:7e:be:90:ef:ce:00:c5:57:
7b:ee:88:51:a2:04:7c:de:e7:96:95:a8:0d:71:d0:
3f:19:ea:8b:44:b7:b7:c2:e9:1c:81:81:bc:e6:c7:
75:f2:09:12:17:4a:d4:00:9f:31:e3:52:51:54:55:
37:d8:50:53:3c:86:8b:3
PublicKey(Y):
49:e6:57:60:49:79:6f:28:95:ab:62:59:8d:c0:17:
c2:ae:3b:ff:53:d9:02:bd:94:fe:6b:f3:97:e6:05:
a3:15:e6:01:7a:c2:c6:84:69:49:98:e3:59:fd:a9:
10:3b:7c:b2:41:85:b3:ae:ea:f0:a1:d8:7e:6d:f7:
c0:f8:ac:48:cf:e3:28:2a:6f:a2:ec:11:be:fb:43:
38:1e:9d:8d:73:5c:4b:26:ef:a3:12:fc:08:93:e6:
7f:40:c7:3e:b1:c7:07:5d:9a:de:62:a9:43:d8:d6:
85:ce:e7:7c:8c:d7:73:ed:59:63:6f:22:33:e8:10:
75:20:63:66:35:ee:7e:20
Digital Signature Generation
edgetk -pkey sign -algorithm elgamal -key "Private.pem" -md bmw256 "test.txt" > sign.txt
Digital signature generated successfully:
3082010602818065a7c0188f663d4a8eb8c64932bbecc1e788bb7ca47e47db8eca740b5ee523f7d18b5460abe58da2033c42b33d706ce811430583ccfbdeef0cc4b311b95df35a62d59e7e4578fb418da3c22eed4b831dd573c0b43ad1d3b8040339439d13e9c878ea51c3ca198d4b6954e39d4bd67be0bcec6dbbb0264e6b4a9bf516c1e5154c028180452f8c8d5fa1be0da883a2946375f8607321741f9f8b05498e58ebcf85ff13aa5c453d56e03cbcff8ce7179b1eddb9c8e4b0672783a4c37410a76422787210d672a3f8bedbe75b0dfd8843a70836ff1be7976ba45a13c3097f9cf95681f3729aaa793e88ac61d1e6a7f97c0d113817366ed1b8abe8302a95af6a4c188426427e
Digital Signature Verification
edgetk -pkey verify -algorithm elgamal -key "Public.pem" -signature "3082010602818065a7c0188f663d4a8eb8c64932bbecc1e788bb7ca47e47db8eca740b5ee523f7d18b5460abe58da2033c42b33d706ce811430583ccfbdeef0cc4b311b95df35a62d59e7e4578fb418da3c22eed4b831dd573c0b43ad1d3b8040339439d13e9c878ea51c3ca198d4b6954e39d4bd67be0bcec6dbbb0264e6b4a9bf516c1e5154c028180452f8c8d5fa1be0da883a2946375f8607321741f9f8b05498e58ebcf85ff13aa5c453d56e03cbcff8ce7179b1eddb9c8e4b0672783a4c37410a76422787210d672a3f8bedbe75b0dfd8843a70836ff1be7976ba45a13c3097f9cf95681f3729aaa793e88ac61d1e6a7f97c0d113817366ed1b8abe8302a95af6a4c188426427e" -md bmw256 "test.txt"
Signature verified successfully:
Verified: true
Shared Key Negotiation
edgetk -pkey wrapkey -algorithm elgamal -key "Public.pem" -bits 256
Ciphertext (Wrapped key) generated:
Cipher= 30820106028180334deb7e3e25fe0c1c4f18a11f2230a5bd29ab68539060737c3ed8abda4e5303e30b3d98c7c48e253a178a913478495893d310b339c729aed3e6bf632a7e597ac2e8afce955460e83758d3427c692f8040bd8762b21ad0677a19eb98d434d7bfaa9e270088097a0800bbff46ef10eb6f6e34c37ba8f1a8335b7cca85408b009c0281806ffdb0f095441ea1020fc24f8b99640fac497339ffee43424f3f66254ae714af8510a2dccc0ad808768000cfc406b0c881d1a626b1f37ecc45660245849e2b150acc5ef7097bc1914fbdfc156cb6e7523d10c8c1258b98594ae421e7f7814793b07ca5c648d3c6728fdd80f6ac8b1b6a21ed610e1607c8fdc9474a1432e83f05
Shared= 13df8d34ef39ee02835e47725ebc710a3f877be2cac9bb2917a267175ca5f7bc
Unwrapping the Ciphertext
edgetk -pkey unwrapkey -algorithm elgamal -key "Private.pem" -cipher 30820106028180334deb7e3e25fe0c1c4f18a11f2230a5bd29ab68539060737c3ed8abda4e5303e30b3d98c7c48e253a178a913478495893d310b339c729aed3e6bf632a7e597ac2e8afce955460e83758d3427c692f8040bd8762b21ad0677a19eb98d434d7bfaa9e270088097a0800bbff46ef10eb6f6e34c37ba8f1a8335b7cca85408b009c0281806ffdb0f095441ea1020fc24f8b99640fac497339ffee43424f3f66254ae714af8510a2dccc0ad808768000cfc406b0c881d1a626b1f37ecc45660245849e2b150acc5ef7097bc1914fbdfc156cb6e7523d10c8c1258b98594ae421e7f7814793b07ca5c648d3c6728fdd80f6ac8b1b6a21ed610e1607c8fdc9474a1432e83f05
Shared key decrypted successfully:
Shared= 13df8d34ef39ee02835e47725ebc710a3f877be2cac9bb2917a267175ca5f7bc