forked from fel-communication-security/tls
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck_dsa.py
23 lines (16 loc) · 1.35 KB
/
check_dsa.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# custom check script for Task 9
import hashlib
from solutions.dsa_attack import recover_private_key
from solutions.utils import txt2bin
p = 0x800000000000000089E1855218A0E7DAC38136FFAFA72EDA7859F2171E25E65EAC698C1702578B07DC2A1076DA241C76C62D374D8389EA5AEFFD3226A0530CC565F3BF6B50929139EBEAC04F48C3C84AFB796D61E5A4F9A8FDA812AB59494232C7D2B4DEB50AA18EE9E132BFA85AC4374D7F9091ABC3D015EFC871A584471BB1
q = 0xF4F47F05794B256174BBA6E9B396A7707E563C5B
g = 0x5958C9D3898B224B12672C0B98E06C60DF923CB8BC999D119458FEF538B8FA4046C8DB53039DB620C094C9FA077EF389B5322A559946A71903F990F1F7E0E025E2D7F7CF494AFF1A0470F5B64C36B625A097F1651FE775323556FE00B3608C887892878480E99041BE601A62166CA6894BDD41A7054EC89F756BA9FC95302291
y = 0x33FF14F19FA9CF09B28747CDFE97252C4BE46C9C4C2EE68A2231CB4B262DD839962EFF659BD30F706E6CB2470117F211EADFADEAC267BC4FECDE6D4C058CDF5D7B8C75BA663CE7A87D22B171413B8D3B6CEEE31B139051C385A06B8B2E2E587A15E87381C93F866BF7B122FDA5C1F44D20480137906ED6026ED96C3793FDE263
r = 548099063082341131477253921760299949438196259240
s = 857042759984254168557880549501802188789837994940
H = 0x2BC546792A7624FB6E972B0FB85081FD20A8A28
private_key_hash = 0x8F96763DEA794B79094EEF4717CEB5F10631D634
private_key = recover_private_key((p, q, g), (r, s), H, y)
pk_hex = hex(private_key)[2:]
fingerprint = hashlib.sha1(txt2bin(pk_hex))
assert fingerprint.hexdigest() == hex(private_key_hash)[2:]