This commit is contained in:
2018-11-13 12:58:56 +01:00
parent 5e0faa3f52
commit c5e51424a1
52 changed files with 387457 additions and 7 deletions

BIN
aesFINISHED/AES-CBC26.png Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View File

@@ -0,0 +1,112 @@
import sys
import os
import getpass
import itertools
from Crypto.Cipher import AES
from Crypto.Hash import MD5, SHA256
# generates key based on password
def generatekey(pw):
password = pw # getpass.getpass('Password for decryption: ')
#print(password)
h = MD5.new()
h.update(password.encode())
#h.update(password)
return h.digest()
def generatePass():
temp = []
alpha = ["a", "z", "e", "r", "t", "y", "u", "i", "o", "p"]
for i in itertools.product(alpha, repeat=6):
temp.append(generatekey("".join(i)))
return temp
# calculates and return hash for message
def calculatehash(message):
h = SHA256.new()
h.update(message)
# use hexdigest to prevent problems with control characters
# e.g. \r in charcter 5, appends 4, then overwrites beginning of message with rest of digest
return h.hexdigest()
# check integrity and return cleartext or error message
def checkintegrity(decryptedcontent):
return calculatehash(decryptedcontent[0:-64]).encode() == decryptedcontent[-64:]
# encrypts content in AES CBC mode
def decrypt_AES_CBC(inputfilename, encryptedContent):
# create encrypted filename, keep extension
outputfilename = inputfilename[0:inputfilename.find('.', len(inputfilename) - 5)] \
+ '_decrypted' + inputfilename[inputfilename.find('.'):len(inputfilename)]
i = 0
keys = generatePass()
print(len(keys))
for key in keys:
decipher = AES.new(key, AES.MODE_CBC)
decryptedcontent = decipher.decrypt(encryptedContent)
ivlength = 16
# remove iv and padding
decryptedcontent = decryptedcontent[ivlength:-decryptedcontent[-1]]
# check Integrity and retain cleartext
if checkintegrity(decryptedcontent):
cleartext = decryptedcontent[0:-64]
outputfile = open(outputfilename, 'wb')
outputfile.write(cleartext)
outputfile.close
outputfilename = outputfilename+"EXTRA"
else:
cleartext = 'Integrity check error'.encode()
print("error:{}".format(i))
i = i+1
print("done?")
return
#
#
# key = generatekey()
# decipher = AES.new(key, AES.MODE_CBC)
# decryptedcontent = decipher.decrypt(encryptedContent)
#
# ivlength = 16
# # remove iv and padding
# decryptedcontent = decryptedcontent[ivlength:-decryptedcontent[-1]]
#
# # check Integrity and retain cleartext
# if checkintegrity(decryptedcontent):
# cleartext = decryptedcontent[0:-64]
# else:
# cleartext = 'Integrity check error'.encode()
#
# # useful only for decrypted text files
# # print(cleartext)
#
# # write to file
# outputfile = open(outputfilename, 'wb')
# outputfile.write(cleartext)
# outputfile.close()
for i in sys.argv[1:]:
inputfilename = i
print('decrypting ' + inputfilename)
try:
inputfile = open(inputfilename, 'rb')
except IOError:
print("File " + inputfilename + " not found, working directory: " + os.getcwd())
continue
else:
# if file opened, read content into variable
content = inputfile.read()
inputfile.close()
# apply symmetric encryption
decrypt_AES_CBC(inputfilename, content)
# encrypt_AES_ECB(inputfilename,content)

Binary file not shown.

4
aesFINISHED/uitleg.txt Normal file
View File

@@ -0,0 +1,4 @@
Het png bestand bij deze opgave is symmetrisch versleuteld met AES in CBC mode. Voor integriteitscontrole werd het originele bericht aangevuld met een SHA256 hash alvorens dit geheel versleuteld werd.
Het script voor decryptie is beschikbaar. Hieruit kan je afleiden dat het vertrekt van een paswoord. Van het paswoord is geweten dat het bestaat uit zes verschillende letters van de bovenste rij van een azerty-toetsenbord (azertyuiop). Het paswoord wordt dankzij een hash functie omgezet in een 128 bit sleutel, die dan gebruikt wordt voor AES.
Je moet het script niet gebruiken of uitvoeren, maar als je dat toch wil doen is de pycryptodome library nodig (en niet pycrypto). Voor het testen van het decryptiemechanisme is er ook een bestand toegevoegd dat versleuteld werd met een gekende sleutel (<28>azerty<74>).
Brute force is onmogelijk met een 128 bit sleutel.

1
keylessFINISHED/dcode Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

9
keylessFINISHED/test.txt Normal file
View File

@@ -0,0 +1,9 @@
ia
b
cat is cat
euhm
test
test
vier
achtentwintig

9
olivierdeschacht/820.py Normal file
View File

@@ -0,0 +1,9 @@
temp = []
with open("olivier.txt", "r") as infile:
temp = infile.readlines()
with open("olivier820.txt", "w") as outfile:
for t in temp:
if len(t) < 8 and len(t) > 20:
continue
outfile.write(t+"\n")

Binary file not shown.

18
olivierdeschacht/euhm.py Normal file
View File

@@ -0,0 +1,18 @@
import test
allofem = test.makeWords()
with open("output.txt", "a") as outfile:
for i in range(20):
for combo in test.combinations(allofem, i):
c = "".join(combo)
if len(c) > 20 or len(c) < 8:
continue
else:
#outfile.write(decrypt(text,c))
temp = test.bo64.b64enconde(str.encode(hashlib.sha512(c).hexdigest()))
if len(temp) == len(text):
if temp == text:
outfile.write("we may have got it: {} transformed turned into: {}".format(c, temp))
else:
outfile.write("i mean maybe... {} transformed turned into: {}".format(c, temp))

84
olivierdeschacht/final.py Normal file
View File

@@ -0,0 +1,84 @@
import hashlib
import base64 as bo64
from itertools import combinations
dic = ["ollie", "olivier", "deschacht", "2014"]
with open("deschacht25.txt", "r") as infile:
text = infile.read()
alts = {"a":"@",
"e":"3",
"o":"0",
"s":"5",
"g":"9",
"i":"!"}
adders = ["!", "*"]
#yea, that shit works like that? isn't that mad?
def reverse(word):
return word[::-1]
#set to -1 if you want to do all the chars
def altWord(word, l=-1):
t = 0
s = ""
for letter in word:
if letter in alts and t < l:
s+=alts[letter]
else:
s+=letter
t = t+1
return s
def chopWord(word):
s = ""
l = []
for c in word:
s+=c
l.append(s)
return l
def addStartAndEnds(l):
t = []
for i in l:
for a in adders:
t.append(i+a)
t.append(a+i)
return t
def makeWords():
words = dic.copy()
for d in dic:
for i in range(len(d)):
words.append(altWord(d, i))
temp2 = []
for w in words:
if len(w) > 1:
temp2.append(reverse(w))
words.extend(temp2)
temp3 = addStartAndEnds(words)
words.extend(temp3)
return set(words)
#def decrypt(t, p):
# aes = AES.new(p, AES.MODE_CBC, "")
# return aes.decrypt(t)
temp = makeWords()
combos = []
for i in range(int(20/len(max(temp, key=len)))):
for c in combinations(temp, i):
w = "".join(c)
if len(w) > 20 or len(w) < 8:
continue
else:
combos.append(w)
with open("output.txt", "a") as outfile:
for c in combos:
outfile.write("{}\n".format(c))

View File

@@ -0,0 +1,18 @@
import hashlib
def hash(txt):
return hashlib.sha512(str.encode(txt)).hexdigest()
lines = []
with open("output.txt", "r") as infile:
lines = infile.readlines()
hashedlines = []
for l in lines:
hashedlines.append(hash(l))
with open("outputHashed.txt", "w") as outfile:
for l in hashedlines:
outfile.write(l+"\n")

