Merge pull request #1751 from stratospher/2025_01_DLEQ_G

This commit is contained in:
Jon Atack 2025-02-01 10:34:42 -06:00 committed by GitHub
commit 1ddcfcea7a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 25 additions and 16 deletions

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Generate the BIP-DLEQ test vectors (limited to secp256k1 generator right now)."""
"""Generate the BIP-0374 test vectors."""
import csv
import os
import sys
@ -11,7 +11,7 @@ from reference import (
from secp256k1 import G as GENERATOR, GE
NUM_SUCCESS_TEST_VECTORS = 5
NUM_SUCCESS_TEST_VECTORS = 8
DLEQ_TAG_TESTVECTORS_RNG = "BIP0374/testvectors_rng"
FILENAME_GENERATE_PROOF_TEST = os.path.join(sys.path[0], 'test_vectors_generate_proof.csv')
@ -29,9 +29,8 @@ def random_bytes(vector_i, purpose):
def create_test_vector_data(vector_i):
g = random_scalar_int(vector_i, "scalar_g")
assert g < GE.ORDER
assert g > 0
g = random_scalar_int(vector_i, "scalar_g") if vector_i < 5 else 1
assert 0 < g < GE.ORDER
G = g * GENERATOR
assert not G.infinity
a = random_scalar_int(vector_i, "scalar_a")
@ -41,7 +40,7 @@ def create_test_vector_data(vector_i):
C = a * B # shared secret
assert C.to_bytes_compressed() == (b * A).to_bytes_compressed()
auxrand = random_bytes(vector_i, "auxrand")
msg = random_bytes(vector_i, "message")
msg = random_bytes(vector_i, "message") if vector_i != 5 else None
proof = dleq_generate_proof(a, B, auxrand, G=G, m=msg)
return (G, a, A, b, B, C, auxrand, msg, proof)
@ -57,6 +56,7 @@ def gen_all_generate_proof_vectors(f):
for i in range(NUM_SUCCESS_TEST_VECTORS):
G, a, A, b, B, C, auxrand, msg, proof = TEST_VECTOR_DATA[i]
assert proof is not None and len(proof) == 64
if msg is None: msg = b""
writer.writerow((idx, G.to_bytes_compressed().hex(), f"{a:064x}", B.to_bytes_compressed().hex(), auxrand.hex(), msg.hex(), proof.hex(), f"Success case {i+1}"))
idx += 1
@ -87,6 +87,7 @@ def gen_all_verify_proof_vectors(f):
for i in range(NUM_SUCCESS_TEST_VECTORS):
G, _, A, _, B, C, _, msg, proof = TEST_VECTOR_DATA[i]
assert dleq_verify_proof(A, B, C, proof, G=G, m=msg)
if msg is None: msg = b""
writer.writerow((idx, G.to_bytes_compressed().hex(), A.to_bytes_compressed().hex(), B.to_bytes_compressed().hex(),
C.to_bytes_compressed().hex(), proof.hex(), msg.hex(), "TRUE", f"Success case {i+1}"))
idx += 1

View File

@ -29,6 +29,7 @@ with open(FILENAME_GENERATE_PROOF_TEST, newline='') as csvfile:
B = GE() if point_B_hex == 'INFINITY' else GE.from_bytes(bytes.fromhex(point_B_hex))
aux_rand = bytes.fromhex(aux_rand_hex)
msg = bytes.fromhex(msg_hex)
if msg == b"": msg = None
print('Test vector', ('#' + index).rjust(3, ' ') + ':' + f' ({comment})')
expected_result = None if result_str == 'INVALID' else bytes.fromhex(result_str)
actual_result = dleq_generate_proof(a, B, aux_rand, G=G, m=msg)
@ -56,6 +57,7 @@ with open(FILENAME_VERIFY_PROOF_TEST, newline='') as csvfile:
C = GE() if point_C_hex == 'INFINITY' else GE.from_bytes(bytes.fromhex(point_C_hex))
proof = bytes.fromhex(proof_hex)
msg = bytes.fromhex(msg_hex)
if msg == b"": msg = None
print('Test vector', ('#' + index).rjust(3, ' ') + ':' + f' ({comment})')
expected_result = result_success == 'TRUE'
actual_result = dleq_verify_proof(A, B, C, proof, G=G, m=msg)

View File

@ -4,6 +4,9 @@ index,point_G,scalar_a,point_B,auxrand_r,message,result_proof,comment
2,0222db2054fef98344352a13bc0304a71da7b5e9a2f7fd1f3c9f3519a3d9377fb7,589476913e763b60d5c2a5bfb39230ec669caac1b44312e9bcd2d3f4473abfef,03bc7a19970c812118f74ba659b491e00dade6096ff62d1afe032a92b8671498ed,4da1c4c4b0f9db4eb6b2e5cb648d7e8a0aa35aa5c4ec4d07f096e0e03deca366,66503623468a78cfcef47888c85e0010ecd897f441d263448bfc7a89b882ab20,a9e3603f2cb11c74dba678448cc5bc6ae6de372502392d1914e976229cb06c401f12bd03dbab57c2cd1a209adb51c14387f82e938a8a9d363fc8dc1e76456dac,Success case 3
3,03dfa65bd3711eba75fa1996a0c1d95a4419bd835304152d9aa6efa590670f2af6,24d0ed3fc189eb1b64e5dc9dd4af0f3c8c143b0c79cb5fcca0dfa08a11cc60a1,03b51081323d38fb0b75f0c1ec6755fdb79c239c327ca11269fe68ba8a878b704e,31a68d6db27f6404bbceff646ff1b26a34704a0105a36c5a845d0257cea19c9b,f2996b3766d123a949e65541baf1d89d446360d05af51bd93f0445d8c472c952,0dbd32f1ecd950987bda4b163e5ea536e4e43e8e2f26bcf235ff799c12089f21d5a27f90f144aaaddf5a05390c44442aa13d9fbfec8cd53d3659942617ce5cb4,Success case 4
4,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,73fffa796edb72d111b5e0bbda1608f098ac98120796f971b438691e1bfb7b96,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,Success case 5
5,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,0000000000000000000000000000000000000000000000000000000000000000,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,INVALID,Failure case (a=0)
6,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,INVALID,Failure case (a=N [group order])
7,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,73fffa796edb72d111b5e0bbda1608f098ac98120796f971b438691e1bfb7b96,INFINITY,1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,INVALID,Failure case (B is point at infinity)
5,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,c08ca8e0bb59769fc6a4e078456284e00ea34f65add988c246e1bba85824ccdc,034bccb1c570ac1f3bc42d61fe35de605b99626501ccb20297e1acbbf2d7152aa1,c8d7056abd4726eb5a0f198740af14d6c1f0c16e5d7a37eaec621b661e669ac4,,503562d36910cd2d61a4d07c8ff680265c713e63dde0dcb88e6ea3c58597bdc05b86db9af95eccc475ce2177f941c118fefed20227d4ce8ce9557cb008758de6,Success case 6
6,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,8e641ba6bf7f64eec76005a29585a5035376375f33e331215aedfe03b8e80e7a,0231c64e3efa506fdad6aad0f6084d5f6739de7f448d7e66f9d22f842638f41d60,02a7b2e2f5a5e9b1078dbb160502a32491fe80a091e91dd92cf77b0b7d90970f,35841ca532846e1cdd23a3d107824343584f88eff580929469865eae8355ee3c,50ae4ff80a6b339253f69f5eb6fd9d013dc9a02aef001cec08c48638c72bee5a137d150e0bb4de81b67582a992910d94df80d2f537491270026a90b56ec2b128,Success case 7
7,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,cfb9a7ecc49bea4f2e2ee34c38a6f48b5cd5bd06f4e4d4ffb45905b3d26db842,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,Success case 8
8,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,0000000000000000000000000000000000000000000000000000000000000000,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,INVALID,Failure case (a=0)
9,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,INVALID,Failure case (a=N [group order])
10,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,cfb9a7ecc49bea4f2e2ee34c38a6f48b5cd5bd06f4e4d4ffb45905b3d26db842,INFINITY,d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,INVALID,Failure case (B is point at infinity)

1 index point_G scalar_a point_B auxrand_r message result_proof comment
4 2 0222db2054fef98344352a13bc0304a71da7b5e9a2f7fd1f3c9f3519a3d9377fb7 589476913e763b60d5c2a5bfb39230ec669caac1b44312e9bcd2d3f4473abfef 03bc7a19970c812118f74ba659b491e00dade6096ff62d1afe032a92b8671498ed 4da1c4c4b0f9db4eb6b2e5cb648d7e8a0aa35aa5c4ec4d07f096e0e03deca366 66503623468a78cfcef47888c85e0010ecd897f441d263448bfc7a89b882ab20 a9e3603f2cb11c74dba678448cc5bc6ae6de372502392d1914e976229cb06c401f12bd03dbab57c2cd1a209adb51c14387f82e938a8a9d363fc8dc1e76456dac Success case 3
5 3 03dfa65bd3711eba75fa1996a0c1d95a4419bd835304152d9aa6efa590670f2af6 24d0ed3fc189eb1b64e5dc9dd4af0f3c8c143b0c79cb5fcca0dfa08a11cc60a1 03b51081323d38fb0b75f0c1ec6755fdb79c239c327ca11269fe68ba8a878b704e 31a68d6db27f6404bbceff646ff1b26a34704a0105a36c5a845d0257cea19c9b f2996b3766d123a949e65541baf1d89d446360d05af51bd93f0445d8c472c952 0dbd32f1ecd950987bda4b163e5ea536e4e43e8e2f26bcf235ff799c12089f21d5a27f90f144aaaddf5a05390c44442aa13d9fbfec8cd53d3659942617ce5cb4 Success case 4
6 4 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 73fffa796edb72d111b5e0bbda1608f098ac98120796f971b438691e1bfb7b96 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d Success case 5
7 5 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0000000000000000000000000000000000000000000000000000000000000000 c08ca8e0bb59769fc6a4e078456284e00ea34f65add988c246e1bba85824ccdc 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 034bccb1c570ac1f3bc42d61fe35de605b99626501ccb20297e1acbbf2d7152aa1 1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162 c8d7056abd4726eb5a0f198740af14d6c1f0c16e5d7a37eaec621b661e669ac4 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 INVALID 503562d36910cd2d61a4d07c8ff680265c713e63dde0dcb88e6ea3c58597bdc05b86db9af95eccc475ce2177f941c118fefed20227d4ce8ce9557cb008758de6 Failure case (a=0) Success case 6
8 6 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 8e641ba6bf7f64eec76005a29585a5035376375f33e331215aedfe03b8e80e7a 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 0231c64e3efa506fdad6aad0f6084d5f6739de7f448d7e66f9d22f842638f41d60 1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162 02a7b2e2f5a5e9b1078dbb160502a32491fe80a091e91dd92cf77b0b7d90970f 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 35841ca532846e1cdd23a3d107824343584f88eff580929469865eae8355ee3c INVALID 50ae4ff80a6b339253f69f5eb6fd9d013dc9a02aef001cec08c48638c72bee5a137d150e0bb4de81b67582a992910d94df80d2f537491270026a90b56ec2b128 Failure case (a=N [group order]) Success case 7
9 7 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 73fffa796edb72d111b5e0bbda1608f098ac98120796f971b438691e1bfb7b96 cfb9a7ecc49bea4f2e2ee34c38a6f48b5cd5bd06f4e4d4ffb45905b3d26db842 INFINITY 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 1cdfb4d7cce5e50783299896a471a44e6aa2c5e2100d6c37987c6b40503c6162 d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 INVALID bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 Failure case (B is point at infinity) Success case 8
10 8 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0000000000000000000000000000000000000000000000000000000000000000 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 INVALID Failure case (a=0)
11 9 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 INVALID Failure case (a=N [group order])
12 10 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 cfb9a7ecc49bea4f2e2ee34c38a6f48b5cd5bd06f4e4d4ffb45905b3d26db842 INFINITY d38466b77484154a3fcb3151094c1c8a845c73a3c036b3a8ebffd8ef62c9047f 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 INVALID Failure case (B is point at infinity)

View File

@ -4,10 +4,13 @@ index,point_G,point_A,point_B,point_C,proof,message,result_success,comment
2,0222db2054fef98344352a13bc0304a71da7b5e9a2f7fd1f3c9f3519a3d9377fb7,026aa26fcd626f8f55295859e9f8dd1f103149dd64d77c2bbba1bcf33bb37ebaa2,03bc7a19970c812118f74ba659b491e00dade6096ff62d1afe032a92b8671498ed,035628d1a69910daef614c7cae68d71ece55c5908af2360629e25c1b7de21eeb4b,a9e3603f2cb11c74dba678448cc5bc6ae6de372502392d1914e976229cb06c401f12bd03dbab57c2cd1a209adb51c14387f82e938a8a9d363fc8dc1e76456dac,66503623468a78cfcef47888c85e0010ecd897f441d263448bfc7a89b882ab20,TRUE,Success case 3
3,03dfa65bd3711eba75fa1996a0c1d95a4419bd835304152d9aa6efa590670f2af6,031bf61ba89009ee1266c9003a72e8e07d77877678ccda7f15325aadcd64ed186b,03b51081323d38fb0b75f0c1ec6755fdb79c239c327ca11269fe68ba8a878b704e,02d1b1f37a80217ba73785babfa63251052775f9d3ca65060054033288b7a3f66b,0dbd32f1ecd950987bda4b163e5ea536e4e43e8e2f26bcf235ff799c12089f21d5a27f90f144aaaddf5a05390c44442aa13d9fbfec8cd53d3659942617ce5cb4,f2996b3766d123a949e65541baf1d89d446360d05af51bd93f0445d8c472c952,TRUE,Success case 4
4,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,TRUE,Success case 5
5,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Swapped points case 1
6,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Swapped points case 2
7,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Swapped points case 3
8,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Swapped points case 4
9,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Swapped points case 5
10,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,5bd36d18c6e75e50f1fbbaa7596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Tampered proof (random bit-flip)
11,02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7,0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e,03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01,03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472,5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d,0ceb45f560f2cf6b76a139f7e2c47c5ca6d26d6a3a210e59f197413bbec040b4,FALSE,Tampered message (random bit-flip)
5,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,02637b2c3ea8ca80b9caecc50f4134c86ae9cf7a269133e7afc71f30e3a3cda60c,034bccb1c570ac1f3bc42d61fe35de605b99626501ccb20297e1acbbf2d7152aa1,0285b826c8dd175805901906b6c9b4140a30cbcc94c6e7dcf36476038bf90d4718,503562d36910cd2d61a4d07c8ff680265c713e63dde0dcb88e6ea3c58597bdc05b86db9af95eccc475ce2177f941c118fefed20227d4ce8ce9557cb008758de6,,TRUE,Success case 6
6,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,02983a72b4cb44d4322641a7b2001900cd6ae0908a610546c73ed126accdba0514,0231c64e3efa506fdad6aad0f6084d5f6739de7f448d7e66f9d22f842638f41d60,03af1bc14b384eda28398df6a7900e567c5b6f6613cafce5027b98be015286f71b,50ae4ff80a6b339253f69f5eb6fd9d013dc9a02aef001cec08c48638c72bee5a137d150e0bb4de81b67582a992910d94df80d2f537491270026a90b56ec2b128,35841ca532846e1cdd23a3d107824343584f88eff580929469865eae8355ee3c,TRUE,Success case 7
7,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,TRUE,Success case 8
8,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 1
9,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 2
10,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 3
11,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 4
12,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Swapped points case 5
13,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,bce6dfda12af1b86c1cf6c1ed627053224b6c78575eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794,FALSE,Tampered proof (random bit-flip)
14,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9,021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608,03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a,bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939,22616bb5fb2d7c68270f305122f2a09e83323984b1c9a04e285119fb606ac794,FALSE,Tampered message (random bit-flip)

1 index point_G point_A point_B point_C proof message result_success comment
4 2 0222db2054fef98344352a13bc0304a71da7b5e9a2f7fd1f3c9f3519a3d9377fb7 026aa26fcd626f8f55295859e9f8dd1f103149dd64d77c2bbba1bcf33bb37ebaa2 03bc7a19970c812118f74ba659b491e00dade6096ff62d1afe032a92b8671498ed 035628d1a69910daef614c7cae68d71ece55c5908af2360629e25c1b7de21eeb4b a9e3603f2cb11c74dba678448cc5bc6ae6de372502392d1914e976229cb06c401f12bd03dbab57c2cd1a209adb51c14387f82e938a8a9d363fc8dc1e76456dac 66503623468a78cfcef47888c85e0010ecd897f441d263448bfc7a89b882ab20 TRUE Success case 3
5 3 03dfa65bd3711eba75fa1996a0c1d95a4419bd835304152d9aa6efa590670f2af6 031bf61ba89009ee1266c9003a72e8e07d77877678ccda7f15325aadcd64ed186b 03b51081323d38fb0b75f0c1ec6755fdb79c239c327ca11269fe68ba8a878b704e 02d1b1f37a80217ba73785babfa63251052775f9d3ca65060054033288b7a3f66b 0dbd32f1ecd950987bda4b163e5ea536e4e43e8e2f26bcf235ff799c12089f21d5a27f90f144aaaddf5a05390c44442aa13d9fbfec8cd53d3659942617ce5cb4 f2996b3766d123a949e65541baf1d89d446360d05af51bd93f0445d8c472c952 TRUE Success case 4
6 4 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 TRUE Success case 5
7 5 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 02637b2c3ea8ca80b9caecc50f4134c86ae9cf7a269133e7afc71f30e3a3cda60c 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 034bccb1c570ac1f3bc42d61fe35de605b99626501ccb20297e1acbbf2d7152aa1 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 0285b826c8dd175805901906b6c9b4140a30cbcc94c6e7dcf36476038bf90d4718 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d 503562d36910cd2d61a4d07c8ff680265c713e63dde0dcb88e6ea3c58597bdc05b86db9af95eccc475ce2177f941c118fefed20227d4ce8ce9557cb008758de6 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 FALSE TRUE Swapped points case 1 Success case 6
8 6 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 02983a72b4cb44d4322641a7b2001900cd6ae0908a610546c73ed126accdba0514 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 0231c64e3efa506fdad6aad0f6084d5f6739de7f448d7e66f9d22f842638f41d60 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 03af1bc14b384eda28398df6a7900e567c5b6f6613cafce5027b98be015286f71b 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d 50ae4ff80a6b339253f69f5eb6fd9d013dc9a02aef001cec08c48638c72bee5a137d150e0bb4de81b67582a992910d94df80d2f537491270026a90b56ec2b128 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 35841ca532846e1cdd23a3d107824343584f88eff580929469865eae8355ee3c FALSE TRUE Swapped points case 2 Success case 7
9 7 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE TRUE Swapped points case 3 Success case 8
10 8 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Swapped points case 4 Swapped points case 1
11 9 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Swapped points case 5 Swapped points case 2
12 10 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 5bd36d18c6e75e50f1fbbaa7596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 0ceb45f560f2cf6b76a139ffe2c47c5ca6d26d6a3a210e59f197413bbec040b4 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Tampered proof (random bit-flip) Swapped points case 3
13 11 02b15de5a3aefcfe2473916c76e619b5800ac7250ef93a9e6e0dd1505104fc58e7 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0296c8e00dda60bb5565b77371ff913091978646b58ccf218bc591f68a75232e6e 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 03a4692be176ff89a972de9cc407083096847b950d1cae72b947665a3d5f4c2f01 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 03a7a7f9527fd387c2b2ce0c76669d646c78a3b470a4b34d3a2dabafc8505ef472 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 5bd36d18c6e75e50f1fbba27596591ef3506b841ce65c8f3489fa1b31e074f0f511400ad72a06b023727809c6c16c78c5d53ff14e848184462cd357660894d3d bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 0ceb45f560f2cf6b76a139f7e2c47c5ca6d26d6a3a210e59f197413bbec040b4 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Tampered message (random bit-flip) Swapped points case 4
14 12 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Swapped points case 5
15 13 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a bce6dfda12af1b86c1cf6c1ed627053224b6c78575eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 22616bb5fb2d7c68270f305122f2a09e833239c4b1c9a04e285119fb606ac794 FALSE Tampered proof (random bit-flip)
16 14 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 03611410561c35dae13135e4ad8094baac9bbcf2f4e18498181a8ff8a6d43be9d9 021cb81121a00f89769903305a367ad3cc02d5b402b12c026e06ac94bde28cd608 03d9a98624c0c74fc7eebd39ed84175f80d03c774908e75ca737a0745d1c64e20a bce6dfda12af1b86c1cf6c1ed627053224b6c78175eddadbe01ead836bb7772101cb330a91ef06a3f63f8254c1ac5b76e312d9dada45841ea6a9b44373819939 22616bb5fb2d7c68270f305122f2a09e83323984b1c9a04e285119fb606ac794 FALSE Tampered message (random bit-flip)