I hereby claim:
- I am grocid on github.
- I am grocid (https://keybase.io/grocid) on keybase.
- I have a public key ASBq9r-CvBBtXW9zYFXv2x1lndNeNYboHqoPaOjoqaYnOwo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
-----BEGIN PGP SIGNED MESSAGE----- | |
Hash: SHA512 | |
- -----BEGIN CERTIFICATE----- | |
MIIFKDCCBBCgAwIBAgIIAfu9ABctn2QwDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNV | |
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRow | |
GAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UECxMkaHR0cDovL2NlcnRz | |
LmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQDEypHbyBEYWRkeSBTZWN1 | |
cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwHhcNMTUwOTA2MTY1MjQxWhcN | |
MTgxMDE0MTEyOTI2WjA9MSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0 |
from multiprocessing import Process, Lock | |
from grocid.ecc import hensellift | |
NUM_THREADS = 28 # lets make some use of my 2695 ;-) | |
def smart_attack(P, Q, p, prec): | |
E = P.curve() | |
Eqq = E.change_ring(QQ) | |
Eqp = Eqq.change_ring(Qp(p, prec)) | |
P_Qp = hensellift(P, p, prec) # just normal hensel lift | |
Q_Qp = hensellift(Q, p, prec) |
n = 805467500635696403604126524373650578882729068725582344971555936471728279008969317394226798274039587275908735628164913963756789131471531490012281262137708844664619411648776174742900969650281132608104486439462068493207388096754400356209191212924158917441463852311090597438686723680422989566039830705971272945580630621308622704812919416445637277433384864510484266136345300166188170847768250622904194100556098235897898548354386415341541887443486684297114240486341073977172459860420916964212739802004276614553755113124726331629822694410052832980560107812738167277181748569891715410067156205497753620739994002924247168259596220654379789860120944816884358006621854492232604827642867109476922149510767118658715534476782931763110787389666428593557178061972898056782926023179701767472969849999844288795597293792471883445525249025377326859655523448211020675915933552601140243332965620235850177872856558184848182439374292376522160931072677877590262080551636962148104050583711183119856867201924407132152091888936970437318064654447142 |
### Keybase proof | |
I hereby claim: | |
* I am grocid on github. | |
* I am grocid (https://keybase.io/grocid) on keybase. | |
* I have a public key whose fingerprint is 0DB1 946E 02A0 F31A 10F7 1CA5 2611 743E 9084 38BB | |
To claim this, I am signing this object: |
# https://github.com/mimoo/RSA-and-LLL-attacks/blob/master/coppersmith.sage | |
length_N = 2048 # size of the modulus | |
Kbits = 8*30 # size of the root | |
e = 7 | |
n = 17128253199894018356121352721813384810490073007249104944917185889284458477972764510189878223087898232323989051389196334498213309997968573900259909767276527308390944053199244416237135384010089907191097552095732629493007104656712229046898881071816439581052398074559706748835744846278126604658780761748930367026870270721107608579738966885369180506986732756678936607083412698682076417247965156736007257325263626024309893180725648019322055002425052139312236077136949139163190290260407572716784894091812931974782646175099495402465049210759703810960600180113684855659892187079557217272929145318759442388534032426335197492209 | |
# message with X:s replaced with \x00 | |
m2 = 1151872456563255756988757297902826422129305487484630920652043694187082162911556659892050210474688381420250518430998359312196354764596383582917689440249772602018397427821248590885298739719055223407805 |
from Crypto.PublicKey import RSA | |
from base64 import b64decode | |
from grocid import wiener | |
key1 = """MIIBGjANBgkqhkiG9w0BAQEFAAOCAQcAMIIBAgKBgQMVTKLNRDmtl+A4elFMl78h | |
DPdfO88mJZRoO7U85plIEt9qGVXET58S6ZwqaYy5fw5H6OjRSKfzRy0rTeJUEK3y | |
HkmLubRmWgxm2NJm/yBjfqzycY2aWcHEo88CLwvyjVOJ1YZB892ZTvL/+ktw09OY | |
6UhCAPh3kwYQE6jtByzXfwJ8GhtIw6bOSmr248t4xV+sf1kpb0G7EeWKMB+40vPE | |
frsV+j5o6fd/jFI5O+IiF13kp7xV2Z1RgBtaHb5y3W7/rlI586RI0+nvWqHJVF4a | |
OEkYm+Y8Sf47lJJU1CDZgXZ3p9tK0fP135mzJX3WBMVyzuJeQ8JpQ8/RZJGAOw==""" |
def get_a(alpha, G, j): | |
i = GF.fetch_int(1) | |
k = G.nrows() | |
if k <= j: | |
return i / (i - (i/alpha) * G[0][j]/G[1][j] ) | |
else: | |
return i / (i - (i/alpha) * (G[j][k+1]/G[1][k+1] - G[j][k]/G[1][k]) \ | |
/ (G[j][k+1]/G[0][k+1] - G[j][k]/G[0][k])) | |
def crack(A): |
// | |
// Parallel merge sort in Golang | |
// | |
// (c) C. Löndahl 2018 | |
// | |
package bitonic | |
import "log" |
from Crypto.Cipher import AES | |
def crc16(data): | |
""" | |
Calculate an ISO13239 CRC checksum of the input buffer (bytestring). | |
""" | |
m_crc = 0xffff | |
for this in data: | |
m_crc ^= ord(this) | |
for _ in xrange(8): |