25048
olivierdeschacht/olivier.txt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
!thcahcs3d
re!v!l0!
*0l!v!er
d35chacht!
!d35chacht
deschacht
*0l!v!3r
olivier!
d35ch@cht!
!d35ch@cht
reivil0!
0l!v!3r!
*thcahcsed
thcahcsed!
reiv!l0!
thc@hc53d*
*olivier
thcahc53d!
d3schacht
thcahc53d*
*thcahcs3d
thcahc53d
*deschacht
deschacht*
thcahcs3d
*d35ch@cht
reivil0*
deschacht!
0l!v!er*
!0l!v!er
*reiv!l0
olivier*
*d35chacht
reiv!l0*
thcahcs3d!
d3schacht!
*re!v!l0
*r3!v!l0
thc@hc53d
!reivil0
reivilo*
!0l!vier
*reivilo
*thc@hc53d
reivilo!
!deschacht
!olivier
0l!vier*
*reivil0
0livier*
thc@hc53d!
thcahcs3d*
r3!v!l0*
0l!v!3r*
!0l!v!3r
d35chacht
!0livier
*thcahc53d
r3!v!l0!
d35ch@cht*
!d3schacht
*d3schacht
!reiv!l0
!re!v!l0
!reivilo
0livier!
re!v!l0*
*0l!vier
d3schacht*
0l!vier!
d35chacht*
!r3!v!l0
*0livier
!thcahcsed
d35ch@cht
!thc@hc53d
thcahcsed
thcahcsed*
0l!v!er!
!thcahc53d

View File

