最近の記事

Diffie-Hellmanと楕円曲線

前回、軽く対称鍵暗号について話した。しかし、鋭い読者は既にお気づきだろうが対称暗号には問題がある。それは、鍵の受け渡しである。例えば、暗号化された通信を復号化するために、通信相手に暗号鍵を送る必要がある。しかしここで第三者が通信を傍受しており、それにより鍵が盗まれたしまった場合、暗号化された通信を全て復号化されてしまう。 そこで今回はDeffie-Hellmanという暗号鍵を暗号化するための手法と楕円曲線を使ったシステム(合わせてECDH: Elliptic Curve De

    • VBAのパスワードクラッキングで学ぶ共通鍵暗号とハッシュ関数

      .xls .xlsm, .xla, .xlamのパスワードを外す手法は古くから周知の事実として受け止められている。しかし、外すだけならもっと簡単な方法があるが、せっかくなのであえてパスワードをクラッキングすることで共通鍵暗号とハッシュ関数について学ぼう。 まず、xlsやxlsmをzipしたxlディレクトリ下のvbaProject.binファイルをhex editorで開くとDPB=ではじまる文字列が見つかる。 残念ながら私はWindowsに対してアレルギー反応を持っている

      • Lineを使うべきではない理由

        通信の歴史は暗号の歴史である。 暗号技術の発展により、機密は守られ、プライバシーは保護され、顔の見えない相手の身元が保証され、そして情報の正しさが保証されるようになった。さらに、人間の通信相手がコンピューターに変わると情報の信頼性と改竄に対する防衛がより重要になってきている。 つまり、暗号技術の対応が遅れていることはそれらが保証されないことと同意義である。しかし、残念ながら暗号技術は複雑化の一途を辿り、堅牢性や脆弱性を理解しにくい状況である。 ゆえに、身近にあるLineの

        • 初代ポケモンのセレクトバグ

          初代ポケモンのセレクトバグをご存知だろうか。一番有名なものだと、メニューボタンでどうぐ の7番目でゲームボーイのセレクトボタンを押し、キャンセルした後に戦闘に入り、いらない技でもう一度セレクトを押した時レベル100になるというバグだ。 今回はこの仕組みについて解説しようと思う。 まず、ポケモンのデータは図のようにそれぞれの技に1 byte (8 bit), その後に親のIDに2 bytes, そして経験値が3 bytes(その後に攻撃力などが続く)がメモリに格納されている

        Diffie-Hellmanと楕円曲線