暗号学 - 暗号文、マスキング、ハッシュ

私が混乱するから書く暗号化とハッシュ


情報セキュリティ技術者試験を勉強しながら学んだ暗号学単元を忘れる前に整理しておきたい。

暗号学とは

情報を保護するための言語学的および数学的方法論(wikipedia曰く)

どの分野でも概要段階でその学問の歴史を学ぶことになる。 コンピュータ概論でコンピュータの歴史を学ぶ時は机に横になって寝ていたが、暗号学の歴史は天才たちの熾烈な頭脳攻防戦についての話なので、面白い小説を見ているような気分になる。

しかし、今日整理したいのは暗号学の歴史ではなく、理論的で実用的な側面からの暗号学である。 暗号技術に関連した歴史が気になるなら、KISAが作成した記事を見よう。

平文と暗号文

平文は暗号化が行われる前の元のメッセージで、暗号文は平文が何かで暗号化された後のメッセージである。 暗号学では平文をP(Plain Text)PyoungMoonと言い、暗号文をC(Cipher Text)と略して話す。

混乱と拡散

暗号化を行うには'混乱'と'拡散'が必須である。 混乱(Confusion)は暗号文と平文の相関関係を隠すこと。 拡散(Diffusion)は統計的性質を暗号文全体に広げて隠すことである。 これは何を言っているのだろうか?

P = 'I LOVE JIAE SEO' としよう。 この平文を変えて、'I LOVA JIEA SAO' にした。 よく見るとEをAに、AをEに変更したが、このように平文を変更して混乱を実装できる。

また、P = 'I LOVE JIAE SEO' としよう。 この平文を変えて、'I EVOL EAIJ OES' にした。 よく見ると各単語のスペルの順序を変えたが、このように平文テキストの位置を変更して拡散を実装できる。

これはまた暗号学でよく登場する**置換(Substitution)転置(Transposition)**の概念である。 混乱を実装する方法の中に置換があり、拡散を実装する方法の中に転置があるということである。

暗号化とハッシュ

暗号化とハッシュに関して、学んでいないと人々が混乱する内容がある。 まさに暗号化とハッシュの違いである。

暗号化(双方向暗号化)

暗号化とは他人が分からず、私は分かるということが核心である。 復号化過程を通じて元のデータが適時に完全に提供されなければならない。

ハッシュ(単方向暗号化)

ハッシュとは他人も分からず、私も分からないということが核心である。 平文1、平文2があるとしよう。二つの平文がハッシュと呼ぶ過程を経ると結果1、結果2が生成される。

この場合、私もあなたも誰も元のデータを復元できないが、二つのハッシュ結果物が異なるため、1番の元と2番の元が異なるということは分かる。(ハッシュ衝突が発生しない場合なら)

元を復元できず区別だけ可能という特徴を活用して、サーバーがパスワードを保存する時ハッシュ過程を経て保存した後、ログインを検証する時、パスワードが正しいか間違っているかの確認用途でよく使用される。

マスキング

マスキングとは他人も分からず、私も分からず、イエス様も分からないということが核心である。 'I LOVE JIAE SEO'平文を文字でマスキングすると、結果は'**************'である。 イエス様もこれは分からない。