---
title: 密碼學觀念
tags: crypto
lang: zh_tw
---
* [筆記總覽](https://hackmd.io/@LJP/rkerFdnqS)
[TOC]
# 密碼學觀念
這裡放一些大觀念的東西
無法歸類到下面的章節的咚咚就會出現在此章節
建議晚點再來看這邊,比較會有體會
## 性質
根據 [wiki](https://zh.wikipedia.org/wiki/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8)
資安有三個基本點
- Confidentiality (機密性)
- Integrity (完整性)
- Availability (可用性)
但還有一些點
- Authentication (驗證性)
- Non-repudiation (不可否認性)
### Confidentiality 機密性
不應該可以看到訊息的人看不到訊息
所有的不管對稱或是非對稱加密演算法正確使用都能提供此性質
### Integrity 完整性
訊息是沒有被竄改的
只有單純的加密演算法無法提供
怎麼說呢
Alice 將明文 A 加密成密文,要傳給Bob
密文傳遞的過程中被 Evil 亂改資訊
Bob 解密後得到明文 B
以上情境中,Bob 無法確定
**Alice 原本就是想傳 B 過來嗎?**
改良上面情境的方式是雙方規定好訊息的格式
在明文訊息的最後加上 checksum 後再加密
解密後去看看 checksum 是否正確
Evil 去亂改後, Bob 解密後計算 checksum 會發現不吻合
進而偵測到訊息被竄改
這樣就能提供完整性
### Availability 可用性
服務能正常運作
### Authentication 驗證性
接收端能否確定此訊息一定是正確的發送端送來的
比如說釣魚網站
他跟受害者之間的通訊有加密,提供機密性
有送訊息識別碼供受害者檢測訊息有無被竄改,提供完整性
但受害者無法得知是
**與之連線的到底是正確的網站還是釣魚網站**
而 Digital Signatures (數位簽章) 提供了驗證性
### Non-repudiation 不可否認性
接收端把所收到的訊息和其他必要資訊交給公正的第三方,公正的第三方能否明確指認出此訊息是誰發送的
之所以叫做不可否認性是指說被指認出的人他無法抵賴說此訊息不是他發的(因為證據明確)
比如說 Alice 與 Bob 使用對稱式加密溝通
Alice 與 Bob 其中一方把訊息 M 與 Key 交給第三方
由於雙方都有 Key, 雙方都能加密出 M
如此一來第三方無法明確指認訊息 M 是 Alice 或 Bob 發送的
以上情境就沒有提供不可否認性