【情報セキュリティマネジメント試験対策】暗号化について②

:::note info
「ハイブリット暗号とは、
共通鍵暗号方式の長所＝暗号化・複合が早い
公開鍵暗号方式の長所＝鍵を安全に利用できる
を合わせ持つ方式」
:::

:::note info
CRYPTREC（Cryptography Research and Evaluation Committees）は、日本の暗号技術に関する研究・評価を行う組織です。総務省と経済産業省が中心となって運営しており、安全な暗号技術の普及を目的としています。

CRYPTRECの役割
	1.	電子政府推奨暗号リストの作成
	•	政府機関や民間企業が安心して使える暗号を選定する。
	•	現在推奨されている暗号方式をまとめた「電子政府推奨暗号リスト」を定期的に更新。
	2.	暗号技術の評価
	•	既存の暗号技術が今後も安全に使えるかを評価。
	•	新しい暗号技術の有用性を検討。
	3.	暗号技術に関する提言
	•	暗号技術の標準化や安全性に関するガイドラインを提供。


情報セキュリティマネジメント試験では、CRYPTRECの「電子政府推奨暗号リスト」に含まれる暗号方式を把握しておくことが重要です。試験で問われる可能性があるので、AESやRSAといった代表的な方式もあわせて覚えておきましょう。
:::

:::note info
「暗号の気殆化とは、暗号の考案された当時は容易に解読できなかった暗号アルゴリズムが古くなり、コンピュータの性能の飛躍的な向上などによって安全性が低下すること、解読されやすい状態になることを指します。
英語では “cryptographic degradation” などと表現されます。」

✅ 古い暗号方式の使用は危険！
	•	DES、SHA-1、RSA 1024bit などは安全ではない。
	•	AES（128bit以上）やSHA-2/SHA-3を使うべき。

✅ 定期的な暗号の見直しが必要！
	•	CRYPTREC（電子政府推奨暗号リスト）などの基準をチェックする。

✅ 量子コンピュータ対策
	•	量子コンピュータがRSAやECCを破る可能性があるため、耐量子暗号（PQC） への移行が進められている。

試験では、「なぜ暗号が安全ではなくなるのか？」や、「どの暗号方式が推奨されているか？」が問われるので、基本的な概念をしっかり押さえておきましょう！
:::

:::note info
「ハッシュ関数とは、入力データ（メッセージ）から固定長の値（ハッシュ値）を生成する関数 です。
情報セキュリティマネジメント試験（SG試験）では、データの整合性（改ざん検出）や認証に使われることを理解するのが重要です。」
試験では「SHA-1やMD5は安全ではない」「SHA-2やSHA-3が推奨される」といった知識が重要です。

＜ハッシュ関数の代表例＞
・SHA-256：256ビットのハッシュ値を出力
・MD5：128ビットのハッシュ値を出力

＜ハッシュ関数の用途＞

✅ データの改ざん検出
	•	メッセージのハッシュ値を比較して、改ざんされていないか確認する（整合性チェック）。

✅ 電子署名
	•	文書のハッシュ値を署名し、改ざんがないことを保証。

✅ パスワード管理
	•	ユーザーのパスワードをそのまま保存せず、ハッシュ化して保存する（例：SHA-256 + ソルト）。

✅ デジタル証明書
	•	証明書の正当性を保証するためにハッシュ関数が使用される。


＜試験で押さえるポイント＞
	1.	MD5やSHA-1は非推奨（衝突攻撃のリスクがある）
	2.	SHA-2やSHA-3を使用するのが安全
	3.	パスワード管理ではソルトを加えるとより安全
	4.	ハッシュ値が同じでも元データを復元することはできない（一方向性） 
:::

:::note info
「メッセージ認証符号（MAC）とは、改ざんを検知するためにブロック暗号で生成する。」

✅ 試験のポイント
	•	「MACは改ざん検知が目的」
	•	「秘密鍵を使うので、ハッシュ関数だけとは異なる（HMACを除く）」
	•	「ブロック暗号を使う方式（CBC-MACなど）がある」
 
:::

