iimon TECH BLOG

iimonエンジニアが得られた経験や知識を共有して世の中をイイモンにしていくためのブログです

情報セキュリティと暗号技術の機密性の概要

こんにちは。iimonでエンジニアをしている林と申します。

今回は情報セキュリティについて調べた事を記事にしました。

全部記事にすると、とてつもない量になりますので分けていこうかなって思います。

今回は情報セキュリティと暗号技術の機密性の概要について解説していきます。

暗号化について使われる用語については以下になります。

暗号の用語

  • 平文
    • 暗号化される前のデータ
  • 暗号文
    • 暗号化されたデータ
  • 復号化
    • 暗号化されたデータを平文に戻す
    • 暗号化、復号化の際に使用する鍵データ
  • 暗号解読
    • 正規の復号手順を踏まずに暗号化されたデータの平文を取得することに成功したこと。一部でも解読出来たら暗号解読出来たと判断される場合もあるので状況によって意味が異なってくる

そして情報セキュリティーの要素ですがいくつかの要素で構成されています。

情報セキュリティの3要素

  • 機密性
    • データの秘匿
  • 完全性
    • データの正確さ(改竄されてないこと)
  • 可用性
    • データをいつでも安全に利用できる状態の確保

情報セキュリティの観点としては上記の3つは最低限保証しなければなりません。

そしてより重要な情報を扱う上では以下の追加要素も考慮しなければなりません。

情報セキュリティの追加要素

  • 真正性
    • 通信相手が本当に本人なのか
  • 責任追跡性
    • システムがおかしな挙動をしたり攻撃された時に原因を追跡できるようにする
  • 否認防止
    • 取引などの承認を本人が了承したにも関わらず否認された時に反論できるようにする
  • 信頼性
    • 不具合なくシステムが正常に動作していること

暗号技術の要素

そして暗号技術は主に以下の要素を満たす為に利用される技術です。

  • 機密性→暗号化、認証(復号化)
  • 完全性→電子署名、メッセージ認証コード
  • 真正性・否認防止→認証、電子署名

セキュリティ業界での原理原則

以下がセキュリティ業界で広く知れ渡っている原理原則とのことです。

他にもあるかもしれませんが、今回は以下の3つを紹介していきます。

  • Work Factor
    • 暗号を破るために必要な時間、手間、リソースの推定値を指します。具体的には、平文に戻すための計算量や、解読を高速化するために使用されるGPUや専用ハードウェアなどのリソースも含まれます。暗号アルゴリズムが複雑であるほど、また鍵の長さが長いほど、work factorは高くなります。ただし、すべての情報が永久に守られる必要はありません。例えば、ある情報が一週間や一年で価値を失う場合、その期間において解読が困難であれば十分です。したがって、機密情報の保護においては、その情報の価値や寿命に応じた適切な暗号形式を選択することが重要です。
  • ケルクホフスの原理
    • 暗号アルゴリズムが攻撃者に知られても安全である事は現代暗号には必須とされている。暗号アルゴリズムは非公開にした方が安全じゃ無いかと思う人もいるかもしれないが、非公開にすることで専門家にレビューを受けれない為、暗号に脆弱性があったとしても設計者たちが欠陥に気付かないまま放置された状態で利用されてしまうため、知らない間に危険に晒されている可能性があります。非公開にすれば短期的には解読されるまでの時間稼ぎは出来るかもしれないですが、暗号アルゴリズムの内部の仕組みを推測されて解明されるのは時間の問題になる為、一般的には公開して安全性を担保する事が必要です。
  • シュナイアーの法則
    • 暗号学者ブルース・シュナイアーによって提唱されたもので、最強の暗号のプロである(と自分で思い込んでいる)自分自身でも破れないようなセキュリティを作って『安全だ』などと思うのは、無能な素人と同レベルだ。他の多くの専門家による長年の解析を経ても破ることができないようなセキュリティを作る事こそが難しいのだ」というものです。こちらは、要約すると以下の理由により安全じゃないと言う提唱のようです。
    • バイアス:設計者はシステムが安全であると信じたいというバイアスがあり、潜在的脆弱性を見逃す可能性がある
    • 専門知識の限界: 暗号システムの安全性を評価するには、幅広い専門知識と経験が必要で、設計者がすべての攻撃手法や脆弱性を知っているわけではないため、他の専門家によるレビューが不可欠
    • 多様な視点の欠如: 他の専門家によるレビューは、異なる視点やアプローチを提供できる。これにより、設計者が見逃した脆弱性や攻撃手法が発見される可能性が高まる。
    • コミュニティの検証: 暗号システムの安全性は、様々なコミュニティによる検証とテストを経て初めて確立される。多くの専門家がシステムを評価し、攻撃を試みることで、システムの強度が担保される。

