Electricode


the simplicity of ECB mode is very elegant, but is it secure?

intro puzzle

Challenge script:
from Crypto.Cipher import AES
import os

SECRET_MESSAGE = "THISISAFAKEMESSAGEYOUNEEDTOUSETHEOUTPUTTOGETTHEREALSECRETMESSAGE"
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
assert all([char in alphabet for char in SECRET_MESSAGE]) # makes sure the only characters in the secret message are in the alphabet

key = os.urandom(16) # generate a random key
cipher = AES.new(key, AES.MODE_ECB) # defines the AES cipher using ECB mode
for char in SECRET_MESSAGE: # encrypt the secret message character by character
    print(cipher.encrypt((char + "\x00" * 15).encode()).hex()) # encrypt the character using AES-ECB mode
Output:
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
35d1cf51d69e59eb7362ba1234632091
f2ac545a54047af17df7a836c06da788
fc6250cf6ffc56b0ec8ad964a9a69436
b2537edc069d6a7cf459414bd9d68132
fc6250cf6ffc56b0ec8ad964a9a69436
abcef6667beaa72a79f2f2501cb5fdb4
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
b1d90d1a8830e296e733da7a737f89bd
6367c23c6ef24d13771d4d913aa61ede
75204bf7b031b7ed42afa3e6e0d09ac2
97722671e472f38a7de77ba3adc8514d
b2537edc069d6a7cf459414bd9d68132
aa0b5e6d8ebd25852828322e0582e757
61c4c070e25569723ec1237a58b2444c
b2537edc069d6a7cf459414bd9d68132
8e413fb567af43774a0548f33512345f
084390594f9d8ede69731a920d38f669
75204bf7b031b7ed42afa3e6e0d09ac2
fcd4ff5c50b856e22c6382cfc7b24668
aa0b5e6d8ebd25852828322e0582e757
084390594f9d8ede69731a920d38f669
75204bf7b031b7ed42afa3e6e0d09ac2
aa0b5e6d8ebd25852828322e0582e757
aa0b5e6d8ebd25852828322e0582e757
a155270568e947ad38a58cd265340a67
b2537edc069d6a7cf459414bd9d68132
fc6250cf6ffc56b0ec8ad964a9a69436
a249a9a5fa938d1ede64e155d4a84fa1
35d1cf51d69e59eb7362ba1234632091
97722671e472f38a7de77ba3adc8514d
aa0b5e6d8ebd25852828322e0582e757
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
ddfe22f2283da4f48ef2fd804694e391
f2ac545a54047af17df7a836c06da788
35d1cf51d69e59eb7362ba1234632091
084390594f9d8ede69731a920d38f669
75204bf7b031b7ed42afa3e6e0d09ac2
b2537edc069d6a7cf459414bd9d68132
aa0b5e6d8ebd25852828322e0582e757
61c4c070e25569723ec1237a58b2444c
b2537edc069d6a7cf459414bd9d68132
a76d4d61bf869a8ee2e5431ce64417b4
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
f2ac545a54047af17df7a836c06da788
f2ac545a54047af17df7a836c06da788
ac62d6e3cec72fa724c26d85e2de9012
f2ac545a54047af17df7a836c06da788
fc6250cf6ffc56b0ec8ad964a9a69436
75204bf7b031b7ed42afa3e6e0d09ac2
97b50503eb91515245ea9ad635f6d923
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
35d1cf51d69e59eb7362ba1234632091
b2537edc069d6a7cf459414bd9d68132
ac62d6e3cec72fa724c26d85e2de9012
fc6250cf6ffc56b0ec8ad964a9a69436
6367c23c6ef24d13771d4d913aa61ede
fcd4ff5c50b856e22c6382cfc7b24668
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
ddfe22f2283da4f48ef2fd804694e391
aa0b5e6d8ebd25852828322e0582e757
a76d4d61bf869a8ee2e5431ce64417b4
abcef6667beaa72a79f2f2501cb5fdb4
fc6250cf6ffc56b0ec8ad964a9a69436
a76d4d61bf869a8ee2e5431ce64417b4
a249a9a5fa938d1ede64e155d4a84fa1
abcef6667beaa72a79f2f2501cb5fdb4
a76d4d61bf869a8ee2e5431ce64417b4
aa0b5e6d8ebd25852828322e0582e757
db03fcdcf7a092e610f044156896ed2e
6367c23c6ef24d13771d4d913aa61ede
aa0b5e6d8ebd25852828322e0582e757
75204bf7b031b7ed42afa3e6e0d09ac2
fcd4ff5c50b856e22c6382cfc7b24668
ac62d6e3cec72fa724c26d85e2de9012
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
35d1cf51d69e59eb7362ba1234632091
f2ac545a54047af17df7a836c06da788
ac62d6e3cec72fa724c26d85e2de9012
8e413fb567af43774a0548f33512345f
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
75204bf7b031b7ed42afa3e6e0d09ac2
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
ac62d6e3cec72fa724c26d85e2de9012
1681822340006c4aaac4a787d38632e7
35d1cf51d69e59eb7362ba1234632091
ac62d6e3cec72fa724c26d85e2de9012
084390594f9d8ede69731a920d38f669
b07c2f249237d7fbcbcdf92dbcf4971e
fc6250cf6ffc56b0ec8ad964a9a69436
ddfe22f2283da4f48ef2fd804694e391
aa0b5e6d8ebd25852828322e0582e757
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
1681822340006c4aaac4a787d38632e7
35d1cf51d69e59eb7362ba1234632091
8e413fb567af43774a0548f33512345f
75204bf7b031b7ed42afa3e6e0d09ac2
b2537edc069d6a7cf459414bd9d68132
b2537edc069d6a7cf459414bd9d68132
fc6250cf6ffc56b0ec8ad964a9a69436
fc6250cf6ffc56b0ec8ad964a9a69436
b07c2f249237d7fbcbcdf92dbcf4971e
35d1cf51d69e59eb7362ba1234632091
a76d4d61bf869a8ee2e5431ce64417b4
a155270568e947ad38a58cd265340a67
aa0b5e6d8ebd25852828322e0582e757
8e413fb567af43774a0548f33512345f
ddfe22f2283da4f48ef2fd804694e391
aa0b5e6d8ebd25852828322e0582e757
fcd4ff5c50b856e22c6382cfc7b24668
084390594f9d8ede69731a920d38f669
35d1cf51d69e59eb7362ba1234632091
f2ac545a54047af17df7a836c06da788
f2ac545a54047af17df7a836c06da788
ac62d6e3cec72fa724c26d85e2de9012
084390594f9d8ede69731a920d38f669
abcef6667beaa72a79f2f2501cb5fdb4
ac62d6e3cec72fa724c26d85e2de9012
fc6250cf6ffc56b0ec8ad964a9a69436
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
f2ac545a54047af17df7a836c06da788
695b918897337b345cef6e4d0549187b
aa0b5e6d8ebd25852828322e0582e757
a155270568e947ad38a58cd265340a67
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
aa0b5e6d8ebd25852828322e0582e757
7ea90731233366e181a020e8cb86b9ce
35d1cf51d69e59eb7362ba1234632091
7ea90731233366e181a020e8cb86b9ce
ac62d6e3cec72fa724c26d85e2de9012
695b918897337b345cef6e4d0549187b
35d1cf51d69e59eb7362ba1234632091
a76d4d61bf869a8ee2e5431ce64417b4
084390594f9d8ede69731a920d38f669
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
b2537edc069d6a7cf459414bd9d68132
ddfe22f2283da4f48ef2fd804694e391
a76d4d61bf869a8ee2e5431ce64417b4
fc6250cf6ffc56b0ec8ad964a9a69436
695b918897337b345cef6e4d0549187b
084390594f9d8ede69731a920d38f669
a155270568e947ad38a58cd265340a67
aa0b5e6d8ebd25852828322e0582e757
a155270568e947ad38a58cd265340a67
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
a155270568e947ad38a58cd265340a67
ac62d6e3cec72fa724c26d85e2de9012
aa0b5e6d8ebd25852828322e0582e757
8e413fb567af43774a0548f33512345f
ac62d6e3cec72fa724c26d85e2de9012
fc6250cf6ffc56b0ec8ad964a9a69436
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
b07c2f249237d7fbcbcdf92dbcf4971e
fc6250cf6ffc56b0ec8ad964a9a69436
6367c23c6ef24d13771d4d913aa61ede
f2ac545a54047af17df7a836c06da788
a155270568e947ad38a58cd265340a67
ddfe22f2283da4f48ef2fd804694e391
a76d4d61bf869a8ee2e5431ce64417b4
fc6250cf6ffc56b0ec8ad964a9a69436
7ea90731233366e181a020e8cb86b9ce
35d1cf51d69e59eb7362ba1234632091
7ea90731233366e181a020e8cb86b9ce
f2ac545a54047af17df7a836c06da788
ac62d6e3cec72fa724c26d85e2de9012
75204bf7b031b7ed42afa3e6e0d09ac2
fc6250cf6ffc56b0ec8ad964a9a69436
b2537edc069d6a7cf459414bd9d68132
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
aa0b5e6d8ebd25852828322e0582e757
aa0b5e6d8ebd25852828322e0582e757
fcd4ff5c50b856e22c6382cfc7b24668
7ea90731233366e181a020e8cb86b9ce
a249a9a5fa938d1ede64e155d4a84fa1
fc6250cf6ffc56b0ec8ad964a9a69436
a155270568e947ad38a58cd265340a67
aa0b5e6d8ebd25852828322e0582e757
1681822340006c4aaac4a787d38632e7
b07c2f249237d7fbcbcdf92dbcf4971e
aa0b5e6d8ebd25852828322e0582e757
75204bf7b031b7ed42afa3e6e0d09ac2
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
084390594f9d8ede69731a920d38f669
75204bf7b031b7ed42afa3e6e0d09ac2
97b50503eb91515245ea9ad635f6d923
35d1cf51d69e59eb7362ba1234632091
aa0b5e6d8ebd25852828322e0582e757
8e413fb567af43774a0548f33512345f
7ea90731233366e181a020e8cb86b9ce
aa0b5e6d8ebd25852828322e0582e757
fcd4ff5c50b856e22c6382cfc7b24668
35d1cf51d69e59eb7362ba1234632091
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
aa0b5e6d8ebd25852828322e0582e757
084390594f9d8ede69731a920d38f669
b2537edc069d6a7cf459414bd9d68132
8e413fb567af43774a0548f33512345f
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
6367c23c6ef24d13771d4d913aa61ede
35d1cf51d69e59eb7362ba1234632091
f2ac545a54047af17df7a836c06da788
f2ac545a54047af17df7a836c06da788
ac62d6e3cec72fa724c26d85e2de9012
7ea90731233366e181a020e8cb86b9ce
35d1cf51d69e59eb7362ba1234632091
a155270568e947ad38a58cd265340a67
8e413fb567af43774a0548f33512345f
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
a76d4d61bf869a8ee2e5431ce64417b4
fcd4ff5c50b856e22c6382cfc7b24668
b07c2f249237d7fbcbcdf92dbcf4971e
6367c23c6ef24d13771d4d913aa61ede
ddfe22f2283da4f48ef2fd804694e391
aa0b5e6d8ebd25852828322e0582e757
fcd4ff5c50b856e22c6382cfc7b24668
7ea90731233366e181a020e8cb86b9ce
ddfe22f2283da4f48ef2fd804694e391
aa0b5e6d8ebd25852828322e0582e757
75204bf7b031b7ed42afa3e6e0d09ac2
97b50503eb91515245ea9ad635f6d923
6367c23c6ef24d13771d4d913aa61ede
084390594f9d8ede69731a920d38f669
75204bf7b031b7ed42afa3e6e0d09ac2
084390594f9d8ede69731a920d38f669
abcef6667beaa72a79f2f2501cb5fdb4
ac62d6e3cec72fa724c26d85e2de9012
fc6250cf6ffc56b0ec8ad964a9a69436
6367c23c6ef24d13771d4d913aa61ede
1681822340006c4aaac4a787d38632e7
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
b2537edc069d6a7cf459414bd9d68132
b2537edc069d6a7cf459414bd9d68132
fc6250cf6ffc56b0ec8ad964a9a69436
8e413fb567af43774a0548f33512345f
aa0b5e6d8ebd25852828322e0582e757
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
aa0b5e6d8ebd25852828322e0582e757
61c4c070e25569723ec1237a58b2444c
35d1cf51d69e59eb7362ba1234632091
a249a9a5fa938d1ede64e155d4a84fa1
ddfe22f2283da4f48ef2fd804694e391
f2ac545a54047af17df7a836c06da788
aa0b5e6d8ebd25852828322e0582e757
fc6250cf6ffc56b0ec8ad964a9a69436
abcef6667beaa72a79f2f2501cb5fdb4
b07c2f249237d7fbcbcdf92dbcf4971e
fc6250cf6ffc56b0ec8ad964a9a69436
1681822340006c4aaac4a787d38632e7
6367c23c6ef24d13771d4d913aa61ede
8e413fb567af43774a0548f33512345f
084390594f9d8ede69731a920d38f669
75204bf7b031b7ed42afa3e6e0d09ac2
97b50503eb91515245ea9ad635f6d923
aa0b5e6d8ebd25852828322e0582e757
fcd4ff5c50b856e22c6382cfc7b24668
7ea90731233366e181a020e8cb86b9ce
fcd4ff5c50b856e22c6382cfc7b24668
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
f2ac545a54047af17df7a836c06da788
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
97722671e472f38a7de77ba3adc8514d
8e413fb567af43774a0548f33512345f
b2537edc069d6a7cf459414bd9d68132
6367c23c6ef24d13771d4d913aa61ede
abcef6667beaa72a79f2f2501cb5fdb4
abcef6667beaa72a79f2f2501cb5fdb4
f2ac545a54047af17df7a836c06da788
084390594f9d8ede69731a920d38f669
97722671e472f38a7de77ba3adc8514d
aa0b5e6d8ebd25852828322e0582e757
084390594f9d8ede69731a920d38f669
a249a9a5fa938d1ede64e155d4a84fa1
35d1cf51d69e59eb7362ba1234632091
97b50503eb91515245ea9ad635f6d923
aa0b5e6d8ebd25852828322e0582e757
8e413fb567af43774a0548f33512345f
fcd4ff5c50b856e22c6382cfc7b24668
fc6250cf6ffc56b0ec8ad964a9a69436
a249a9a5fa938d1ede64e155d4a84fa1
ddfe22f2283da4f48ef2fd804694e391
35d1cf51d69e59eb7362ba1234632091
a76d4d61bf869a8ee2e5431ce64417b4
aa0b5e6d8ebd25852828322e0582e757
a155270568e947ad38a58cd265340a67
b2537edc069d6a7cf459414bd9d68132
fc6250cf6ffc56b0ec8ad964a9a69436
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
695b918897337b345cef6e4d0549187b
aa0b5e6d8ebd25852828322e0582e757
a76d4d61bf869a8ee2e5431ce64417b4
ac62d6e3cec72fa724c26d85e2de9012
fcd4ff5c50b856e22c6382cfc7b24668
fc6250cf6ffc56b0ec8ad964a9a69436
75204bf7b031b7ed42afa3e6e0d09ac2
b2537edc069d6a7cf459414bd9d68132
a76d4d61bf869a8ee2e5431ce64417b4
084390594f9d8ede69731a920d38f669
695b918897337b345cef6e4d0549187b
aa0b5e6d8ebd25852828322e0582e757
a155270568e947ad38a58cd265340a67
aa0b5e6d8ebd25852828322e0582e757
61c4c070e25569723ec1237a58b2444c
35d1cf51d69e59eb7362ba1234632091
a249a9a5fa938d1ede64e155d4a84fa1
ddfe22f2283da4f48ef2fd804694e391
f2ac545a54047af17df7a836c06da788
aa0b5e6d8ebd25852828322e0582e757
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
35d1cf51d69e59eb7362ba1234632091
b2537edc069d6a7cf459414bd9d68132
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
ddfe22f2283da4f48ef2fd804694e391
6367c23c6ef24d13771d4d913aa61ede
a76d4d61bf869a8ee2e5431ce64417b4
aa0b5e6d8ebd25852828322e0582e757
f2ac545a54047af17df7a836c06da788
ac62d6e3cec72fa724c26d85e2de9012
b07c2f249237d7fbcbcdf92dbcf4971e
aa0b5e6d8ebd25852828322e0582e757
a76d4d61bf869a8ee2e5431ce64417b4
aa0b5e6d8ebd25852828322e0582e757
b2537edc069d6a7cf459414bd9d68132
fc6250cf6ffc56b0ec8ad964a9a69436
8e413fb567af43774a0548f33512345f
b07c2f249237d7fbcbcdf92dbcf4971e
fc6250cf6ffc56b0ec8ad964a9a69436
1681822340006c4aaac4a787d38632e7
b07c2f249237d7fbcbcdf92dbcf4971e
fc6250cf6ffc56b0ec8ad964a9a69436
1681822340006c4aaac4a787d38632e7
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
b2537edc069d6a7cf459414bd9d68132
b2537edc069d6a7cf459414bd9d68132
35d1cf51d69e59eb7362ba1234632091
fcd4ff5c50b856e22c6382cfc7b24668
97722671e472f38a7de77ba3adc8514d
084390594f9d8ede69731a920d38f669
a155270568e947ad38a58cd265340a67
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
1681822340006c4aaac4a787d38632e7
fc6250cf6ffc56b0ec8ad964a9a69436
a76d4d61bf869a8ee2e5431ce64417b4
97722671e472f38a7de77ba3adc8514d
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
b07c2f249237d7fbcbcdf92dbcf4971e
35d1cf51d69e59eb7362ba1234632091
f2ac545a54047af17df7a836c06da788
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
b2537edc069d6a7cf459414bd9d68132
b07c2f249237d7fbcbcdf92dbcf4971e
aa0b5e6d8ebd25852828322e0582e757
35d1cf51d69e59eb7362ba1234632091
75204bf7b031b7ed42afa3e6e0d09ac2
8e413fb567af43774a0548f33512345f
1681822340006c4aaac4a787d38632e7
aa0b5e6d8ebd25852828322e0582e757
a76d4d61bf869a8ee2e5431ce64417b4
084390594f9d8ede69731a920d38f669
8e413fb567af43774a0548f33512345f
fc6250cf6ffc56b0ec8ad964a9a69436
695b918897337b345cef6e4d0549187b
aa0b5e6d8ebd25852828322e0582e757
a76d4d61bf869a8ee2e5431ce64417b4
8e413fb567af43774a0548f33512345f
b2537edc069d6a7cf459414bd9d68132
35d1cf51d69e59eb7362ba1234632091
abcef6667beaa72a79f2f2501cb5fdb4
abcef6667beaa72a79f2f2501cb5fdb4
aa0b5e6d8ebd25852828322e0582e757
a155270568e947ad38a58cd265340a67