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): |