I hereby claim:
- I am jack4818 on github.
- I am jack4818 (https://keybase.io/jack4818) on keybase.
- I have a public key ASCvf5k_zyIHBXblLj1ehKcdgYbB5pDXCno4WJFMy2vHXwo
To claim this, I am signing this object:
sage -t --long --random-seed=286735480429121101562228604801325644303 src/sage/modular/arithgroup/congroup_gammaH.py | |
********************************************************************** | |
File "src/sage/modular/arithgroup/congroup_gammaH.py", line 200, in sage.modular.arithgroup.congroup_gammaH.GammaH_class | |
Failed example: | |
GammaH(20, [9]).dimension_cusp_forms(1) | |
Exception raised: | |
Traceback (most recent call last): | |
File "sage/misc/cachefunc.pyx", line 1007, in sage.misc.cachefunc.CachedFunction.__call__ | |
return self.cache[k] | |
KeyError: ((Congruence Subgroup Gamma_H(20) with H generated by [9],), ()) |
""" | |
This gist is a minimal example showing that the KAT data for Dilithiuim | |
does not seem to match the specification. | |
KAT data was downloaded from: | |
https://pq-crystals.org/dilithium/data/dilithium-submission-nist-round3.zip | |
On Friday the 16th of September, 2022 | |
We consider here the first set of data for Dilithium2 |
from fastecdsa.curve import P256 | |
from fastecdsa.point import Point | |
from Crypto.Util.number import inverse | |
from hashlib import sha256 | |
# Generator and curve order | |
G, q = P256.G, P256.q | |
# Public key | |
Px = 0x0214c15785655baffd69912ca80332441746322daf99f3a9bfc08852efe24c2f |
""" | |
Written to help twitter user @mukesh_tiwari | |
understand | |
https://asecuritysite.com/zero/ped | |
This implementation however is broken, as | |
q is not a prime... | |
Below is showing how we can sign a message m2 which |
from Crypto.Util.number import isPrime | |
import math | |
import time | |
primes = [] | |
def find_primes(max_val): | |
N = math.ceil(math.sqrt(max_val)) | |
for n in range(0,N,2): | |
p = n**2 + 1 |
# http://www.monnerat.info/publications/anomalous.pdf | |
def anon_prime(m): | |
while True: | |
p = (19*m*(m + 1)) + 5 | |
if is_prime(p): | |
return p | |
m += 1 | |
def find_Hilbert_roots(upper): | |
""" | |
Examples of D s.t. D%4 == 0 | |
and the corresponding roots of | |
the Hilbert Class Polynomial | |
D=4, root=2^6 * 3^3 | |
D=8, root=2^6 * 5^3 | |
D=12, root=0 | |
D=16, root=2^6 * 3^3 |
I hereby claim:
To claim this, I am signing this object: