Ring Signatures
- https://emn178.github.io/online-tools/keccak_256.html
- Work 1
- Work 2
- Work 3
- Verification
- https://cryptobook.nakov.com/
- https://cryptobook.nakov.com/asymmetric-key-ciphers/elliptic-curve-cryptography-ecc
User 1 | User 2 | User 3 | |
s | 4ed94cda8597f2abdf3e11f36fe34a13ded09ac0eca254bf3944634360bd371c (random) |
1f12d8f51378add4a1871d7280ce9ceb1c69c2ca8eed6c1a6ef98d8e975399d5 (random) |
73d7f826aa294848449d825f8c6d9395568f362bb438e8afa76e8f70b1e74c0c (derived) |
sk | secret, private key277698df7b13c8ba62f63b8d3631bf6f91fa0e07e08283c8b6e3b3f3e4ddf863 |
secret, private keye1a71a7a6b5f3e08334ef123078d31e1a08e57939ec27e6159a7e8c67c09be6e |
secret, private key7abd11589b31e35770fc2d0630658ced413ae5c2d738bcce8fce1986b85ac300 |
Px | 2a927106313734729176cf2f68ea429285380e943d5137156dddf9b1ff51ea4c |
9cfd7dbb556ed5ec4713c5ccabb264306d5aa170a4f624b8b8966b45b1cd9c5e |
5981b97db9c9a59ed52f0e62933183de5b86502074bdaaa3f4adff4f5e69849c |
Py | 01897d4d6b79baffeb237c8e622059203b81d969a29294c1d5f0309fd9aff9cf |
1e74c407b3f9313b93b863718f9893e90e6151d30bae7f4f3ba2a76ae2e67bb3 |
dad70e3ac14fc64b1e5731c6e964c95d62c37400b35eb4048474cd513eaebbab |
c | ea4e0fd9c64c5d912fce8df7de0148bdb437353b5568fa16543f136e065ecd3c |
70a17ea9ac2f366bab2cb5c9fc9139ae45bb4504e97adb9565d279c825e51b73 |
7660d1e589c85a91c5ddf37d51bdb135e7f84ebe0d0661587237a672bfe50a5b |
Message Hash
m = 3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0
Randomly generate k
k = 5a794aa7814549f81b76373e8b286ec1f075b7677a4ee3dc706c835dfb4adc34
k * G = K = (7ebbf3c0316d06b072a86c41419553b5d74bb0791feb8f59004c29c46c6a2bcb, 1eed0df08cc7354e79bb44f050049f446f722523ee1d201685cfac75f7d90606)
hash(m, K) = ea4e0fd9c64c5d912fce8df7de0148bdb437353b5568fa16543f136e065ecd3c
Equation 1
k * G = (si * G) + (ci * Pi)
k * G = (si * G) + (ci * ski * G)
k * G = (si + ci * ski) * G
k = si + ci * ski
si = k — ci * ski
k = 5a794aa7814549f81b76373e8b286ec1f075b7677a4ee3dc706c835dfb4adc34 (c3 * sk3) = e6a15280d71c01afd6d8b4defebadb2b54955e22755e9b6888d0527a1999d169 s3 = 73d7f826aa294848449d825f8c6d9395568f362bb438e8afa76e8f70b1e74c0c s3 + (c3 * sk3) = 5a794aa7814549f81b76373e8b286ec1f075b7677a4ee3dc706c835dfb4adc34 (s3 + (c3 * sk3)) * G = (7ebbf3c0316d06b072a86c41419553b5d74bb0791feb8f59004c29c46c6a2bcb, 1eed0df08cc7354e79bb44f050049f446f722523ee1d201685cfac75f7d90606) s3 * G = (dc88f97c31a90d7a979b266a3956bd2687cf5c0ec1bfbca17fe98d41319f573e, d766e2b4c9d6d57efaa7dea80bf11bf9d95034c3bab6dd89ec5dd569d69ac98c) c3 * P3 = (46999eec9db33620b2699e272f8db878edae32f4385b4deebd2590be8b0234e4, f38f8fc5924ab64531b4dad8640658246068c423eda9da6b1b50247c916c5965) (c3 * sk3) * G = (46999eec9db33620b2699e272f8db878edae32f4385b4deebd2590be8b0234e4, f38f8fc5924ab64531b4dad8640658246068c423eda9da6b1b50247c916c5965) (s3 * G) + (c3 * P3) = (7ebbf3c0316d06b072a86c41419553b5d74bb0791feb8f59004c29c46c6a2bcb, 1eed0df08cc7354e79bb44f050049f446f722523ee1d201685cfac75f7d90606)
Equation 2
cx = Hash(m, (sx-1 * G) + (cx-1 * Px-1))
Template
ci+1 = Hash(m, si * G + ci * Pi) = Hash(m, k * G)
Template
c2 = Hash(m, s1 * G + c1 * P1)
(s1 * G) + (c1 * P1) = (,)
c2 = 70a17ea9ac2f366bab2cb5c9fc9139ae45bb4504e97adb9565d279c825e51b73
c3 = Hash(m, s2 * G + c2 * P2)
(s2 * G) + (c2 * P2) = (174f5006691ff4b6a5d039692577426a0614605bfe64f4b3a27bb06f9f889e04, 0529aa35f8dc4fd953aefc2bcd0ecd9416bb17f9721f7fe1a1206782c90d21b1)
c3 = 7660d1e589c85a91c5ddf37d51bdb135e7f84ebe0d0661587237a672bfe50a5b
c1 = Hash(m, s3 * G + c3 * P3) = Hash(m, k * G)
(s3 * G) + (c3 * P3) = (7ebbf3c0316d06b072a86c41419553b5d74bb0791feb8f59004c29c46c6a2bcb, 1eed0df08cc7354e79bb44f050049f446f722523ee1d201685cfac75f7d90606)
c1 = ea4e0fd9c64c5d912fce8df7de0148bdb437353b5568fa16543f136e065ecd3c