@@ -0,0 +1,80 @@
300a1281be42b5d8fee5cd2733a95be513004025d5ce018ae08c323db9cb1f3f2a29a83ca81cfccb4814514ed10f78158756334621d5a447503e1324f2280133
e501ad18369c6c30fa6214b215c0522cb7004c006bcb0a8f43b3657740db5cf979411b516bf73511caa4c4245b40a58ed330ae90e34435305b5898685b6506c3
c61450ebce8acb6533bd583907937992f8858aa5dc8b40c63a5e03126d72c3330700632db1fb48458498b6a19f9120d48eb35a7d8e02017e0499f328839e0b18
102154abb33e40c67fae62439a447d7444de2d886bd04be3afabe5bd689e11aa83057decf82439c0733d957b34dad9ec40d6b24bdf6e49b77c8b48c41c060f95
af909d831a6848fcfad4dfeb71c62be12c90ae780819f1485a7d66ee32bf6ad41508fdb6de8a806c9ff4f1e263501d5276564a6dbb8bb0332bb456ced61803be
0830f31b5b5ba3515e6042ce4dc7d8bc9e257e92555a5369ac313a8b2b1cd06f069684fa99d71f4f0663b3b216108270e3804b242b9e8ef4b3346b116e746fc8
a148c93dbef1bcf956a1c4fcae5addf284704bbf741f74f1c74f6539b78954cd1a8d8bc0e726d66cf07933199f62dbec84d1a5f222b25aa953cc7c2fc1e03d5b
44d5aee4429cec09bd769ff318451076fe097537b5a9656299b86e569e7df27e17e213876ae8c8d0d38bba0fb9c51b4d899209f482f76e33027d5f4913f922b1
0de9c7699fe5767ad15d37925a7acc4f071cb9810ab99aa5c5a46a70104c61f1a5862b4521b09fe61a8752caf19789377846a14a545fb705df166f43fc501200
a40269e9262526b9837b7293c6a165c55d4fc6ea7a851d872dba5fc20d1925ef147da6f4c02d635b1b0afd5142860a0a875db14d50d04b3b99e992ad356f13d5
87cfd6bddf3b79c7077eb9377254c430709d71a1d5bbeae53c6c74ed1cc0296761c0cdc0a2b962392b7c459b2e1682699d2b3dac3005ad0afe3b5e6d4896b5c3
abc78ed689cd728899700459893f509d0588b87a12649dfb956048ccef6d69cb215772ba72fca518b4318cadf7c4860164bdf66e727b76b386b6d3a30a658be5
e298f2b4786051ec010036423d4ee05938aa55366fd666049576c8b32458867754e655011f178e0e11221d5317ae0d24d7ed521fdb992150b0720dff5948023c
f3d2d6914457575b87ff7e492dfcf939aa5065bdc3cbbea1df736bfa1aca3155f98af14646bd5a0a853f8f83a29a44ee4ddc55c6c24f34a731377d6a2caeb9dd
e79cb56693241034c2d0de205280a25ae405c4d3b489e5f3ab80798a08e9591858e2f49110505fc732b8ed3545c514aa0ec6c50f34dc8bb03d127b7d3338f339
3d327a2f21ac0f14d57b1c98478bbb74638abb77680f77501d85ab989ad927ace9e71740543398cd40d43730ce1fc29082ba03b1a9f28fc1cd1e4be5e2abef00
9e643bac7c66c66b155b3c871eca11a7cc71c7b3ea275bda85788a200b60f8cb2fe16e25239cc294b56fade9a91e5007979ca941708edfc672d2c53e0dd36b35
927098356af29a7b402b9fc158b3bbc5c20a536b4e464113167f4d1d620786e9dcee8d566a866151c333598d5958478a17faeebf8cb1c9a4f566075ae9215830
c2e009b84e7a01fb6601a630279c6db5c411ca29e38bb6e78504bf758acf7a2c824807aff83ecbd90cd251a6d94cb67f1740254c5c45d88ca9ccbd991e256a17
9a832127ed39eb786c2c0f871fee9a57128ab0b5e8bf5b1b763cba61870cb65b4f279215903f66496be113230e1cf595f648dc895a9d230e764a021448202a72
0c2814ff5d66994deac6a3aca06742e29a632827979e769aced942748e4783d56ad51102c50d9393f7cb9b7896c03b2db809d99bb076668b01993c1d94409e90
4490716764d35dc552b4a5f79803ca925badfe51c53f4063561cc4a38d4a4560e7ac99387119ceee40f556f067f47220ec994b2101668fc13b2752b4ee0656b0
2f570b8abd84d31b1d0e1c16b0023802b5f558accd8407f89a93ac2fe37c7034922113f45c2f988ad09d3943428bf1768f57c5358b213112d6e6382374e34409
6fd0be642f00fb0e5ec0c7d51fa7f8d28f543297fbab781822176b7c0dcbb896f73426e0fe88244bb6466e847ab94c429da069f9fb60908c0e1b002896f90b7f
b3b5270014936339f571568e4974011920082a66b4fa8a2f3fcd2fe7f45131b13e14a0b370e6f91ab152d195ab98f44b8c4077b6f1cb9f2cde9a5cd2d3614dd3
1b2c9ab21741b837c08f0036ec2829636aafec54b9faf715289b4d96d97e0e870eb31f740b4f399b1d88d286e73358f2bd638c3f5a6eb133485a028bf15bcb05
1187c96c6991cba39cec11afa2d7d88e39babb4b12819ffcf54da573407604fbd6855031e8a9a07fd813a6e33aca6a1c33910ccef2dba5e749d6686f5ffd06ba
e2c6034c88eec806159a37edf00304a3636262cf3e8b828237f62564328536467059e6ae886564922b8a21109d1d7b73b3a3d383112d31742c9fde7d7d864b1b
b96619d7a8c5dcd65312876155ce8239ccc1d6cac9c293f42d008a8d200ecd81d3dd3eaf1d567f6f742c6fee38bfae5c16c3b0b4a534e791fb16bc772b5bf8fc
b6b5787a4b94c05eca25428f89ac488c8693936e674ba5cfab23a13d91be39c1a441030fd89ccb98bac2816965f2aad5cf00308e258bc16dcdd09bc18a910f7d
6d7c9732f4950f71a4ab04d4a261cf526d9500a217a0c7e6b3bee36cf984caa17ae4449dfab78dc8d3f69e4caaa6cdfdc34b0128ceada2df911a234f947f2939
932e43fe285371c77b29fa21dc45c24cfeb65fbfebdc505afd64851456127a09fd67bb25d9fab0c94feecc1dd7221c5f0eded911f1d7eff6abbd3bcb1d552b97
8ebad2d8f324365d2ceb8b8bc60e0bd21d67c7471e61aaf20f79b8bdff282c80f5c8e4edf8dd8bca82d5bdde6c95278ae8e58433033c36b58ea4ccae4959678b
0d9d69657bc2fcd5a987fcd5ed21e96f51e7eea6a9dfa43ec312f7fb1396b53820a126c3d140304a53fc3a8a7ceb973b47fb70cb495fa1c202eb020c32b4be8e
7f069fe75b0cbd63e7d53a99b670ffe1e5a6828e9beb473b6fcf3952162f9cb26aa35f36794e26bc0f175279561405af20415936a2c20b3a528b5851c186577d
7116178f4151c765907a56d439fd104b1a0756521f4d526739004bc7f8b18f154855fb8824fc64ca3edffbf290a69d8df9876bd0935ec67baf4f38a5e828769c
97bdb35577c93fc48303acc48f461bacc66e8f9a358bf42e86f51af36adc235a43456f1799608c7a0b5ca5ce24d2176e680cea0ceaeda79d8055ff1d54f1a07e
cf3ae67a81ea8e06228e1eb46d5c47660cdaa630e5512190666a8d89b5b4568bdd245a0ad5e1a2bc5eac7a3a7003ee9fd835fc5a17d8a0775ecd0d15ee5ccbe8
865affe643b211f3d886a950a1b5c793c250fc097d8ffb22d65f44a32b749059f40d8beea79ff124d72ae4062ad6b2061c3941778baad04728b6f590e3fef6f0
492ea6ef82a317f4aedee0c070dc37b041fdeb0f9c6fab431f314d5243a178405b22e74955f0f593fb1e534d3a6ba8f7149a401889c6de7c95de94e7e14e7a4f
f82fc17541cc08e3a4cc6d5b846a26e1f4188f0021fb2260b9172807901ed7e541c21fd99fae1ae7c4d8f543482871b08b7b828596fa0ea63226a1b962ef1833
36a0f71c95eff8a66544f34ec6530a5c9e880dd4cd8233fa8a1a3829f989fc20b239ca94d405076170944b323916cd8bf948535745c38d0829c98fd32743bca8
5e610910c5ec6b44b3f6750735d498889a191b5257018a22d0f6cfff8d88252aa610c440adf489b191cbfee93291e84c1e9d3589d8c607bcbc78669636cd74a0
9a0f3ec8b274527315bc1aa923a7f020d6983b12d9c743f52d2f75ebc207546d596768d37af47db0713e04ceed76b955e0c9c98024cdcbbe4481df0964acefbf
387eaefec7e81da8cda65af52dab43e9651896b55135a1378cdd3fb79676cb0f0ecad48703e71c1eb47f67bf171eb42a9ea8e8252d2621ac2e78d0562c2244d9
9dde574527ed48af4e889911c76bfb3fe0aa1711620e3410c77e44c036effedd4849b78ffa44d7071a0e750953b72c98454f72e03e7a23c3c4bbff66aef70139
d63a502a37015a565c926781d27c23b439135f4689067c2ce7b98a60b62fcffc12f344e6580424f38f96984409f9bdbd110a3b8b2845595251c332312a7cf3a7
1e4e6de08e523f48abb83cec8fcd7567b0365be2cd39fb7e997d133abc315384ff74eebad9b1bbf9496d5848f1002cb3bed8542be6013f4a217618f92b264638
0f4f0375f82e1606e1739a8f9b650ba7a93bb52a87cefd5b7f553a9a70aa230b9e5eb66e80b0d2416c37ae108f47eba1b9f14c72a2671e1a24d22ec3f757e18d
4f55f20f07b82ed7cb6e00569f413a625178b9dd52b108d89c5a03ca05ed373d154a5f5baf7025f2c1bb81435136db0b6291e16c52794f34d7c5cd654aef8ef3
a4c196b69b3bdd7ee803ea1165542471987769f3c2ad38fddb3832c666089db33589257792d1cf709551678cea94f978d716f762e0e764d2b28cfeac6481106c
0072a1a5e16ef608480a91e74e099d00eb89ba6a2429b7f742faf58efa49cee112d2658730305c132ff7706480a5e25c43a421cfb61077042685ad01b816c47f
f3875c991080ba65faf42969e86a2e68bc8e731e4749ffa3298f28fc06448dec4b463e612f3c497b0601afa3cc35ba30f3643f4e35efa5f767bf71e3c8adab6f
0df83a5590c2dba9548e8c85e58fa55ccf56a81bb8bf1418932dfa6db08789b4bcd4fe5498d6cf2f297c52f067ecc9a3cd3ef83f1a624c21f135c32d3792fd92
4d007f12e40579a84e1ced922c7031f8505dc3c040547be5d6786f9498a1226d92cf119492bdfcda49b29533bcfbdeebd13993832fb7b7c56eb9041df2f59070
871233acf3eee774f325f4925f8337f25e17cd22ebffcf986b1a87c3d62d11ef1d6b7834529a1ae1a11f8193e28d72b7b1c7bedf418928e48baec1ce09b69865
99637d1818697bf980161efc091eb3177713c613f18133a50193f84a5a296ceb08720872ddff36758e68e7dfa1ae99e4f7cc525bcab515cd5f8b72402f324683
b1fd2628541499a1027ea069844f2f4e40ebdd5385010d9a228ba57afe1c434c4f22f4a009327edeca71ece47557fdbc78ff95650ecdcdc6dd591c33912ba0bb
81dc8606e54e4a30d1a7e94d58ff218ff24ecb98874131a2eb479f9c28d62a5f7edb91819f743836bfe327482472674ad12b3841cdf985d7eaeadbcdd90d9e24
26c36311cf26fbf31791c81874c2c6fa73be27ff8807926d36e2d8c359f7504f3f8f8612b3f5e50ce69583c9760dff5daf7afdea5a0c1de57480c5d58797c640
41a0c1098b8085317ca51480b975d6da8badc230a107677d113a0124a7ef6889a7697208c1e9308ac8cefd79362fc798cb828217f3ece8cc85eedbb8bfe69789
973e021d51a0658d6f037e97237aaaa7216fb7866a5c2dbfb36f417a94157bfc630c10ef3d53c8334720f0b98dae2aacb94c5a943354184278601e93dc723baf
0ec1d46d0d49d0c45eac956c75dfcad50c520e0d3005e9b4d3bb7e8777cc1ccf946936cfcb24eb26027276ad65afed74e9f1d4962ca752b886a6fb9b7f8f3d4a
ce89bb7091651afc38b839b66a64c97308d7fb46ceda0211a4859f4b0a17be91e74f17796acaffa3c391cc9aa89ea001f06e83d9999ade9ea5689d2331afe440
e7083ef7c458d3c669533b0e584569ae1ef7e47d9637131f152bcb3ede30532a3aff2a6f584f66ca1321d72c4eb806849e741006ef2f11d56677c48fae315ab3
cce2a65c47686e1eae0d59177ba1e4854bd2e123e5a9e80cc7e3c0218909e42dacc1904d5e14d9a07568f34d9ff4cc5d735e7e4d92e5231a5e9f429ed268c17c
cca52621ff6a92c1b2c417e17b4759a3560a1de22682a1605b3613a7cf7210be8635f7825fb0e5109b48dc6f41027fb5473f461d5debd2ddee2f72d4a4906186
2b5d996076a7394d5645dfe795488925b3cc32d9ca53759f744b0316b8bae0e23c7e7afbff69691967675153a9dad187c6639270c2a8e82a4e3b1f292b35f3aa
3fa6bea056f92a1cd20fd73625b4da4a0d7c268a973a6f02f887f3538752bc1e75c89d404d944eabec3ebd650b6a5436407d991c9573a92dfeb79df8993e0ece
6c07da1342f14038e3babd9e7901a43065167229d9f42146a133c312f8e48408508b469f11258dd6f833d22cdc55eeacdc7b2f036c99c530132cce661c657c47
8f781d40589637c732cbda0dfc3d1813bbc6c38351012d2b12e09a3b6f3683b2f3235c9deaf56510b3716cbead574dc1832397ebe4fab09b2829b0e12a49f1b8
dc38546749eacca6995b98416f9ea76411cd3232a5f63f982dd946a4742357f88ad49996087d4e60fc95038dee9c6ee27c6f4dcdf06306b1f89c66bddbd39e7c
da78688ac6f0a2e282fbb5ffd69ab72f3ddd72d80365c17f7ed59f96cfebe4f00c2ea017dac0c3187266d48097cc365a0bbb0c8da7801f1b7be26a72d169da39
8f679a4bca621593217b7f76d1928479a5f37d002326a385915041725617afb790223587554083df22774e54906c8821c925bc0ec0d5648db105aac769e022bd
4bd895a31ed7449516519255d284e376c0e463b08f8404dfa486755ac6534446c273ffcb887a82dc625d0296aeaae71413090d94dd4cdc44195f2b6115ca4da1
509f137625835bd8685dcd7474f2c10371b0bf73aa50fee573db3e510e607727c1b62f8b76041033033dcf10aa1239819974d32e6be823bb8686a74a7ca0581e
a2c37cb3641d07e5a2891ba220259862a67c365dbc1edc5553b89fef4e01929863cae7deaa013ce88451f656a7e8bcea485a819f2cc6168c04f200021070b38c
882026c3da33c42df316b568823c89da38c2ff17e5c8ccb868084b2f33622ff38a446810e4f00dee21564f55eb532e1c301cf567fe869105e0c01b3a36b49412
3fb5df28e598f1f30f8930dda074e22de768a3afce800596328bfaf2cf35706b59f49405c977339f1e0ddd6240ffe7b726d6f9bedb0022b13ed5c3eef29eaf81
eda8f5280e113c9cd5e3a6bf05ee974b593a5b0ecf168f96265459f049dcbe6709a766f5dbc9d7830dac9c8f7da5af68edc1ee458f4e9660450a0a86ec5988ca