:::note info
「ディジタル（電子）署名とは、改ざん/なりすまし/否認を防止する。」
署名はハッシュ値を作成（送信）者の「秘密鍵」で暗号化する。
作成（送信）者しか使えない秘密鍵で暗号化することで本人確認となる。
送信されてきた署名を「作成（送信）者の公開鍵」で復号してハッシュ値に戻す。

＜使用例＞
S/MIME、XML署名など

＜ディジタル署名の目的＞
	1.	改ざん防止
	•	データが途中で変更されていないことを確認できる。
	2.	なりすまし防止（本人確認）
	•	本人しか持っていない「秘密鍵」で署名するため、送信者の正当性を保証。
	3.	否認防止（あとで「やってない」と言えない）
	•	署名は送信者しか作成できないため、「自分は送っていない」と言い逃れできない。 

＜試験で押さえるポイント＞

✅ 秘密鍵で署名し、公開鍵で検証する（公開鍵暗号方式を使用）
✅ ディジタル署名は「改ざん防止・なりすまし防止・否認防止」ができる
✅ ハッシュ値を利用することで、署名データを小さくできる    
:::

:::note info
「PKI（公開鍵基盤）とは
公開鍵証明書を作成する仕組み。
ネットワーク上に公開している公開鍵が、本当にその利用者のものか
（本人性があるか）を証明するために、
公開鍵証明書（ディジタル証明書や電子証明書ともいう）が用いられる。」

情報セキュリティマネジメント試験（SG試験）では、「公開鍵証明書を使って本人確認をする仕組み」として出題されます。

①CA（認証局：Certificate Authority）

CA（Certificate Authority）は、公開鍵証明書を発行する機関 です。
CAの役割は、公開鍵が本当にその利用者のものであることを証明すること です。

②公開鍵証明書（ディジタル証明書 / 電子証明書）

公開鍵証明書とは、公開鍵が本物であることを保証する電子的な証明書 です。
これは CAが発行し、CAの電子署名が付与されたデータです。

③CRL（証明書失効リスト：Certificate Revocation List）

CRLとは、無効になった証明書のリスト です。
証明書は有効期限がありますが、それより前に「不正利用の疑いがある」などの理由で失効 することがあります。
 

＜公開鍵証明書の役割＞

✅ 公開鍵の正当性を証明する（なりすまし防止）
✅ 認証局（CA）が発行するため、信頼できる
✅ 証明書が改ざんされていないか検証できる 

＜試験で押さえるポイント＞
	1.	PKIは「公開鍵証明書」を使って公開鍵の正当性を保証する。
	2.	公開鍵証明書を発行するのは「認証局（CA：Certificate Authority）」
	3.	公開鍵証明書には「利用者の公開鍵」と「認証局の署名」が含まれる。
	4.	証明書の改ざんを防ぐため、認証局の電子署名で保護されている。 

所有者と公開鍵の対応付けをするのに必要なポリシや技術の習合によって実現される基盤。
:::

::::::note alert
「AさんがBさんの公開鍵で暗号化した電子メールを
BさんとC三に送信した結果のうち、適切なものは？
ここで、Aさん、Bさん、Cさんそれぞれの公開鍵は3人全員が持ち、
それぞれの秘密鍵は本人だけが持っているものとする。」
:::

:::note warn
答え：
暗号化された電子メールを、Bさんだけが、自身の秘密鍵で複合できる。

＜結論（適切なもの）＞

✅ Bさんはメールを復号できる。
❌ Cさんは復号できない。（Bさんの秘密鍵を持っていないため） 

＜試験対策ポイント＞

✅ 公開鍵で暗号化したデータは、対応する秘密鍵でしか復号できない
✅ 誰でも公開鍵を使って暗号化できるが、復号できるのは秘密鍵の持ち主だけ
✅ 送信先全員が復号できるようにするには、それぞれの公開鍵で暗号化する必要がある 
:::

::::::note alert
「ディジタル署名などに用いるハッシュ関数の特徴は？」
:::

:::note warn
「メッセージダイジェストからメッセージを復元することは困難である。」

＜試験対策ポイント＞

✅ ハッシュ関数は不可逆（元のデータに戻せない）
✅ ハッシュ値（メッセージダイジェスト）は一意に近い値を持つが、完全に復元することはできない。
✅ ディジタル署名では、メッセージの改ざん検知に使われる。 

