Professional Documents
Culture Documents
07 Semantic Security
07 Semantic Security
IPSec
・Nhiều gói tin cùng được mã hóa bằng AES với cùng một khóa
Xét E = (E,D) là một hệ mà trên (K,M,C). Với b =0,1 ta định nghĩa EXP(b)
như sau:
b
Thử thác m1,0 , m1,1 ∈ M : |m1,0|=|m1,1| Kẻ
k←K tấn côn
c ← E(k,m1,b)
Xét E = (E,D) là một hệ mà trên (K,M,C). Với b =0,1 ta định nghĩa EXP(b)
như sau:
b
Thử thác m2,0 , m2,1 ∈ M : |m2,0|=|m2,1| Kẻ
k←K tấn côn
c ← E(k,m2,b)
Xét E = (E,D) là một hệ mã trên (K,M,C). Với b =0,1 ta định nghĩa EXP(b)
như sau:
for i=1,2,…,q:
b
Thử thác Kẻ
k←K mi,0 , mi,1 ∈ M : |mi,0|=|mi,1|
tấn côn
c ← E(k,mi,b)
b’ ∈ {0,1}
Nếu kẻ tấn công muốn c ← E(k,m) anh ta có thể gửi mj,0 = mj,1 = m
Định nghĩa. E là an toàn ngữ nghĩa dưới CPA nếu với mọi thuật toán
“hiệu quả” A:
Giả sử E(k,m) luôn cho cùng một bản mã cho thông điệp m. Vậy thì
m0 , m0 ∈ M
b
Thử thác Kẻ
k←K c0 ← E(k,m0) tấn côn
m0 , m1 ∈ M
if c=c0
c ← E(k,mb) output 0
Kẻ tấn công có thể kiểm tra được hai bản mã có phải là của cùng một
bản rõ.
Giả sử E(k,m) luôn cho cùng một bản mã cho thông điệp m. Vậy thì
m0 , m0 ∈ M
b
Thử thác Kẻ
k←K c0 ← E(k,m0) tấn côn
m0 , m1 ∈ M
if c=c0
c ← E(k,mb) output 0
Nếu một khóa được dùng lại nhiều lần, vậy thì để an toàn, mã hóa cùng
một bản mã hai lần khác nhau sẽ phải cho ra hai kết quả khác nhau.
mã hóa giải mã
m0 m0
・Mã hóa hai lần của cùng một thông điệp sẽ cho hai bản mã khác nhau
・Bản mã phải dài hơn bản rõ
・Nói một cách nôm na:
– Kích thước bản mã = Kích thước bản rõ + “số bit ngẫu nhiên”
nonce
Alice Bob
m, n E(k,m,n)=c c, n D(k,c,n)=m
E D
k k
Nonce n: một giá trị thay đổi theo các thông điệp
・Cặp (k,n) sẽ được dùng tối đa một lần
Phương pháp 1: nonce là một bộ đếm (ví dụ: đếm số gói tin)
・được dùng khi bộ mã hóa giữ trạng thái thay đổi theo thông điệp
・nếu bộ giải mã có cùng trạng thái, không cần gửi nonce cùng với bản
mã
10
Hệ mã vẫn phải an toàn khi nonce được chọn bởi kẻ tấn công
for i=1,2,…,q:
b
Thử thác Kẻ
k←K ni và mi,0 , mi,1 ∈ M : |mi,0|=|mi,1|
tấn côn
b’ ∈ {0,1}
Định nghĩa. Hệ mã dựa trên nonce E là an toàn ngữ nghĩa dưới CPA nếu
với mọi thuật toán “hiệu quả” A:
11
Câu hỏi
Hệ mã E dựa trên nonce có phải an toàn ngữ nghĩa dưới CPA không?
• Không, luôn có một cách tấn công CPA dựa trên nonce trên hệ này.
• Có, nhưng chỉ khi R đủ lớn sao cho r không bao giờ lặp lại.
12
Xét (E,D) là một PRP. Chọn ngẫu nhiên IV ∈ X và tính toán theo sơ đồ sau:
⊕ ⊕ ⊕ ⊕
Bản mã
13
Mạch giải mã
⊕ ⊕ ⊕ ⊕
14
Chú ý: Tấn công CBC với IV ngẫu nhiên
Khi kẻ tấn công có thể dự đoán IV, vậy CBC không là CPA-an toàn !
Giả sử rằng biết c ← E(k,m) ta có thể dự đoán IV cho thông điệp tiếp theo.
b 0∈ X
Thử thác Kẻ
k←K c1 ← [IV1, E(k,0 ⊕ IV1)] tấn côn
m0=IV⊕IV1, m1 ≠m0
if c[1]=c1[1]
output 0
c ← [IV, E(k, )]
c ← [IV, E(k, m1 ⊕ IV )]
bản mã
chỉ cần khi bên giải mã không biết
16
Ví dụ về Crypto API
void AES_cbc_encrypt (
const unsigned char * in,
unsigned char *out,
size_t length,
const AES_KEY *key,
unsigned char *ivec,
AES_ENCRYPT or AES_DECRYPT);
Chú ý. Nếu ivec không lấy ngẫu nhiên thì ta phải mã hóa nó trước khi dùng.
17
xóa sau
khi giải mã
18
SỬ DỤNG MÃ KHỐI
thông điệp
bản mã
Chú ý. Khác với CBC-mode, CTR-mode cho phép song song hóa hiệu quả.
20
thông điệp
bản mã
Để đảm bảo rằng F(k,x) không dùng khóa quá một lần, chọn IV như sau:
128 bits
IV: nonce counter
bắt đầu bằng 0
64 bits 64 bits cho mọi msg
21