79
olivierdeschacht/test.py Normal file
View File

@@ -0,0 +1,79 @@
import hashlib
import base64 as bo64
from itertools import combinations
dic = ["ollie", "olivier", "deschacht", "2014"]
print(dir(bo64))
with open("deschacht25.txt", "r") as infile:
text = infile.read()
print(text)
alts = {"a":"@",
"e":"3",
"o":"0",
"s":"5",
"g":"9",
"i":"!"}
adders = ["!", "*"]
#yea, that shit works like that? isn't that mad?
def reverse(word):
return word[::-1]
#set to -1 if you want to do all the chars
def altWord(word, l=-1):
t = 0
s = ""
for letter in word:
if letter in alts and t < l:
s+=alts[letter]
else:
s+=letter
t = t+1
return s
def chopWord(word):
s = ""
l = []
for c in word:
s+=c
l.append(s)
return l
def addStartAndEnds(l):
t = []
for i in l:
for a in adders:
t.append(i+a)
t.append(a+i)
return t
def makeWords():
words = dic.copy()
for d in dic:
for i in range(len(d)):
words.append(altWord(d, i))
temp = []
for w in words:
temp.extend(chopWord(w))
words.extend(temp)
temp2 = []
for w in words:
if len(w) > 1:
temp2.append(reverse(w))
words.extend(temp2)
temp3 = addStartAndEnds(words)
words.extend(temp3)
return set(words)
#def decrypt(t, p):
# aes = AES.new(p, AES.MODE_CBC, "")
# return aes.decrypt(t)

8
rsa/factor.log Normal file
View File

@@ -0,0 +1,8 @@
11/06/18 16:14:41 v1.34.3 @ arch-laptop,
11/06/18 16:14:41 v1.34.3 @ arch-laptop, ****************************
11/06/18 16:14:41 v1.34.3 @ arch-laptop, Starting factorization of 65537
11/06/18 16:14:41 v1.34.3 @ arch-laptop, using pretesting plan: normal
11/06/18 16:14:41 v1.34.3 @ arch-laptop, no tune info: using qs/gnfs crossover of 95 digits
11/06/18 16:14:41 v1.34.3 @ arch-laptop, ****************************
11/06/18 16:14:41 v1.34.3 @ arch-laptop, prp5 = 65537
11/06/18 16:14:41 v1.34.3 @ arch-laptop, Total factoring time = 0.0002 seconds

0
rsa/public.pub Normal file
View File

View File

@@ -1,4 +1,15 @@
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhANYKESYl+3ksLXaSDMyCvpvfV7VSnBCB
HOx/vnFrI7yjAgMBAAE=
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDER6zsHqfA29V26kjajWUdmttverRAfdp159LuvsN7Zfk6pqPl
4JpSaCsLviCLvQ5CzHYXsHhscSDlZ5VbzGzTN1XKzChhSm3ioixtsMaHqk8n+t7X
wuWvBm1SoJBohO1GKP84eNhDVa/vntwirj8xM+kyuyVnYMG5wK5eDOoFQwIDAQAB
AoGADrPDuygMrsCIu9COxngi49XOrAoH6HDE5WIJBcMaR2r7AS6sRjLNvHB7EPUb
4Pu3Tr+b9OhODOloamaY5HhqikIMcK5b+d5a9chWl7LPT+4RjQ1qCcO8Az1rnuD3
GPV8Pa2X6Nc/KGZNF51fuSsYPtpMMNaRVsUyhVfF1Bm2FoECQQDufZPntbhAMftv
vmpkhrbVPzf9Sv5QAZQMCLvr9XuopvhwkIdqTqTIRi0+o21r+Y4gUuE8KQ/8SrOp
PDcSkzBBAkEA0rDAa4gvnptu35juAAG4QAwSdoGxM5f4EViG0lTXPYW1WXAuakSX
pRAr5r+kRIuFAqLubOF3ily2ZHYR7wNUgwJBAJWakuh8Vtt2PyrmwOjUlOaKZL3w
iD157/vokrG+6VZvf1NlZnzqXnX/h6xOanqcLmracs4BWDTES5Vy3304dcECQB6L
S0oLk0O+KuO1iwNrPGfkmCSgBq2BIZB6Mgl6DT45DSJrNf9n9EgUwRiRveHGDEFm
l4QnZ6oiaLrFtzHcXLsCQF/1m2eZSCKqRKxYViZwtCG6YltvxrWYEv+5QEeH8TW5
l9u4XTLA6SkVUKacIdy4saTTiNJ91Z+hChn0yL7wwkU=
-----END RSA PRIVATE KEY-----

4
rsa/public12.pem.BAK Normal file
View File

@@ -0,0 +1,4 @@
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhANYKESYl+3ksLXaSDMyCvpvfV7VSnBCB
HOx/vnFrI7yjAgMBAAE=
-----END PUBLIC KEY-----

3
rsa/rsapublic12.pem Normal file
View File

@@ -0,0 +1,3 @@
-----BEGIN RSA PUBLIC KEY-----
MCgCIQDWChEmJft5LC12kgzMgr6b31e1UpwQgRzsf75xayO8owIDAQAB
-----END RSA PUBLIC KEY-----

48
rsa/session.log Normal file
View File

@@ -0,0 +1,48 @@
11/06/18 16:14:32 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.884840
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:14:32 v1.34.3 @ arch-laptop, New random seeds: 1627275890, 3413126897
11/06/18 16:14:32 v1.34.3 @ arch-laptop, Processing expression: factor(<0x10001>)
11/06/18 16:14:41 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.898370
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:14:41 v1.34.3 @ arch-laptop, New random seeds: 1051584989, 882356502
11/06/18 16:14:41 v1.34.3 @ arch-laptop, Processing expression: factor(0x10001)
11/06/18 16:24:16 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.923100
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:24:16 v1.34.3 @ arch-laptop, New random seeds: 4224413532, 2143373325
11/06/18 16:24:16 v1.34.3 @ arch-laptop, Processing expression: factor(00d60a112625fb792c2d76920ccc82be9bdf57b5529c10811cec7fbe716b23bca3)
11/06/18 16:24:36 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.915970
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:24:36 v1.34.3 @ arch-laptop, New random seeds: 2525150347, 3657121282
11/06/18 16:24:36 v1.34.3 @ arch-laptop, Processing expression: factor(00d60a112625fb792c2d76920ccc82be9bdf57b5529c10811cec7fbe716b23bca3)

85
rsaMODULUSBS/factor.log Normal file
View File

