Skip to content

Instantly share code, notes, and snippets.

from fractions import Fraction
def egcd(a, b):
x,y, u,v = 0,1, 1,0
while a != 0:
q, r = b//a, b%a
m, n = x-u*q, y-v*q
b,a, x,y, u,v = a,r, u,v, m,n
gcd = b
return gcd, x, y
def egcd(a, b):
x,y, u,v = 0,1, 1,0
while a != 0:
q, r = b//a, b%a
m, n = x-u*q, y-v*q
b,a, x,y, u,v = a,r, u,v, m,n
gcd = b
return gcd, x, y
def decrypt(p, q, e, ct):
import fractions
def egcd(a, b):
x,y, u,v = 0,1, 1,0
while a != 0:
q, r = b//a, b%a
m, n = x-u*q, y-v*q
b,a, x,y, u,v = a,r, u,v, m,n
gcd = b
return gcd, x, y
import math
def egcd(a, b):
x,y, u,v = 0,1, 1,0
while a != 0:
q, r = b//a, b%a
m, n = x-u*q, y-v*q
b,a, x,y, u,v = a,r, u,v, m,n
gcd = b
return gcd, x, y
@sonickun
sonickun / chacha_tmctf.py
Created April 3, 2016 07:59
Trend Micro CTF ChaCha
def plus(x, y):
return (x + y) & 0xffffffff
def rotate(x, n):
y = x << n
z = x >> (32 - n)
return (y | z) & 0xffffffff
def make_array(s):
v = [s[i: i+2] for i in range(0, len(s), 2)]
@sonickun
sonickun / googlectf_wolf_spider.py
Last active May 7, 2016 04:54
Google CTF 2016 Wolf Spider
import requests
def make_blocks(s):
return [s[i:i+16] for i in xrange(0, len(s), 16)]
def xor(a, b):
return "".join([chr(ord(a[i]) ^ ord(b[i % len(b)])) for i in xrange(len(a))])
def decrypt(target):
prefix = "578ae51334b467aa99092c00e57ff977168f922a.4f3a3680afa88ae056e5c56fb67544ff03e5b64f4174f1752ab93ac24a78257fc173ab2f339436453e9163265fd23707"
@sonickun
sonickun / bring_the_noise.py
Last active June 22, 2016 15:58
Insomni’Hack Teaser CTF: Bring The Noise (Crypto 200)
import socket
import hashlib
import itertools
def hash_solve(s):
charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for i in range(5):
for j in itertools.product(charset, repeat=i):
test = "".join(j)
h = hashlib.md5(test).hexdigest().strip()
@sonickun
sonickun / decrypt.py
Last active July 6, 2016 09:15
Sharif University CTF 2016: High-speed RSA Keygen
# Sharif University CTF 2016: High-speed RSA Keygen [Part2]
def egcd(a, b):
if (a == 0):
return [b, 0, 1]
else:
g, y, x = egcd(b % a, a)
return [g, x - (b // a) * y, y]
def modInv(a, m):
@sonickun
sonickun / solver.py
Created June 29, 2016 05:29
0CTF 2016: RSA? (Crypto 2pt)
# -*- coding:utf-8 -*-
# 0CTF 2016: RSA? (Crypto 2pt)
'''
# openssl rsa -in public.pem -pubin -text -modulus
Public-Key: (314 bit)
Modulus:
02:ca:a9:c0:9d:c1:06:1e:50:7e:5b:7f:39:dd:e3:
45:5f:cf:e1:27:a2:c6:9b:62:1c:83:fd:9d:3d:3e:
aa:3a:ac:42:14:7c:d7:18:8c:53
@sonickun
sonickun / solver.py
Created July 6, 2016 09:13
SECCON CTF 2015 Online Quals Find the prime numbers (Crypto 200pt)
# SECCON CTF 2015 Online Quals Find the prime numbers (Crypto 200pt)
def egcd(a, b):
if (a == 0):
return [b, 0, 1]
else:
g, y, x = egcd(b % a, a)
return [g, x - (b // a) * y, y]
# Modular multiplicative inverse