読者です 読者をやめる 読者になる 読者になる

TERRY's Note

CTF関連、解いた問題、勉強の記録などなど

AES MESS - ABCTF

ABCTF CTF Crypto

ctftime.org

問題文

We encrypted a flag with AES-ECB encryption using a secret key, and got the hash: e220eb994c8fc16388dbd60a969d4953f042fc0bce25dbef573cf522636a1ba3fafa1a7c21ff824a5824c5dc4a376e75
However, we lost our plaintext flag and also lost our key and we can't seem to decrypt the hash back :(.
Luckily we encrypted a bunch of other flags with the same key. Can you recover the lost flag using this?

AESとは暗号化と復号に同じ鍵を用いる共通暗号方式の一種である

AESにはいくつかのモードがあって、今回はAES-ECBというモードで暗号化を行ったらしい
Wikipedia:暗号利用モード

それによって得られた暗号文はあるのだが、鍵が分からない
そのため、このページを利用して平文を復号するというのが今回の問題
リンク先には、同じ鍵を利用して暗号化された、平文と暗号文の組がいくつも並んでいる

実はAES-ECBというのは平文をブロック毎に区切り、独立して処理を行うモードらしく
暗号文のブロックが一致するものは、平文のブロックも一致している

与えられた暗号文をブロック毎(128bit毎)に分割する
e220eb994c8fc16388dbd60a969d4953
f042fc0bce25dbef573cf522636a1ba3
fafa1a7c21ff824a5824c5dc4a376e75

何も考えずそれぞれのブロックをCtrl + Fで検索する
すると以下の平文が引っかかった

abctf{looks_like_gospel_feebly}:e220eb994c8fc16388dbd60a969d49536d896bd7d6da9c4ce3eac5e4832c2f64
abctf{verism_evg_you_can_break_ajugas}:528c30c67c57968fa131684d07c1fa9cf042fc0bce25dbef573cf522636a1ba3c0bd6ceeec8e817f1be7b09a9a8b0fb8
abctf{eocene_fazes}:b58b970036b3a521a314d06f1436863efafa1a7c21ff824a5824c5dc4a376e75

1ブロックは16文字なので

abctf{looks_like | _gospel_feebly} 
abctf{verism_evg | _you_can_break_a | iugas}
abctf{eocene_faz | es}

このように分割でき、それぞれ該当する部分をつなぎ合わせると
abctf{looks_like_you_can_break_aes}
となりFLAGが出現した