@@ -0,0 +1,85 @@
11/06/18 16:14:41 v1.34.3 @ arch-laptop,
11/06/18 16:14:41 v1.34.3 @ arch-laptop, ****************************
11/06/18 16:14:41 v1.34.3 @ arch-laptop, Starting factorization of 65537
11/06/18 16:14:41 v1.34.3 @ arch-laptop, using pretesting plan: normal
11/06/18 16:14:41 v1.34.3 @ arch-laptop, no tune info: using qs/gnfs crossover of 95 digits
11/06/18 16:14:41 v1.34.3 @ arch-laptop, ****************************
11/06/18 16:14:41 v1.34.3 @ arch-laptop, prp5 = 65537
11/06/18 16:14:41 v1.34.3 @ arch-laptop, Total factoring time = 0.0002 seconds
11/13/18 09:18:44 v1.34.3 @ arch-laptop,
11/13/18 09:18:44 v1.34.3 @ arch-laptop, ****************************
11/13/18 09:18:44 v1.34.3 @ arch-laptop, Starting factorization of 96812736425632664666015008713537286953764545424199836244364938864771752770723
11/13/18 09:18:44 v1.34.3 @ arch-laptop, using pretesting plan: normal
11/13/18 09:18:44 v1.34.3 @ arch-laptop, no tune info: using qs/gnfs crossover of 95 digits
11/13/18 09:18:44 v1.34.3 @ arch-laptop, ****************************
11/13/18 09:18:44 v1.34.3 @ arch-laptop, rho: x^2 + 3, starting 1000 iterations on C77
11/13/18 09:18:44 v1.34.3 @ arch-laptop, rho: x^2 + 2, starting 1000 iterations on C77
11/13/18 09:18:44 v1.34.3 @ arch-laptop, rho: x^2 + 1, starting 1000 iterations on C77
11/13/18 09:18:44 v1.34.3 @ arch-laptop, pm1: starting B1 = 150K, B2 = gmp-ecm default on C77
11/13/18 09:18:44 v1.34.3 @ arch-laptop, current ECM pretesting depth: 0.00
11/13/18 09:18:44 v1.34.3 @ arch-laptop, scheduled 30 curves at B1=2000 toward target pretesting depth of 23.69
11/13/18 09:18:44 v1.34.3 @ arch-laptop, Finished 30 curves using Lenstra ECM method on C77 input, B1=2K, B2=gmp-ecm default
11/13/18 09:18:44 v1.34.3 @ arch-laptop, current ECM pretesting depth: 15.18
11/13/18 09:18:44 v1.34.3 @ arch-laptop, scheduled 74 curves at B1=11000 toward target pretesting depth of 23.69
11/13/18 09:18:46 v1.34.3 @ arch-laptop, Finished 74 curves using Lenstra ECM method on C77 input, B1=11K, B2=gmp-ecm default
11/13/18 09:18:46 v1.34.3 @ arch-laptop, current ECM pretesting depth: 20.24
11/13/18 09:18:46 v1.34.3 @ arch-laptop, scheduled 149 curves at B1=50000 toward target pretesting depth of 23.69
11/13/18 09:19:02 v1.34.3 @ arch-laptop, Finished 149 curves using Lenstra ECM method on C77 input, B1=50K, B2=gmp-ecm default
11/13/18 09:19:02 v1.34.3 @ arch-laptop, final ECM pretested depth: 23.72
11/13/18 09:19:02 v1.34.3 @ arch-laptop, scheduler: switching to sieve method
11/13/18 09:19:02 v1.34.3 @ arch-laptop, starting SIQS on c77: 96812736425632664666015008713537286953764545424199836244364938864771752770723
11/13/18 09:19:02 v1.34.3 @ arch-laptop, random seeds: 536257088, 4097496803
11/13/18 09:19:02 v1.34.3 @ arch-laptop, ==== sieve params ====
11/13/18 09:19:02 v1.34.3 @ arch-laptop, n = 77 digits, 256 bits
11/13/18 09:19:02 v1.34.3 @ arch-laptop, factor base: 36160 primes (max prime = 906331)
11/13/18 09:19:02 v1.34.3 @ arch-laptop, single large prime cutoff: 77038135 (85 * pmax)
11/13/18 09:19:02 v1.34.3 @ arch-laptop, allocating 7 large prime slices of factor base
11/13/18 09:19:02 v1.34.3 @ arch-laptop, buckets hold 2048 elements
11/13/18 09:19:02 v1.34.3 @ arch-laptop, using 32k sieve core
11/13/18 09:19:02 v1.34.3 @ arch-laptop, sieve interval: 10 blocks of size 32768
11/13/18 09:19:02 v1.34.3 @ arch-laptop, polynomial A has ~ 10 factors
11/13/18 09:19:02 v1.34.3 @ arch-laptop, using multiplier of 1
11/13/18 09:19:02 v1.34.3 @ arch-laptop, using SPV correction of 20 bits, starting at offset 35
11/13/18 09:19:02 v1.34.3 @ arch-laptop, using SSE2 for trial division and x64 sieve scanning
11/13/18 09:19:02 v1.34.3 @ arch-laptop, using SSE4.1 enabled 32k sieve core
11/13/18 09:19:02 v1.34.3 @ arch-laptop, using SSE2 for resieving 13-16 bit primes
11/13/18 09:19:02 v1.34.3 @ arch-laptop, trial factoring cutoff at 90 bits
11/13/18 09:19:02 v1.34.3 @ arch-laptop, ==== sieving started (1 thread) ====
11/13/18 09:20:52 v1.34.3 @ arch-laptop, trial division touched 3100665 sieve locations out of 45953843200
11/13/18 09:20:52 v1.34.3 @ arch-laptop, 36295 relations found: 18547 full + 17748 from 187909 partial, using 70120 polys (279 A polys)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, on average, sieving found 2.94 rels/poly and 1881.88 rels/sec
11/13/18 09:20:52 v1.34.3 @ arch-laptop, trial division touched 3100665 sieve locations out of 45953843200
11/13/18 09:20:52 v1.34.3 @ arch-laptop, ==== post processing stage (msieve-1.38) ====
11/13/18 09:20:52 v1.34.3 @ arch-laptop, begin with 206456 relations
11/13/18 09:20:52 v1.34.3 @ arch-laptop, reduce to 51844 relations in 2 passes
11/13/18 09:20:52 v1.34.3 @ arch-laptop, recovered 51844 relations
11/13/18 09:20:52 v1.34.3 @ arch-laptop, recovered 36656 polynomials
11/13/18 09:20:52 v1.34.3 @ arch-laptop, freed 9 duplicate relations
11/13/18 09:20:52 v1.34.3 @ arch-laptop, attempting to build 36286 cycles
11/13/18 09:20:52 v1.34.3 @ arch-laptop, found 36286 cycles in 1 passes
11/13/18 09:20:52 v1.34.3 @ arch-laptop, distribution of cycle lengths:
11/13/18 09:20:52 v1.34.3 @ arch-laptop, length 1 : 18545
11/13/18 09:20:52 v1.34.3 @ arch-laptop, length 2 : 17741
11/13/18 09:20:52 v1.34.3 @ arch-laptop, largest cycle: 2 relations
11/13/18 09:20:52 v1.34.3 @ arch-laptop, matrix is 36160 x 36286 (5.2 MB) with weight 1063582 (29.31/col)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, sparse part has weight 1063582 (29.31/col)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, filtering completed in 3 passes
11/13/18 09:20:52 v1.34.3 @ arch-laptop, matrix is 25772 x 25836 (4.1 MB) with weight 857398 (33.19/col)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, sparse part has weight 857398 (33.19/col)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, saving the first 48 matrix rows for later
11/13/18 09:20:52 v1.34.3 @ arch-laptop, matrix is 25724 x 25836 (3.3 MB) with weight 699368 (27.07/col)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, sparse part has weight 617217 (23.89/col)
11/13/18 09:20:52 v1.34.3 @ arch-laptop, matrix includes 64 packed rows
11/13/18 09:20:52 v1.34.3 @ arch-laptop, using block size 10334 for processor cache size 3072 kB
11/13/18 09:20:52 v1.34.3 @ arch-laptop, commencing Lanczos iteration
11/13/18 09:20:52 v1.34.3 @ arch-laptop, memory use: 3.1 MB
11/13/18 09:20:53 v1.34.3 @ arch-laptop, lanczos halted after 408 iterations (dim = 25720)
11/13/18 09:20:53 v1.34.3 @ arch-laptop, recovered 15 nontrivial dependencies
11/13/18 09:20:53 v1.34.3 @ arch-laptop, prp39 = 285654914474128418727141496733493951767
11/13/18 09:20:53 v1.34.3 @ arch-laptop, prp39 = 338915003804007480961863644234175376469
11/13/18 09:20:53 v1.34.3 @ arch-laptop, Lanczos elapsed time = 1.5277 seconds.
11/13/18 09:20:53 v1.34.3 @ arch-laptop, Sqrt elapsed time = 0.0501 seconds.
11/13/18 09:20:53 v1.34.3 @ arch-laptop, SIQS elapsed time = 111.2947 seconds.
11/13/18 09:20:53 v1.34.3 @ arch-laptop,
11/13/18 09:20:53 v1.34.3 @ arch-laptop,
11/13/18 09:20:53 v1.34.3 @ arch-laptop, Total factoring time = 129.7620 seconds

1
rsaMODULUSBS/flag12.enc Normal file
View File

@@ -0,0 +1 @@
k<EFBFBD>YRE<EFBFBD><EFBFBD>0_<EFBFBD>?<3F>߮o<DFAE>c<EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD> <20><>1<EFBFBD><31><EFBFBD>i@

View File

@@ -0,0 +1,6 @@
-----BEGIN RSA PRIVATE KEY-----
MIGsAgEAAiEA1goRJiX7eSwtdpIMzIK+m99XtVKcEIEc7H++cWsjvKMCAwEAAQIhALALIaW90cMN
Ket/HpXK55fsN7xw9K9oWdLrPk1kBWxJAhEA1ucipps0Rtg0f0YX9wT9FwIRAP74p8sZ2pzZFHl+
qH+6bFUCEQCTCq+Q491PJBw3gZRgNo+dAhEA15GBw+yy8SNz9RiJ+5uxFQIQOCHMMPq2/myYoJrL
tliXMw==
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1 @@
853:9ebe:f434:c9c1

0
rsaMODULUSBS/public.pub Normal file
View File

15
rsaMODULUSBS/public12.pem Normal file
View File

