📑
[SC] 学習ノート⑫:暗号
初めに
情報処理安全確保支援士(SC)試験対策として、著者の学習アウトプットを兼ねて作成している
必要に応じて追記等を行う予定である
暗号化とは
暗号化 とは、第三者に内容を知られないように 平文 (元のデータ)を暗号文に変換することである。
暗号分から平文に戻すことを 復号 という
暗号化には 共通鍵暗号方式 と 公開鍵暗号方式 がある
共通鍵暗号方式
暗号に用いる鍵(暗号鍵)と復号に用いる鍵(復号鍵)が同じ方式
代表例
| 名称 | 特徴 | 鍵長 |
|---|---|---|
| AES | 排他的論理和を用い、鍵長により演算数が決まる | 128 / 192 / 256 bit |
| DES | 旧標準方式 | 56 bit |
| 3DES | DESを3回適用 | 実質112 / 168 bit |
| Camellia | 日本開発(NTT・三菱電機) | 128 / 192 / 256 bit |
公開鍵暗号方式
暗号鍵と復号鍵が異なる方式
暗号鍵のみを公開するため、暗号化する鍵を 公開鍵 、復号鍵を 秘密鍵 ともいう
代表例
| 名称 | 特徴 | 鍵長(目安) |
|---|---|---|
| RSA | 素因数分解の困難さを用いる | 2048bit以上推奨 |
| DSA | デジタル署名専用 | 2048 / 3072bit |
| ECDSA | 楕円曲線DSA | 256bit程度 |
| ECC | 楕円曲線上の離散対数問題を利用 | 224~521bit |
暗号方式の比較
| 名称 | 特徴 | メリット | デメリット |
|---|---|---|---|
| 共通鍵方式(秘密鍵方式) | 暗号鍵と復号鍵が同一 | 処理が高速で大量データの暗号化に向いている | 鍵を安全に共有する必要がある(鍵配送問題) |
| 公開鍵方式 | 公開鍵と秘密鍵の2つの鍵を使用 | 鍵を安全に配布でき、認証や署名にも利用できる | 処理が遅く、大量データの暗号化には不向き |
ハッシュ関数
共通鍵暗号方式や公開鍵暗号方式は、データの内容を第三者に読まれないようにするための技術である
一方で、データが改ざんされていないことを確認するための技術として「ハッシュ関数」が利用される
ハッシュ関数とは
ハッシュ関数とは、任意の長さのデータを入力すると、一定の長さの値( ハッシュ値 )[1]を生成する関数である
このハッシュ値は メッセージダイジェスト とも呼ばれる
ハッシュ関数の特徴
| 特徴 | 説明 |
|---|---|
| 一方向性 (preimage resistance) | ハッシュ値から元のデータを求めることが困難である性質 |
| 第二原像困難性 (second preimage resistance) | あるデータと同じハッシュ値になる別のデータを見つけることが困難である性質 |
| 衝突耐性 (collision resistance) | 異なる2つのデータで同じハッシュ値になる組み合わせ(衝突)を見つけることが困難である性質 |
特に衝突耐性がハッシュ関数の中で重要視されており、この特徴のおかげで 改竄時にハッシュ値が変わる = 改竄が検知できる が可能となっている
ハッシュ関数の種類
| アルゴリズム | ハッシュ長 | 特徴 | 安全性 |
|---|---|---|---|
| MD5 | 128bit | 古くから利用されていたハッシュ関数 | 衝突が発見されており安全ではない |
| SHA-1 | 160bit | MD5の後継として利用された | 衝突が発見されており現在は非推奨 |
| SHA-2 (SHA-256 など) | 256bit など | 現在広く利用されているハッシュ関数 | 安全とされている |
| SHA-3 | 224 / 256 / 384 / 512bit | SHA-2とは異なる構造のハッシュ関数 | 安全とされている |
試験対策ポイント
追記予定
-
ハッシュ関数の入力元がハッシュ値の規定よりも短い場合でも、規定通りの長さに揃えられる ↩︎
Discussion