[wrong][spam] Cracking PGP

Karl gmkarl at gmail.com
Fri Jun 18 12:18:18 PDT 2021


The libgcrypt rsa code is mostly visible at
https://dev.gnupg.org/source/libgcrypt/browse/master/cipher/rsa.c .  (I had
to work around some network issues reaching git.gnupg.org, and found
dev.gnupg.org which works for me.)

The operations of use start around line 909.  Here's a link to that line:
https://dev.gnupg.org/source/libgcrypt/browse/master/cipher/rsa.c$909

This source can also be cloned at https://dev.gnupg.org/source/libgcrypt.git
.  I've cloned it locally.

The basic operations of use are public() and secret().  They basically just
call out to mpi_powm, which is a wrapper for gcry_mpi_powm().  There's a
#define in gcrypt.h, which is a different file generated from gcrypt.h.in .

Before moving off rsa.c, it's notable that:
- public() basically just wraps mpi_powm, using the same structures
- secret() has an additional step to remove leading zeros
- secret() has a special form that might be used when p and q are known
called secret_core_crt()
- there's something else called secret_blinded() that is likely documented
in a header file or elsewhere

Basically, everything of interest is likely in mpi_powm.

I'm taking it slower now, because complexity will increase as we get
deeper.  mpi_powm could look frighteningly new.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/html
Size: 2152 bytes
Desc: not available
URL: <https://lists.cpunks.org/pipermail/cypherpunks/attachments/20210618/8c9f9875/attachment.txt>


More information about the cypherpunks mailing list