@@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDER6zsHqfA29V26kjajWUdmttverRAfdp159LuvsN7Zfk6pqPl
4JpSaCsLviCLvQ5CzHYXsHhscSDlZ5VbzGzTN1XKzChhSm3ioixtsMaHqk8n+t7X
wuWvBm1SoJBohO1GKP84eNhDVa/vntwirj8xM+kyuyVnYMG5wK5eDOoFQwIDAQAB
AoGADrPDuygMrsCIu9COxngi49XOrAoH6HDE5WIJBcMaR2r7AS6sRjLNvHB7EPUb
4Pu3Tr+b9OhODOloamaY5HhqikIMcK5b+d5a9chWl7LPT+4RjQ1qCcO8Az1rnuD3
GPV8Pa2X6Nc/KGZNF51fuSsYPtpMMNaRVsUyhVfF1Bm2FoECQQDufZPntbhAMftv
vmpkhrbVPzf9Sv5QAZQMCLvr9XuopvhwkIdqTqTIRi0+o21r+Y4gUuE8KQ/8SrOp
PDcSkzBBAkEA0rDAa4gvnptu35juAAG4QAwSdoGxM5f4EViG0lTXPYW1WXAuakSX
pRAr5r+kRIuFAqLubOF3ily2ZHYR7wNUgwJBAJWakuh8Vtt2PyrmwOjUlOaKZL3w
iD157/vokrG+6VZvf1NlZnzqXnX/h6xOanqcLmracs4BWDTES5Vy3304dcECQB6L
S0oLk0O+KuO1iwNrPGfkmCSgBq2BIZB6Mgl6DT45DSJrNf9n9EgUwRiRveHGDEFm
l4QnZ6oiaLrFtzHcXLsCQF/1m2eZSCKqRKxYViZwtCG6YltvxrWYEv+5QEeH8TW5
l9u4XTLA6SkVUKacIdy4saTTiNJ91Z+hChn0yL7wwkU=
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1,4 @@
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhANYKESYl+3ksLXaSDMyCvpvfV7VSnBCB
HOx/vnFrI7yjAgMBAAE=
-----END PUBLIC KEY-----

View File

@@ -0,0 +1,3 @@
-----BEGIN RSA PUBLIC KEY-----
MCgCIQDWChEmJft5LC12kgzMgr6b31e1UpwQgRzsf75xayO8owIDAQAB
-----END RSA PUBLIC KEY-----

106
rsaMODULUSBS/session.log Normal file
View File

@@ -0,0 +1,106 @@
11/06/18 16:14:32 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.884840
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:14:32 v1.34.3 @ arch-laptop, New random seeds: 1627275890, 3413126897
11/06/18 16:14:32 v1.34.3 @ arch-laptop, Processing expression: factor(<0x10001>)
11/06/18 16:14:41 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.898370
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:14:41 v1.34.3 @ arch-laptop, New random seeds: 1051584989, 882356502
11/06/18 16:14:41 v1.34.3 @ arch-laptop, Processing expression: factor(0x10001)
11/06/18 16:24:16 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.923100
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:24:16 v1.34.3 @ arch-laptop, New random seeds: 4224413532, 2143373325
11/06/18 16:24:16 v1.34.3 @ arch-laptop, Processing expression: factor(00d60a112625fb792c2d76920ccc82be9bdf57b5529c10811cec7fbe716b23bca3)
11/06/18 16:24:36 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.915970
using 20 random witnesses for Rabin-Miller PRP checks
11/06/18 16:24:36 v1.34.3 @ arch-laptop, New random seeds: 2525150347, 3657121282
11/06/18 16:24:36 v1.34.3 @ arch-laptop, Processing expression: factor(00d60a112625fb792c2d76920ccc82be9bdf57b5529c10811cec7fbe716b23bca3)
11/13/18 09:14:43 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2194.946830
using 20 random witnesses for Rabin-Miller PRP checks
11/13/18 09:14:43 v1.34.3 @ arch-laptop, New random seeds: 2047947468, 1624631330
11/13/18 09:16:07 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2195.208090
using 20 random witnesses for Rabin-Miller PRP checks
11/13/18 09:16:07 v1.34.3 @ arch-laptop, New random seeds: 2278855937, 1615700715
11/13/18 09:16:07 v1.34.3 @ arch-laptop, Processing expression: factor(00:d6:0a:11:26:25:fb:79:2c:2d:76:92:0c:cc:82:be:9b:df:57:b5:52:9c:10:81:1c:ec:7f:be:71:6b:23:bc:a3)
11/13/18 09:18:02 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2195.056730
using 20 random witnesses for Rabin-Miller PRP checks
11/13/18 09:18:02 v1.34.3 @ arch-laptop, New random seeds: 3974155679, 4201899115
11/13/18 09:18:02 v1.34.3 @ arch-laptop, Processing expression: factor(00:d6:0a:11:26:25:fb:79:2c:2d:76:92:0c:cc:82:be:9b:df:57:b5:52:9c:10811cec7fbe716b23bca3)
11/13/18 09:18:23 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2195.046510
using 20 random witnesses for Rabin-Miller PRP checks
11/13/18 09:18:23 v1.34.3 @ arch-laptop, New random seeds: 3000548796, 849839776
11/13/18 09:18:23 v1.34.3 @ arch-laptop, Processing expression: factor(00d60a112625fb792c2d76920ccc82be9bdf57b5529c10811cec7fbe716b23bca3)
11/13/18 09:18:44 v1.34.3 @ arch-laptop, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
cached 78498 primes. pmax = 999983
detected Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2195.052370
using 20 random witnesses for Rabin-Miller PRP checks
11/13/18 09:18:44 v1.34.3 @ arch-laptop, New random seeds: 1194384055, 434005162
11/13/18 09:18:44 v1.34.3 @ arch-laptop, Processing expression: factor(0x00d60a112625fb792c2d76920ccc82be9bdf57b5529c10811cec7fbe716b23bca3)

206737
rsaMODULUSBS/siqs.dat Normal file

File diff suppressed because it is too large Load Diff

2
rsaMODULUSBS/uitleg.txt Normal file
View File

@@ -0,0 +1,2 @@
In een kort tekstdocument zit een vlag. Het tekstdocument werd versleuteld met RSA gebruik makend van een publieke sleutel.
De publieke sleutel krijg je erbij in de vorm van een pem-bestand.

View File

