id0-rsa.pubのメモ【Caesar】
Caesar
シーザー暗号の話。以下問題文。
Should probably stick to the salad ZNKIGKYGXIOVNKXOYGXKGRREURJIOVNKXCNOINOYXKGRRECKGQOSTUZYAXKNUCURJHKIGAYKOSZUURGFEZURUUQGZZNKCOQOVGMKGZZNKSUSKTZHAZOLOMAXKOZYMUZZUHKGZRKGYZROQKLOLZEEKGXYURJUXCNGZKBKXBGPJADLIVBAYKZNUYKRGYZZKTINGXGIZKXYGYZNKYURAZOUT Test Vector PT: HELLOWORLD KEY: B CT: IFMMPXPSME
とりあえず何文字ずらしたら良いかよくわからなかったので総当たりしてみる。
def caesar_decrypt(c, n): if ord('A') <= ord(c) and ord(c) <= ord('Z'): return chr((ord(c) - ord('A') - int(n)) % 26 + ord('A')) def main(): s = 'ZNKIGKYGXIOVNKXOYGXKGRREURJIOVNKXCNOINOYXKGRRECKGQOSTUZYAXKNUCURJHKIGAYKOSZUURGFEZURUUQGZZNKCOQOVGMKGZZNKSUSKTZHAZOLOMAXKOZYMUZZUHKGZRKGYZROQKLOLZEEKGXYURJUXCNGZKBKXBGPJADLIVBAYKZNUYKRGYZZKTINGXGIZKXYGYZNKYURAZOUT' for n in range(26): p = ''.join((caesar_decrypt(c, n) for c in s)) print(n, ': ', p) if __name__ == '__main__': main()
なんか読めそうな文章が出てきたでのsubmitしてみたが通らない。キレそう。
THECAESARCIPHERISAREALLYOLDCIPHERWHICHISREALLYWEAKIMNOTSUREHOWOLDBECAUSEIMTOOLAZYTOLOOKATTHEWIKIPAGEATTHEMOMENTBUTIFIGUREITSGOTTOBEATLEASTLIKEFIFTYYEARSOLDORWHATEVERVAJDUXFCPVUSETHOSELASTTENCHARACTERSASTHESOLUTION
Discuss The Problemをみると、テキストを読めみたいなことが書いったので読んで指示通りsubmitすれば終了。(めんどくさい)
Read the text that your decryption yields and follow the instructions, that will lead you to the solution we're looking for.