---
# System prepended metadata

title: 13-5. 暗号化技術とディジタル署名
tags: [基本情報技術者試験]

---

# 13-5. 暗号化技術とディジタル署名
## 暗号化って何？
- データの内容を第三者にはわからない形へ変換すること

### どうやって暗号化するの？
- 暗号化
  - データの内容を第三者にはわからない形へ変換すること
- 復号化
  - 暗号化したデータを元の形に戻すこと

**どの暗号化/復号化アルゴリズムを使用しているかバレると、解読されてしまう！**

### どうやってバレないようにするの？
- 鍵を使用する

### 鍵って何？
- 暗号化/復号化するときに必要なデータ
- アルゴリズムがバレても、鍵がないと解読できない

### 共通鍵暗号方式って何？
- 送り手と受け手が**同じ鍵**を用いる暗号化方式
- 鍵は**秘密鍵**にする必要がある

### 公開鍵暗号方式って何？
- 送り手と受け手が**異なる鍵**を用いる暗号化方式
- **公開鍵**で暗号化し、**秘密鍵**で復号化する
```
受け手: 「秘密鍵と公開鍵のペアを用意！」
受け手: 「公開鍵を配布！」
送り手: 「公開鍵を使って暗号化！ 送信！」
受け手: 「秘密鍵を使って復号化！」
```

## ディジタル署名って何？
- 誰が送信したものか
- データが途中で改ざんされてないか
を確認できるようにしたもの

### どうやって署名するの？
- 秘密鍵を使って暗号化し、公開鍵とデータを送る
- 公開鍵を使って復号化する
(公開鍵暗号方式の逆！)

### どうして改ざんがバレるの？
- 秘密鍵が無い限り、データに手を加えることができない
- 送り手の公開鍵で復号化できることが、改ざんされていない証明になる

### 実際はもう少し高度！
```
1. メッセージがある
  - 「こんにちは」
2. ハッシュ関数を使ってメッセージダイジェストを作る
  - 「こんにちは」　→ 「こんちゃ」
3. メッセージダイジェストを秘密鍵で暗号化する
  - 「QW234RTGHY」 ←これがディジタル署名
  
4. ディジタル署名をくっつけてメッセージを送信する
  - 「こんにちは」 + 「QW234RTGHY」
5. 受信者は、公開鍵を使ってディジタル署名を復号化する
  - 「QW234RTGHY」 = 「こんちゃ」
6. メッセージ本文をハッシュ化する
  - 「こんにちは」 →　「こんちゃ」
7. 5と6の両者が同一であれば、改ざんされてないと言える
  - 「こんちゃ」 「こんちゃ」

```

## これだけじゃだめ！
- ディジタル署名をつかったとしても、ニセモノが鍵を作った場合、なりすましは回避できない
→ 鍵の正当性を証明する必要がある

## じゃあどうすればいいの？
- **認証局(CA)**が公開鍵の出どころを証明する

------

## 過去問
![](https://i.imgur.com/lh9Iyxn.png)


###### tags: `基本情報技術者試験`