@@ -0,0 +1,80 @@
49ad630ee4cfbe679d4c1812585ecfd987560069
286fb8f1a5d4dc144ca2b78e6461d90e87127cff
4798dd76602345d6364542ae1e827b50073776f5
a0a6696f377f04c24ae204820ca94d1f7b217a37
1e8ee052ddc4357c9f9bcb213bb6019d4ab9a51a
d7456801f116e2fdb94c362caaaa2da59823c87f
2e343e2791d957d9e54905ca60b1070cf3afb2e1
5c1e3a1c872cb6433dc5262e9230478dbac4572d
9ed58a327da5f54cec39488e92f841ee50e74b34
f5fe9ac0340f1328f295e93ee2f9fb5ae343c85d
1b3f5b532c0f1376850e63162951b9f6b187bd8d
0bf2bd9d6cc4f2a8dd1342a7639ed79134884257
e18ae9d6f91823176296851d6cd8ddf4a6a7d2ee
a7c463d3506da56b4a365bad2ddbaff6c4c698bb
292721de93d4d5a6716ec489bf9872a2d7906aec
31105f7f1c02a3ca70e886254b089ded985555ab
6cb97f774b7f01e0920e688e95172c421373e0ee
f4b50f1365aeb2f4fe5b8fb4df83077f4da910ba
a0f11b27c950a40531f26fe36e85f59d9b8b7b54
cf2fd0459224df00d518e9d1251692fbf391ffb6
1bf6cda873aa3636ecafef0045693d0cc18f2cf0
6c5762f08fd700248ec9a9a496a059bdc01b9115
d4f05a94f53ec5f68676c3eab053ca11e0748699
2fbd98019522481ed9e168aa07bb9d436cbe5c45
82bf809f8e4c6c35e78808b9aef7438fc881bb69
2382830edeb06335afb4020731590e67f62b608a
070c027d1889dbe5ca0cd67627fe2bc40a7cc419
06f0cb34f661d6689f9c8f1b77881e46e30e1593
b2f1ed8f878c5b1f9f95df804d960aeddd88ef3d
6f00a9867733a85b6455f5ec6cd69d9dc542b7fe
63d56e380cc0932869e3ddddcfa516ed928263e3
b8bb875de5f730d847a5e832d76e4e163d42e8a0
d37625d46eced12752bf8f7f73a7ae5bb8800271
2e474d2d089cbe5e292e0ceb7dcdcfdee52875dc
c19440b5d671b3ac242c03f845a37b8a5a4ad1c2
cafdb889e3f42b16a71a10a241be164e63ea5df0
a6959809f24f40d7615f20c94d82036dce8583c3
0c7a65dde77b2701467780220b70aeab6f96f1f3
021a5927eae1f735356808c6c1442133332c48f2
3dae67a299994cccb4cbad8602a7207cdc298252
8871da33a071a2de3d1122a8212dca4251f53be5
ad8dac9ad71d3a76f1d5cec8e87affca8b6f7bcd
3e66666292c2e43f3b23471a9d2657b5088b296f
92b240308b453b0490fb20ed1c63e580de72aa21
969217de3bc9e84cc89c1d67d0787caf20d5f9e8
bea5aca542fa09b98c8a3bf0e21c26f25836774d
18e53b3ff5e63ca8a0d56b8d38bdc94324a4651c
928093ad25300548fc27ca490c82f326d5f9ce72
785138504a4dba1a3bce3adb19a7b0ea1211971f
34d0667eaced8feaec5610f13e7c22c19bcef4e3
363603eace13c7758125a25e0c31605f40c2e23b
e76ff0252f4356bc0c0521f1a4e427d77cb90b57
2532e98588de789ce9f898e5e2553e055465fb6a
662f1b77ebb4a9c360737c800551f94f1789606d
72e636b65eea3a6280807996033a9edc10bb9e9b
75d6ed741ab970a56bc50d7a21d46285fbe03eb1
d740f00dcb9d528c4eef7e8b7b944748b3e694dc
50d65ee40561450a6428e487535677017a1f042d
337a1ef69455340e7872c2ad2cd3210cb4a80a70
ec554728b8b7c6a9a4d4f67dbebb895db414764c
68133c9864a86c4dff54236636901a896abfa6f1
957ba857016afe81a440488fdcd23b7408c7d445
933c7eb1739faff81ababbeea86d7df6044a5421
add1a9ee65bb76446386f76e4fcdac22094db33f
3cb179a3552d765881d6d6a646e2ba9c352587a7
c02e912d81d9870d2bf7e9a9114eca18b41700c0
48f2cc03935c331fbe39f597c27ce469d541aaed
34d3f6bf05193b12f44bcc547f9ed9164a5a92ab
e70b5ebad37c5236b40cb157bd33660a6beed1ae
c3fe2b01a4bae84c5d1237daf01a83d23e5d4748
ef91a26d2bf810fca53867e93e878f7b6e4c3b78
9027f9d6a2bf708b4621c28c3a2d169d7754e018
6a89ae5a61aad21ed130871d6b91db71df625180
b56770efc24e88294d002dcedf7bf17347689e2c
afe3069207beada82457ac0f3c1fc76f5cd622a7
dc97ca861f530ad255989c661dd48a141a002bbb
3e9e0d430da6769b01eec05c25c1b04e957fb029
118d9882264b4f3230a06a58f17aea16eb6d8e25
2ae3023d28194c7e713f442e70ce4a6d7ff4568c
7868fc2fbe2609f7d0255b0d5128941d489d0d8a

View File

@@ -0,0 +1,2 @@
Bij de aanval op een organisatie worden een aantal <20>high value targets<74> ge<67>dentificeerd. Blijkt dat ze in 2012 een LinkedIn account hadden. De kans bestaat dat het toen gebruikte paswoord ook voor andere logins gebruikt werd en dat het paswoord niet is aangepast
In het meegeleverde bestand staan de hashes van de interessante gebruikers die bij de LinkedIn password leak van 2012 beschikbaar werden. Als je een paswoord kan recupereren, is het bruikbaar als flag.

View File

@@ -24,15 +24,22 @@ def main():
f.close()
#temp = bytes([0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0xc0, 0x03, 0x80, 0x02])
#eerste 10 bytes van voorbeeld afbeelding
temp = bytes([0x49,0x47, 0x38, 0x46, 0x61, 0x39, 0x03, 0xc0, 0x02, 0x80])
#temp = bytes([0x49,0x47, 0x38, 0x46, 0x61, 0x39, 0x03, 0xc0, 0x02, 0x80])
#en dan krijg je deze bytes list
#solution = bytes([0x47, 0x3b, 0x57, 0x2b, 0x07, 0xd0, 0x29, 0xdb, 0x3b, 0x82])
#dus blijkbaar was de eerste set van bytes verkerd van volgorde, dus dit is de key die we dan krijgen (met de tweede temp)
#07a70ffe4f233ffbf9dd
#solution = bytes([0xf7, 0xa3, 0x1b, 0x32, 0xb1, 0x56, 0x94, 0x38, 0x3c, 0x90])
#solution = bytes.fromhex("07a70ffe4f233ffbf9dd")
key = bytes.fromhex("0123456789")
key = temp
#4947 3846 6139 03c0 0280
#key = bytes("49473846613903c00280")
#key = bytes.fromhex("0123456789")
#4947 3846 6139 03c0 0280
key = bytes(b'\x49\x47\x38\x46\x61\x39\x03\xc0\x02\x80')
#key = bytes([0x49, 0x47, 0x38, 0x46, 0x61, 0x39, 0x03, 0xc0, 0x02, 0x80])
#key = bytes([0x6e, 0x66, 0x4e, 0x7b, 0x94, 0xae, 0xd2, 0x15, 0xb4, 0xec])
key = bytes(b'\x29\x2f\x08\x43\xad\xcf\x12\x16\x34\xee')
expanded_key = expand_key(key, len(data))
data_encrypted = xor(expanded_key, data)

Binary file not shown.

View File

@@ -0,0 +1,40 @@
import os
import sys
KEY_SIZE = 10
def expand_key(key, length):
return int(length / len(key)) * key + key[0:(length % len(key))]
def xor(s1, s2):
assert len(s1) == len(s2)
return bytes([(a ^ b) for a, b in zip(s1, s2)])
def main():
if len(sys.argv) <= 2:
key = os.urandom(KEY_SIZE)
filename = sys.argv[1]
f = open(filename,'rb')
data = f.read()
f.close()
expanded_key = expand_key(key, len(data))
data_encrypted = xor(expanded_key, data)
print(data_encrypted)
f = open(filename + ".enc", "wb")
f.write(data_encrypted)
f.close()
print("File %s encrypted with key: %s" % (filename, key.hex()))
else:
print("Usage: %s <filename>" % (sys.argv[0]))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,57 @@
import os
import sys
KEY_SIZE = 10
def expand_key(key, length):
return int(length / len(key)) * key + key[0:(length % len(key))]
def xor(s1, s2):
assert len(s1) == len(s2)
return bytes([(a ^ b) for a, b in zip(s1, s2)])
def main():
if len(sys.argv) <= 2:
key = os.urandom(KEY_SIZE)
print(type(key))
filename = sys.argv[1]
f = open(filename,'rb')
data = f.read()
f.close()
#temp = bytes([0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0xc0, 0x03, 0x80, 0x02])
#eerste 10 bytes van voorbeeld afbeelding
#temp = bytes([0x49,0x47, 0x38, 0x46, 0x61, 0x39, 0x03, 0xc0, 0x02, 0x80])
#en dan krijg je deze bytes list
#solution = bytes([0x47, 0x3b, 0x57, 0x2b, 0x07, 0xd0, 0x29, 0xdb, 0x3b, 0x82])
#dus blijkbaar was de eerste set van bytes verkerd van volgorde, dus dit is de key die we dan krijgen (met de tweede temp)
#07a70ffe4f233ffbf9dd
#solution = bytes([0xf7, 0xa3, 0x1b, 0x32, 0xb1, 0x56, 0x94, 0x38, 0x3c, 0x90])
#solution = bytes.fromhex("07a70ffe4f233ffbf9dd")
#4947 3846 6139 03c0 0280
#key = bytes("49473846613903c00280")
#key = bytes.fromhex("0123456789")
#4947 3846 6139 03c0 0280
key = bytes(b'\x49\x47\x38\x46\x61\x39\x03\xc0\x02\x80')
#key = bytes([0x49, 0x47, 0x38, 0x46, 0x61, 0x39, 0x03, 0xc0, 0x02, 0x80])
#key = bytes([0x6e, 0x66, 0x4e, 0x7b, 0x94, 0xae, 0xd2, 0x15, 0xb4, 0xec])
key = bytes(b'\x29\x2f\x08\x43\xad\xcf\x12\x16\x34\xee')
expanded_key = expand_key(key, len(data))
data_encrypted = xor(expanded_key, data)
print(data_encrypted)
f = open(filename + ".enc", "wb")
f.write(data_encrypted)
f.close()
print("File %s encrypted with key: %s" % (filename, key.hex()))
else:
print("Usage: %s <filename>" % (sys.argv[0]))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,86 @@
import os
import sys
KEY_SIZE = 10
def xor(s1, s2):
assert len(s1) == len(s2)
return bytes([(a ^ b) for a, b in zip(s1, s2)])
def expand_key(key, length):
return int(length / len(key)) * key + key[0:(length % len(key))]
def main():
if len(sys.argv) <= 2:
key = os.urandom(KEY_SIZE)
filename = sys.argv[1]
f = open(filename,'rb')
data = f.read()
f.close()
expanded_key = expand_key("0123456789", len(data))
data_encrypted = xor(expanded_key, data)
print(data_encrypted)
f = open(filename + ".enc", "wb")
f.write(data_encrypted)
f.close()
print("File %s encrypted with key: %s" % (filename, key.hex()))
else:
print("Usage: %s <filename>" % (sys.argv[0]))
'''
16^10 mogelijkheden, nie plezant dus, mss zoeken naar een andere manier da we iets kunnen vinden.
wat doet de expand key eigenlijk? dat soort dingen
'''
def decrypt():
filename = "voorbeeld.gif.enc"
with open("test.txt", "w") as outfile:
for i in range(0,16**10):
#print(bin(i).encode('ascii'))
#print(bin(i).format('0<16'))
#print(bin(i).format(16))
#dus hier pak je de binaire versie van je iterator, en zet je die om naar een string, dit zal dus bv voor 1 0b1 geven, daarna wil je natuurlijk dat alle andere nullen erbij staan, anders krijg je geen 10 byte lange string, dus je haalt de 0b eraf en daarna gebruik je format en de string tussen de {} om de plaats links van onze input te vullen met 0
temp = '{:0>80}'.format(str(bin(i))[2:]).encode('ascii')
outfile.write(str(temp))
#print(temp)
#print(os.urandom(KEY_SIZE))
if i > 10:
break
data = open(filename,'rb').read()
print(expand_key("0123456789", len(data)))
return True
if __name__ == "__main__":
# main()
decrypt()

