
Giacomo 🪿
@isogenies
Followers
971
Following
2K
Media
98
Statuses
1K
One half of @CryptoHack__, Cryptography consultant, PhD Black Holes and Supergravity 🚩@0rganizers
Joined February 2020
It works!! . Here's a @sagemath implementation of the SIDH Key Recovery attack of Castryck and Decru. Huge thanks to @oudomphe. Their insights allowed us to directly compute the image of points in the Jacobian through divisors. No Gröbner needed!.
github.com
A SageMath implementation of the Castryck-Decru Key Recovery attack on SIDH - GiacomoPope/Castryck-Decru-SageMath
7
59
180
This week I have been working on some rust code to develop a library for isogeny based cryptography. As a first project, I have implemented SQIsign verification following the round 2 NIST spec.
github.com
Rust library for isogeny-based cryptography. Contribute to GiacomoPope/isogeny_rs development by creating an account on GitHub.
1
4
23
RT @DD_Baumann: I am retiring from teaching GR. Here is the final course material (lecture notes including all problem sets and exams). Hop….
0
309
0
New paper with lots of my friends on computing isogeny-based hash functions using the theta model. Was fun to implement something which benchmarked at the micro rather than millisecond timescale for a change!. 🍄.
eprint.iacr.org
We provide explicit descriptions for radical 2-isogenies in dimensions one, two and three using theta coordinates. These formulas allow us to efficiently navigate in the corresponding isogeny graphs....
1
4
43
RT @BenjWeso: Random walks in number-theoretic cryptology: on Thursday (Aug. 29, 2pm CEST) I'll be defending my "habilitation". I'll presen….
0
9
0
kyber-py and dilithium-py have both been updated to match the finalised FIPS specifications 203 and 204. They also both pass the test vectors supplied by usnistgov/ACVP-Server. I hope these are useful tools to learn PQ crypto 🍄.
github.com
A pure python implementation of ML-KEM (FIPS 203) and CRYSTALS-Kyber - GiacomoPope/kyber-py
0
8
40
RT @asanso: Hey class groups lovers. Back from holiday and started reading ANTS XVI papers. Apart the obvious Selfridge prize winner 'Fast….
0
1
0
We now support the Ascon XOFs too!.
This weekend I made xoflib with my friends Robin Jadoul and @_tritoke. xoflib is a Python package for the Shake extendable-output functions (XOFs) written using pyO3 bindings to the sha3 Rust crate.
0
0
5
This weekend I made xoflib with my friends Robin Jadoul and @_tritoke. xoflib is a Python package for the Shake extendable-output functions (XOFs) written using pyO3 bindings to the sha3 Rust crate.
github.com
A Python package build using pyO3 rust bindings to various extendable-output functions (XOFs): including Ascon, BLAKE3, Shake and TurboShake - GiacomoPope/xoflib
1
3
9
Bug was with my understanding of an optimisation, not with the code or FIPS 204 document. Everything works as expected. Discussion here: .
github.com
The function make_hint() should be very easy: def make_hint(z, r, a, q): r1 = high_bits(r, a, q) v1 = high_bits(r + z, a, q) return int(r1 != v1) but when implemented like this, sometimes signature...
0
0
2
I can't find an implementation which implements following FIPS 204 exactly, but I can find other implementations which seem to need to use the Dilithium version.
github.com
Auditable & minimal JS implementation of public-key post-quantum cryptography - paulmillr/noble-post-quantum
0
0
0
I also have a silly bug somewhere, if you fix it that would be cool!.
github.com
The function make_hint() should be very easy: def make_hint(z, r, a, q): r1 = high_bits(r, a, q) v1 = high_bits(r + z, a, q) return int(r1 != v1) but when implemented like this, sometimes signature...
1
0
0
I implemented ML-DSA following draft FIPS 204 to follow the work earlier this week with ML-KEM. Hopefully this is interesting to people learning about the protocol.
github.com
A pure python implementation of ML-DSA (FIPS 204) and CRYSTALS-Dilithium - GiacomoPope/dilithium-py
1
4
18
I've been looking at my old Dilithium implementation in Python to add an additional file for ML-DSA and I have an old bug I forgot about and can't squish with the make_hint() method. 🐛. Any advice?.
github.com
The function make_hint() should be very easy: def make_hint(z, r, a, q): r1 = high_bits(r, a, q) v1 = high_bits(r + z, a, q) return int(r1 != v1) but when implemented like this, sometimes signature...
1
0
4
The PR for was a bit of a rabbit hole, but we finally removed the 100x slowdown of int(k) * P versus ZZ(k) * P for elliptic curve scalar multiplication.
github.com
There is an annoying problem at the moment. If you compute the scalar multiplication of a point on an elliptic curve over a finite field, a fast call to Pari is made when the scalar is a Sage type,...
0
2
27