Using Tari Project's crypto::ristretto to create and verify signatures on a RAID_ID.
Note: e_verifier_hash
may be equal to e_verifier_mod_n
as shown below, but this is not guaranteed.
The Scalar struct holds an integer s < 2^{255} which represents an element of Z modulo the group order n.
Owner has RAID_ID
- RAID_ID (from DNS TXT record: "RYqMMuSmBZFQkgp"
Owner sign RAID_ID
- Secret Key (re-used): "29bb078b7b2b01e62dd684cd20742b510ece6175fa58d7a79cceeefe5297a804"
- Public Key (P): "ca469346d7643336c19155fdf5c6500a5232525ce4eba7e4db757639159e9861"
- Secret Nonce (new): "ba557a86b110b3ef17a86d82d4cbbdcb0b350db40c5a92b7ed67427d0fd18f0f"
- Public Nonce (R): "aec9ef137994f1750bb53387116830b691b871e4741387d1fa277b7b6c0e3462"
- Challenge: e_signer_hash=H(R|P|RAID_ID) "325755fffeaa3021c46bddc04bbc4e2fd584a30d5caeed311c7e22eb19b72104"
- RAID_ID Signature (s): "23f2363a2302426ada8a5c004d6b3e76f63a78d230c7d6aaccb010adbcf9af0b"
Verifier check signature, using (s,R,P,RAID_ID) from DNS TXT record
- RAID_ID Pub Sig (S=s·G): "fc0167f922a640d4e2f989b8d1374ac1f04d8e13a3083d3ff5907ce92763f26f"
- Challenge: e_verifier_hash=H(R|P|RAID_ID) "325755fffeaa3021c46bddc04bbc4e2fd584a30d5caeed311c7e22eb19b72104"
- Challenge: e_verifier_mod_n: "325755fffeaa3021c46bddc04bbc4e2fd584a30d5caeed311c7e22eb19b72104"
- Assert: s·G = R + e_verifier_mod_n·P
- RAID_ID Signature is valid!
Additional asserts, for testing
- Assert: e_signer_hash = e_verifier_hash
- Recalculation of hashed challenge is valid!
- Assert: R + e_signer_mod_n·P = R + e_verifier_mod_n·P
- Equation is valid!
Owner has RAID_ID
- RAID_ID (from DNS TXT record: "RYqMMuSmBZFQkgp"
Owner sign RAID_ID
- Secret Key (re-used): "29bb078b7b2b01e62dd684cd20742b510ece6175fa58d7a79cceeefe5297a804"
- Public Key (P): "ca469346d7643336c19155fdf5c6500a5232525ce4eba7e4db757639159e9861"
- Secret Nonce (new): "66851576f7f858827a87d671dc0ef678e98ec5f58d6d6e36b8b522582be4a603"
- Public Nonce (R): "36bea71e04ba9fe3ad75d806046117d86edbc4d285249176159a11f40caeeb5c"
- Challenge: e_signer_hash=H(R|P|RAID_ID) "f6a449fa14f1ab9c9027da02b9814ce986cadae0174207d8301274c898074895"
- RAID_ID Signature (s): "f62c78a058705cab6beae5a61fe68976445944e09fc358f75cd808db74acff0e"
Verifier check signature, using (s,R,P,RAID_ID) from DNS TXT record
- RAID_ID Pub Sig (S=s·G): "608045c0cfe40744dcd42a7eda82fd9e69c969ca33224f5a043457aea2aead59"
- Challenge: e_verifier_hash=H(R|P|RAID_ID) "f6a449fa14f1ab9c9027da02b9814ce986cadae0174207d8301274c898074895"
- Challenge: e_verifier_mod_n: "a131a5b52775068407a42548e5b8752d86cadae0174207d8301274c898074805"
- Assert: s·G = R + e_verifier_mod_n·P
- RAID_ID Signature is valid!
Additional asserts, for testing
- Assert: e_signer_hash = e_verifier_hash
- Recalculation of hashed challenge is valid!
- Assert: R + e_signer_mod_n·P = R + e_verifier_mod_n·P
- Equation is valid!