View File

@@ -0,0 +1,2 @@
0000000 4947 3846 6139 03c0 0280
000000a

View File

@@ -0,0 +1 @@
b'00000000000000000000000000000000000000000000000000000000000000000000000000000000'b'00000000000000000000000000000000000000000000000000000000000000000000000000000001'b'00000000000000000000000000000000000000000000000000000000000000000000000000000010'b'00000000000000000000000000000000000000000000000000000000000000000000000000000011'b'00000000000000000000000000000000000000000000000000000000000000000000000000000100'b'00000000000000000000000000000000000000000000000000000000000000000000000000000101'b'00000000000000000000000000000000000000000000000000000000000000000000000000000110'b'00000000000000000000000000000000000000000000000000000000000000000000000000000111'b'00000000000000000000000000000000000000000000000000000000000000000000000000001000'b'00000000000000000000000000000000000000000000000000000000000000000000000000001001'b'00000000000000000000000000000000000000000000000000000000000000000000000000001010'b'00000000000000000000000000000000000000000000000000000000000000000000000000001011'

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

View File

@@ -0,0 +1,127 @@
'''
16^10 mogelijkheden, nie plezant dus, mss zoeken naar een andere manier da we iets kunnen vinden.
wat doet de expand key eigenlijk? dat soort dingen
expand key repeat gewoon de key die hij binnen krijgt (de 10 bytes) tot het de lengte heeft van het bestand dat geencrypt moet worden
nu is de vraag, is er een stuk in een gif dat elke keer hetzelfde is en lang genoeg is dat we zo de key terug kunnen vinden.
'''
dus, aangezien ons bestand een gif is betekend dit dat het begint met de letters GIF, dus de eerste 3 bytes kunnen ons al een stuk van onze key geven
de volgende 3 bytes zijn 2 mogelijkheden 87a of 89a, dit kan ons ook al een voordeel geven, maar dan komen we inde problemen. meeste van de volgende bytes zijn afhankelijk van de afbeelding, daarna komen we in de volgende blok, nvm onze foto is 960 op 640, dit is een grote hulp want dat betekend dat we onze volledige string zullen hebben op 1 byte na: de eerste 3 bytes : GIF gevolgd door de volgende 3 bytes 87a/89a en dan gevolgd door 4 bytes die de grote van de afbeelding tonen,
waarvan we weten dat deze 960 op 640 px is
bij onze voorbeeld foto was dit:
4947 3846 6139 03c0 0280 00f7 0000 0000
0000 0033 6600 0000 0099 cc00 0000 00ff
002b 2b00 0033 662b
G I F 8 9 a 300 003 200 002
na een poging om onze afbeelding een key uit te krijgen kreeg ik deze terug:
473b572b07d029db3b82
blijkbaar verkeerd erges iets gedaan, dit is misschien de key?
f7a31b32b15694383c90
daarboven op heeft ons voorbeeld dezelfde dimensies? demensies? een van die twee. heeft dezelfde hoeveelheden van breedte en hoogte als onze te cracken gif. het enige dat kan veranderen is de version, dat van 89a naar 87a kan gaan. dit betekend dat we dus de key veel gemakkelijker eruit kunnen halen door te kijken naar de binaire waarden van deze letters en zo een xor uit te voeren om onze key te krijgen. yay
temp:
2b00 0099 cc2b 2b00
hier is wat info over gifs:
{
GIF Header
Offset Length Contents
0 3 bytes "GIF"
3 3 bytes "87a" or "89a"
6 2 bytes <Logical Screen Width>
8 2 bytes <Logical Screen Height>
10 1 byte bit 0: Global Color Table Flag (GCTF)
bit 1..3: Color Resolution
bit 4: Sort Flag to Global Color Table
bit 5..7: Size of Global Color Table: 2^(1+n)
11 1 byte <Background Color Index>
12 1 byte <Pixel Aspect Ratio>
13 ? bytes <Global Color Table(0..255 x 3 bytes) if GCTF is one>
? bytes <Blocks>
1 bytes <Trailer> (0x3b)
Image Block
Offset Length Contents
0 1 byte Image Separator (0x2c)
1 2 bytes Image Left Position
3 2 bytes Image Top Position
5 2 bytes Image Width
7 2 bytes Image Height
8 1 byte bit 0: Local Color Table Flag (LCTF)
bit 1: Interlace Flag
bit 2: Sort Flag
bit 2..3: Reserved
bit 4..7: Size of Local Color Table: 2^(1+n)
? bytes Local Color Table(0..255 x 3 bytes) if LCTF is one
1 byte LZW Minimum Code Size
[ // Blocks
1 byte Block Size (s)
(s)bytes Image Data
]*
1 byte Block Terminator(0x00)
Graphic Control Extension Block
Offset Length Contents
0 1 byte Extension Introducer (0x21)
1 1 byte Graphic Control Label (0xf9)
2 1 byte Block Size (0x04)
3 1 byte bit 0..2: Reserved
bit 3..5: Disposal Method
bit 6: User Input Flag
bit 7: Transparent Color Flag
4 2 bytes Delay Time (1/100ths of a second)
6 1 byte Transparent Color Index
7 1 byte Block Terminator(0x00)
Comment Extension Block
Offset Length Contents
0 1 byte Extension Introducer (0x21)
1 1 byte Comment Label (0xfe)
[
1 byte Block Size (s)
(s)bytes Comment Data
]*
1 byte Block Terminator(0x00)
Plain Text Extension Block
Offset Length Contents
0 1 byte Extension Introducer (0x21)
1 1 byte Plain Text Label (0x01)
2 1 byte Block Size (0x0c)
3 2 bytes Text Grid Left Position
5 2 bytes Text Grid Top Position
7 2 bytes Text Grid Width
9 2 bytes Text Grid Height
10 1 byte Character Cell Width(
11 1 byte Character Cell Height
12 1 byte Text Foreground Color Index(
13 1 byte Text Background Color Index(
[
1 byte Block Size (s)
(s)bytes Plain Text Data
]*
1 byte Block Terminator(0x00)
Application Extension Block
Offset Length Contents
0 1 byte Extension Introducer (0x21)
1 1 byte Application Label (0xff)
2 1 byte Block Size (0x0b)
3 8 bytes Application Identifire
[
1 byte Block Size (s)
(s)bytes Application Data
]*
1 byte Block Terminator(0x00)
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

133176
yt/comments-AKLrKMz-avE.json Normal file

File diff suppressed because one or more lines are too long