暗号の常識4つ
暗号技術におけるすごく基本的なことをまとめてみた。
秘密の暗号アルゴリズムは使わない
自社内で開発して秘密にした暗号アルゴリズムは危険。
暗号アルゴリズムの秘密はいつか必ず暴かれる
秘密にしているアルゴリズムが暴かれると危ない。逆にアルゴリズムが公開されていて使われているものは、暴露も何もないよね、ということ。
つまり、強い暗号というのはアルゴリズムがわかっていても解読できないもの。アルゴリズムがわかると終わる暗号は弱い。
強い暗号アルゴリズムを生み出すことは危険
強いという自信が過信につながる。
強い暗号とは、暗号の専門家に、アルゴリズム・ソースコード・平文と暗号文を渡していても、新しい暗号文の解読に時間がかかるものである。
弱い暗号は暗号化しないよりも危険
暗号化を少しでもやった方がいいだろうと弱い暗号を使うことで、過信につながる。「暗号」という言葉によって安心感が出てしまう。
どんな暗号もいつかは解読できる
どんな暗号アルゴリズムでも、すべての鍵を試せばいつかは解読できる。それが現実的な時間内かどうかはさておき。
なので、暗号文が解読されるまでの時間と、暗号で守りたい平文の価値のバランスが重要。そんなに守る価値のないものに、時間のかかる暗号を使ってもコスパが悪い。
暗号はセキュリティのほんの一部
暗号技術は、通信の盗聴において能力が発揮できる。だが、守るべきはそこだけではない。ソーシャルエンジニアリングという攻撃では、そもそも暗号の強さは関係ない。
高いセキュリティを保つということは、システムというものの性質を理解しなくてはいけない。システムのつながりの中で弱い部分を守らなくてはいけず、一番弱いのは人間。