## Paranoia
### Traditional Security Goals
1. Confidentiality: Data not leaked
2. Integrity: Data or resource not tampered
3. Availability: Data or resource accessible when needed
4. Authenticity: Correct belief in data or resource origin
### adversarial mindset
機票例子
### security goals
### adversarial model
define the adversary, maybe their identity、ability or goals
### Incentives
it consider whether human factors and economics affect the security goal?
## Symmetric-key Encryption Ciphers
### caesar cipher
slide character for a picticular number(key).usually 1-25
Example:
Plaintext: HELLO
Key = 3
Shifting each letter by 3: H → K, E → H, L → O, L → O, O → R
Ciphertext:
Ek(m) = (m + k) mod 26
Dk\(c) = (26 + c – k) mod 26
**weak**
- 容易被暴力破解-> only 25 possible shifts
- 透過一些常見的character pair 或letter frequency 可以幫助猜測(Statistical attacks)
### Vigènere Cipher
caesar cipher 2.0 -> use phase instead of single number key

v:21
T:19
(21+19)MOD 26 -> 14 -> O
one time pad->unbreakable (xor舉例)
- Breakable if used twice -> 洩漏太多資訊,讓adversary 可以有東西去比較
- Key must be perfectly random
- Key length = message length -> cons:當message很長 key也需要很長
### symmetric encryption


### birthday paradox
- 當一個房間有23人時 至少兩人生日在同一天的機率超過50%
- 對於 N 個可能的值,預計在檢查大約 sqrt(N)(平方根 N)次之後會出現碰撞
- 如果 N = $2^n$(n 位元的金鑰),在 $2^{n/2}$ ("生日界限") 次訊息後預期會出現碰撞
For 64-bit key, E(𝑀1)and E(𝑀2) in the same time. After trying $2^{32}$ transactions, E(𝑀1) = E(𝑀2) happened at least once with
more than 50% chance. -> **birthday attack**
### meet in the middle attack
針對雙重加密的攻擊
C=EK2(EK1(M))->找EK1(M)=DK2\(C)
This does not have 2n bit security !