言われてみれば自分で作った暗号を自分で破れないからと言って、それが安全だという確証は無いのでケルクホフスの原理に従って暗号アルゴリズムを作った際は公開するべきと言う考え方に共感しました。

機密性

暗号化技術の機密性は暗号化と復号化の2つで構成されています。

主に暗号化する場合は以下の3つが使われる事が多いです。

共通鍵暗号

秘密鍵暗号や対称鍵暗号とも呼ばれます。

共通鍵暗号は暗号化する時に使う鍵と復号する時に使う鍵が同じ暗号方式です。

どちらも同じ鍵を使って暗号、復号を行う為、

秘密鍵として他人に知られないようにしないといけません。

主にHDDの暗号化や無線LANVPNなどの暗号化に使われているみたいです。

流れとしては以下のようになります。

1、秘密鍵を他人に知られないように共有

2、送信者は秘密鍵で平文を暗号化し送信

3、受信者は秘密鍵で復号し平文を取得

公開鍵暗号

非対称鍵暗号とも呼ばれます。

公開鍵暗号は暗号化用の公開鍵と復号化用の秘密鍵を作る暗号方式です。

共通鍵暗号と違い、秘密鍵でのみ復号化出来、公開鍵から秘密鍵を求めることは数学的に困難とされているので共通鍵暗号のように鍵を相手に渡すのに苦労することはない利点があります。

主に暗号通信や電子署名の暗号化に使われているみたいです。

流れとしては以下のようになります。

1、受信者が公開鍵と秘密鍵の鍵ペアを作成

2、送信者に公開鍵を共有

3、送信者は公開鍵で平文を暗号化して暗号文を送る

4、受信者は秘密鍵で復号

ハイブリット暗号

ハイブリット暗号は共通鍵暗号の鍵を公開鍵暗号で暗号化して渡し、

送信データ本体は共通鍵暗号で暗号化して送る暗号方式です。

公開鍵暗号共通鍵暗号に比べて相当処理が重い為、

公開鍵暗号共通鍵暗号を組み合わせて軽くする暗号方式になります。

主にHTTPSで使われているみたいです。

流れとしては以下のようになります。

1、受信者は公開鍵を送信者に共有しておく

2、送信者は共通鍵暗号秘密鍵を都度作成(セッション鍵とも呼ばれる)

3、送信者は作成した共通鍵暗号秘密鍵を公開鍵で暗号化して送る

4、送信者は平文を共通鍵で暗号化して送る

5、受信者は共通鍵暗号秘密鍵を公開鍵の秘密鍵で復号

6、受信者は暗号文を復号した共通鍵で復号

上記のいずれかの暗号方式を使用しセキュアな通信を実現してます。

まとめ

暗号化の機密性の概要について解説しました。

情報セキュリティとしては、ほんの基礎の基礎でしか無いんですが、概要だけでも纏めているだけで自分の中に落とし込まれて大分整理がついたので良かったなって思います。

詳しい暗号化のアルゴリズムまで纏められなかった為、他のブログと被らなければ次回纏めたいと思います。

完全性や真正性の解説もありますし、続けて行くと超大作になりそうです。。。

乞うご期待!!!!!!

また、iimonではエンジニアを募集しています。カジュアルからでもお話させていただきたく、是非ご応募していただけると嬉しいです! Wantedly / Green

参考資料

図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書

https://narto.hatenablog.com/entry/2023/01/27/225839

https://www.gmosign.com/media/work-style/post-0241/

https://www.sompocybersecurity.com/column/glossary/kerckhoffs-principle#:~:text=ケルクホフスの原理(Kerckhoffs's Principle,であるというものです。

https://news.mynavi.jp/techplus/article/db_security-6/#:~:text=暗号化におけるワークファクター,考えることができます。

https://www.markupdancing.net/archive/20180221-093200.html

https://www.gmo.jp/security/ciphersecurity/encryption/

https://xtech.nikkei.com/it/atcl/column/16/072100153/072100009/

https://techlabo.ryosan.co.jp/article/23103003_1023.html#:~:text=暗号技術は、セキュリティ機能,に読まれないこと。

https://www.fujitsu.com/jp/solutions/business-technology/security/secure/column/201703-1/

https://www.youtube.com/watch?v=8BIqiqQnmZ8

https://xtech.nikkei.com/it/article/COLUMN/20060620/241303/

https://meetsmore.com/product-services/electronic-signature/media/105405