Guten Tag,
ein Kumpel hat ein Wort (5stellig) mit RC4 verschlüsselt, wie es bei SSL/TLS gängig gemacht wird. Dazu hat er eine kleine Phyton Bibliothek verwendet:
welches er mit
aufgerufen hat. Die erzeugte Datei ist rund 27GB groß. Nun will er das Wort von mir wissen. Wie kann ich da vorgehen? Ich weiß, dass RC4 verwundbar wird, wenn man oft das gleiche verschlüsselt. Denn dann kann man über Wahrscheinlichkeitsrechnung zum Ergebnis kommen. Eine weitere Möglichkeit wäre, das ganze einfach zu Brute Forcen. Ich habe hier einen i5 2500K @4,4GHz, das dauert zwar etwas, aber dennoch könnte auch das klappen. Jedoch brauche ich dazu ein Script oder ein Programm. Kann mir da bitte jemand behilflich sein?
Mit freundlichen Grüßen
DienerAl
ein Kumpel hat ein Wort (5stellig) mit RC4 verschlüsselt, wie es bei SSL/TLS gängig gemacht wird. Dazu hat er eine kleine Phyton Bibliothek verwendet:
Code:
import random
def gensamples(filename, count, data):
f = open(filename, ’w’)
for i in xrange(count):
a = rc4crypt(data, randkey(16))
f.write(", ".join(a) + "\n")
f.close()
def rc4crypt(data, key):
x = 0
box = range(256)
for i in range(256):
x = (x + box[i] + key[i % len(key)]) % 256
box[i], box[x] = box[x], box[i]
x = 0
y = 0
out = []
for char in data:
x = (x + 1) % 256
y = (y + box[x]) % 256
box[x], box[y] = box[y], box[x]
out.append(str(ord(char) ^ box[(box[x] + box[y]) % 256]))
return out
def randkey(size):
a = []
for i in range(size):
a.append(random.randint(0,255))
return a
Code:
#!/usr/bin/python
import rc4
import sys
if (len(sys.argv) != 4):
sys.exit("usage: " + sys.argv[0] + " filename number-of-samples plaintext")
rc4.gensamples(sys.argv[1], eval(sys.argv[2]), sys.argv[3])
Mit freundlichen Grüßen
DienerAl