Brutally need $2^{2n}$ steps
**only take $2^{n+1}$ steps**
> 中途相遇攻擊僅需$2^n$次加密計算來生成查找表,再加上$2^n$次解密查找,總共需要$2^n$+$2^n$=$2^{n+1}$次運算
### pre-computation attack
當可能的訊息集 M 很小,也就是說訊息的種類有限時,可以使用預計算攻擊。攻擊者先對所有可能的訊息 𝑚 進行加密,計算出所有可能的密文 𝑓 ( 𝑚 )。 然後,攻擊者建立一個對應表 ( 𝑚 , 𝑓 ( 𝑚 ) ),其中儲存每個訊息 𝑚 及其相應的密文 𝑓 ( 𝑚 ) 。當攻擊者在實際通信中截獲到某個密文 𝑓 ( 𝑚 ) 時,只需在之前建好的對應表中查找相應的 𝑚 即可得知原始訊息,從而破解密文。(called forward searches
### block cipher
把大資訊拆成一塊塊的後分別加密
### Electronic Code Book (ECB) mode
每個區塊都用一樣的key加密
weak:
1.相同的明文區塊會生成相同的密文區塊。
2.區塊順序被竄改
3.資料太小可能被爆破(建表)
### Handling misordered blocks
two ways
1.Crypto the entire message and sign it
2.Crypto some sequence message in the block

### Cipher-Block Chaining (CBC) mode
random initialization vector(IV)

pros:
1.prevent statistical attack
(xor讓加密模式更隨機)
2.Resist mis-order block attack
cons:
1.Can not do parallel decryption
### Cipher Feedback Mode:Full-block
使用前一個密文進行加密然後跟現在的明文xor

**允許parallel decryption**

cons:
Error propagation: 如果前面bit傳輸錯誤或被竄改,後續解碼就會錯誤
### Cipher Feedback Mode:shift
使用密文時先用n bit shift
pro:
**Self-healing property**:
如果接收到的某個密文位錯誤,那麼接下來的 n 位將解密錯誤,在這之後的密文位可以正常解密。

### Counter Mode (CTR)
CTR中,數據區塊的密鑰是透過加密一個計數器(將唯一的隨機數 nonce 和遞增的計數器值結合)生成的。
**隨機數的存在是為了防止重複使用相同的組合,從而避免安全風險,絕不能使用相同的(nonce,k)**
$k_i = E_k(unique-nonce||i)$
$c_i = m_i \oplus k_i$


pro:由於每個區塊都有不同的計數器值,即使明文相同,加密後密文也不同,避免 statistical attack
con:發送及接收端計數器要同步
### Output feedback cipher (OFB)
跟CFB基本一樣,只是回饋至下一端的資訊不同
CFB:傳CIPHER(等於 加密端XOR PLAINTEXT)
OFB:傳加密端輸出

### Stream ciphers
Ek is encryption func
M is message,M=b1b2b3b4..
**block cipher**:$E_k(m) = E_k(b_1) \, E_k(b_2)
\, \dots$
---
**Stream ciphers**:
$k=k_1 k_2 \dots$
$E_k(m) = E_{k1}(b_1) \, E_{k2}(b_2) \, \dots$
如果密鑰序列 k 1 ,k 2 ,… 重複出現,則此密碼是「週期性」(periodic)的,且週期為k 1 k 2 … 的一個循環。
ex:Vigenère cipher
- 常用xor 針對each bit
### Synchronous Stream Ciphers
#### n-stage Linear Feedback Shift Register
用來產生key
- n bit register $r = r_0 \dots r_{n-1}$
- n bit “tap sequence $t = t_0…t_{n–1}$
**step**
1.Use $r_{n–1}$ as key bit
2.Compute $x = r_0 t_0 \oplus \dots \oplus r_{n–1} t_{n–1}$ (前面and)
3.Shift r one bit to right, dropping $r_{n–1}$
, x becomes r0

#### n-stage Non-Linear Feedback Shift Register
more diificult for adversary
把xor那一part改成任意function
Compute $x = f(r_0,\dots, r_{n–1})$; f is any
其他一樣
### Integrity 問題
如何防止被密文被tampered
- Authenticated encryption modes(生成一個驗證標記)
- message authentication code (MAC)(加訊息驗證碼)
## Hash Functions
A hash function is any function which takes an arbitrarily long string of characters or bits as input and returns a fixed-length
output
property
- Fast to compute
- With any input, hash values (hopefully) distributes uniformly
### pre-image resistance
給定一個隨機的 y(在$\{0,1\}^ n$ 上均勻分布),找到對應的輸入 x 是不可行的,即難以找到滿足 H(x)=y 的 x。
### Collision-resistance
難以找到任何一對不同的輸入(w,x),使得H(w)=H(x)=y。
### Random Oracle Model (ROM)
隨機預言機是一個理論模型,它被設想為一個能夠回答查詢的「黑盒子」,每次輸入問題 x 時會給出一個隨機的答案 y。
• If n = 256, expected number of guesses is $2^{256}$

exp: $\frac{2^{252}} {2^{256}}= \frac{1}{16}$
maximun: infinite,since input domain is unlimited
### birthday paradox
ROM + 生日悖論 ⇒ 碰撞抗性

### hash property
- one-way
- non-invertible
- produces unique
- fixed-size outputs for different inputs (with any input lengths)
### software verification
軟體供應商/攻擊者發送不同版本:

第三方惡意組織分發惡意軟體:

### crack hash
使用常見密碼P -> HASH(P)可能被記錄 -> 被拿來比對
字典攻擊與暴力破解
### Salting password hashes
如果每個用戶的密碼都是用相同的雜湊函數處理的,攻擊者可以使用預先計算好的字典來破解常見密碼的雜湊值。
SALT:
伺服器不儲存用戶的H(P\),而是儲存 (salt Alice,H(salt Alice ∥P))
salt是公開的,因為在驗證密碼時需要使用它。其作用在於防止攻擊者使用已知的雜湊值字典來匹配密碼。
salt應該是隨機生成的且每個用戶不同-> no collision
### Resource-intensive hashing
讓雜湊函數H的計算變得緩慢(但可行),以增加破解難度。
Approach: Many iterations of H to slow process
• E.g., store $H^{2048}(P)$
pro:slows attacker
cons:slows user
new way:
Heavy use of fast memory (cache)
### commitment

m很容易被破解,只有1 bit
所以


## Key Exchange Public Key (Asymmetric)Cryptography
### mod
對於任意整數a,b 和模數 m,
如果 a ≡ b mod m ,
那麼:$a^k$ ≡ $b^k$ mod m ≡ ${(b \space mod\space m)}^k$
### Diffie-Hellman
在不安全的網路上建立安全的共享密鑰



adversary不可能得知shared key因為沒有private key
### Man in The Middle (MITM)
攻擊者秘密攔截(intercept)並可能修改雙方之間的通訊,而通訊雙方誤以為他們直接在互相交流。
sol:authenticate first
### Forward Secrecy (PFS)
確保即使未來的密鑰被攻破,過去的通訊內容仍然保持安全,無法被解密。

### Certificate Authority, CA
受信任的第三方,負責發佈並驗證公開金鑰的有效性,確保用戶能夠信任它們所使用的公開金鑰屬於正確的對象。
### Signatures
only signer can produce and everybody can verify
- - -
Confidentiality -> 確保只有擁有私鑰的使用者可以解密和閱讀被加密的訊息
Authentication -> 身份驗證確保訊息的發送者是真的 (signature)
Integrity -> 確保加密後的訊息無法在不被發現的情況下被修改。(只有有私鑰者可以對訊息進行簽名)
Non-Repudiation -> 確保訊息的發送者無法在事後否認其行為(只有擁有該私鑰的人才能生成這樣的訊息)
### trapdoor function
function that is easy to compute but believed **hard** to invert without additional information
### RSA
#### Eular Function
IF p is prime number
$φ(p)=(p−1)$
Now, we have n= p * q
p q are prime
$φ(n)=(p−1)×(q−1)$
- - -


>應該是ed $\equiv$ 1 mod $\varphi(n)$
- - -
multiplicative inverse
可能的問題:
1.Exhaustive search for key
2.Factoring n
3.Timing Attacks
4.Forward search(字典攻擊)
5.Common modulus problem(use same n)
## Signatures
### order
encrypt then sign:
may be replaces with someone else
it should be **Sign then Encrypt**

### Public Key Cryptography
In RSA S(m)=D(m).(這是因為 RSA 使用私鑰對訊息進行簽名,公開金鑰用於驗證簽名)
so If we sign arbitrary(任意) stuff, e.g.,
m=E(M), then in effect we reveal M=D(E(M))

## Cryptocurrency
- A peer-to-peer digital exchange system
- Cryptography is used to generate & distributed currency units
- No central authority
- Need to be verified the transitions
https://www.youtube.com/watch?v=bBC-nXj3Ng4
### mining

### 51% attack
在虛擬貨幣的系統裡要偽造資訊欺騙他人->必須擁有全世界51%的mining資源
### Proof of stake
- Requires the miner to show how much currency the miner owns in the system
- May get penalty if do something bad
### Proof of Retrievability
依賴於大容量存儲:PoR 的主要用途是確保參與者能夠存儲並保留重要數據檔案的片段。這對於需要長期保存和確保數據完整性和可取回性的情境特別有用,例如去中心化的存儲系統
### Smart contract
A “code” or “script” run on the block chain
## AI Security
### Deep Learning
- A chain of differentiable functions


**standard deviation**
maybe be trapped in **Local Minimum**
### Data Poisoning
manipulate the training dataset to control the prediction behavior
#### Scaling attack

#### Availability attack
破壞模型的可用性,使其無法在預期的性能水平下工作
ex:Dos
#### Integrity Attack
Backdoor Samples:
插入帶有標記或特徵的特定樣本,讓模型在遇到這些樣本時做出錯誤的預測
#### Adversarial Examples
intentionally crafted input data that includes minor, almost hard to notice change
#### System integration
- discrimination on sex,race
- terrible suggestion
- privacy leak
XAI:開發和設計人工智慧系統,以便讓人類能夠理解、信任和解釋其決策和行為