メッセージダイジェストの長さはメッセージの長さによらず一定です。

例えば、SHA-256というハッシュ関数を使った場合、どんな長さのメッセージでも、生成されるメッセージダイジェストの長さは**常に256ビット（32バイト）**になります。 
:::

::::::note alert
「パスワードを用いて利用者を認証する方法のうち適切なものはどれか。」
:::

:::note warn
「パスワードをハッシュ値に変換して登録しておき認証時に入力されたパスワードをハッシュ関数で変換して比較する。」

＜誤りのもの＞
「パスワードに対応する利用者IDのハッシュ値を登録しておき、認証時に入力されたパスワードをハッシュ関数で変換して比較する。」

「パスワードに対応する利用者IDのハッシュ値を登録しておき、認証時に入力された利用者IDをハッシュ関数で変換して比較する。」

「パスワードをハッシュ値に変換して登録しておき、認証時に入力された利用者IDをハッシュ関数で変換して比較する。」

＜正しい認証方法＞

正しい方法は、
	•	パスワードをハッシュ値に変換して登録しておき、
認証時に入力されたパスワードをハッシュ関数で変換し、
登録されているハッシュ値と比較することです。
	•	利用者IDは通常、ハッシュ化せず、そのまま使ってユーザーを識別します。

＜まとめ＞
	•	パスワードのハッシュ化が重要です。
	•	利用者IDはそのまま使い、パスワードをハッシュ化して保存・比較する方法が正しい認証方法です。 
:::

::::::note alert
「なりすましメールではなく、EC（電子商取引）サイトから届いたものであることを確認できる電子メールはどれか？」
:::

:::note warn
答え：
「ディジタル署名の署名者のメールアドレスのドメインがECサイトのものであり、署名者のディジタル証明書の発行元が信頼できる組織のものである。」

以下の2つの要素が満たされていれば、なりすましメールではなくECサイトから届いたものであることを確認できます：
	1.	メールアドレスのドメインがECサイトのものであること。
	2.	ディジタル証明書の発行元が信頼できる組織であること。

これにより、送信者が本物のECサイトであることが確認でき、なりすましのリスクが低減されます。

＜誤り＞
「送信もとメールアドレスがECサイトで利用されているアドレスである。」
「送信もとメールアドレスのドメインがECサイトのものである。」
「電子メール本文の末尾にテキスト形式で書かれた送信元の連絡先に関する署名のうち、送信元の組織を表す組織名がECサイトのものである。」

これらは偽装の可能性があるため、最も確実なのはディジタル署名や暗号化を利用して、送信元の真正性を確認することです。 
:::

::::::note alert
「ディジタル署名における署名鍵の使い方と、ディジタル署名を行う目的のうち適切なものは？」
:::

:::note warn
答え：
「送信者が署名鍵を使って署名を作成し、その署名をメッセージに付加することによって、受信者が送信者を確認できるようになる。」

この説明は、ディジタル署名の基本的な目的である認証と完全性の確認に関連しています：
	1.	送信者が秘密鍵を使って署名を作成する。
	2.	受信者は公開鍵で署名を検証し、送信者を確認できる。

ディジタル署名の目的は、主に次の3つです：
	•	認証（送信者が誰であるかを確認）
	•	改ざん防止（メッセージが途中で変更されていないか確認）
	•	否認防止（送信者が後で送信したことを否定できない）

この説明は、ディジタル署名の使い方として正しいです。 

＜誤り＞
「受信者が署名鍵を使って、暗号文を元のメッセージに戻すことができるようになる。」

受信者が署名鍵（送信者の秘密鍵）を使って暗号文を復号することはありません。

「送信者が固定文字列を付加したメッセージを署名鍵を使って暗号化することによって、受信者がメッセージの改ざん部位を特定できるようになる。」

部分的に正しいですが、説明が不正確です。改ざん部位を特定するというのは、少し不正確です。改ざんの有無は判定できますが、どの部分が改ざんされたかを直接的に特定することはできません。

「送信者が署名鍵を使ってメッセージを暗号化することによってメッセージの内容を関係者以外に分からないようにする。」

送信者が署名鍵を使ってメッセージを暗号化することはありません。 
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::

::::::note alert
:::

:::note warn
:::