1. Trang chủ
  2. » Tất cả

Bài Giảng Mã Hóa Theo Luồng.pdf

12 7 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mã Hóa Theo Luồng
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Mã Hóa, An Ninh Thông Tin
Thể loại Bài Giảng
Thành phố Hà Nội
Định dạng
Số trang 12
Dung lượng 341,13 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trường 1 Mã hóa theo luồng – Khái niệm mã hóa theo luồng – Tạo luồng khóa tuyến tính – Tạo luồng khóa không tuyến tính 2 Mã hóa theo luồng (Stream Ciphers) Khoa học về mật mã Khóa bí mật Private Key M[.]

Trang 1

Mã hóa theo luồng

– Khái niệm mã hóa theo luồng

– Tạo luồng khóa tuyến tính

– Tạo luồng khóa không tuyến tính

Trang 2

Mã hóa theo luồng

(Stream Ciphers)

Khoa học về mật mã

Khóa bí mật

Private-Key

Mã hóa theo khối

Block ciphers

Mã hóa theo luồng

Stream ciphers

Mã hóa theo khối :

C = c1, c2,…, cn = ek(p1), ek(p2), …, ek(pn)

Khóa không thay đổi cho tất cả các khối (k)

Mã hóa theo luồng :

C = c0, c1, …, cn-1 = ez0(p0), ez1 (p1), …, ezn-1 (pn-1)

Bằng luồng khóa (keystream) = z , z , …, z

Trang 3

Hàm mã hóa và giải mã

Hàm mã và giải mã phổ biến nhất: Cộng theo modulo 2

Giả sử: pi, ci, zi ∈ {0,1} ; i = 0 → n-1

ci = ezi (pi) = pi + zi mod 2 → Mã hóa

pi = ezi (ci) = ci + zi mod 2 → Giải mã

Nhận xét:

1 Được Vernam sử dụng từ năm 1917

2 Cộng theo modulo 2 ≡ phép XOR với 2 đầu vào

3 Mã hóa và giải mã hoàn toàn như nhau

Trang 4

Phép cộng modulo 2

a b c = a + b mod 2

0 0 0 + 0 = 0 mod 2

0 1 0 + 1 = 1 mod 2

1 0 1 + 0 = 1 mod 2

1 1 1 + 1 = 0 mod 2

• Đây cũng chính là kết quả của a XOR b

• Phép mã hóa và giải mã như nhau vì:

Mã: pi + zi → ci Giải mã: ci + zi = pi + zi + zi = pi

Ví dụ: Mã hóa chữ A: AASCII = 6510 = 0100 00012

Với luồng khóa: z0z1…z7 = 001011012

Trang 5

Tạo luồng khóa

• Cần phải tạo luồng khóa zi sao cho các bit của chúng

không phụ thuộc lẫn nhau Tức là các zi phải được tạo

ra một cách hoàn toàn ngẫu nhiên

• Luồng khóa sẽ được tạo ra từ 1 khóa ngắn

p n , …, p 1 , p 0 z i

Tạo luồng khóa Tạo luồng khóa

Khóa ban đầu K

z i p

n , …, p 1 , p 0

c n , …, c 1 , c 0

Dũng

Khóa ban đầu K

Trang 6

Các phương pháp tạo luồng khóa

1 Tạo luồng khóa đồng thời

(synchronous stream cipher)

zi = f(k) → Hàm tạo số ngẫu nhiên

(pseudo-random generator - PRG).

2 Tạo luồng khóa không đồng thời

(asynchronous stream cipher)

zi = f(k, ci-1, ci-2, …,ci-n) → Tạo số ngẫu

nhiên với sự phản hồi mã (feedback of cipher).

Trang 7

Sơ đồ mã hóa theo luồng

Mã hóa

p i ⊕ z i = c i

f ( )

Sơ đồ mã hóa theo luồng có (hoặc không có) sự phản hồi của mã

z i

Phản hồi mã

k

Trang 8

Tạo luồng khóa đồng thời

(synchronous stream cipher)

• Dãy z0,z1, … được tạo ra một cách ngẫu

nhiên và chỉ phụ thuộc vào khóa k

• Đại diện: Máy tạo luồng khóa tuyến tính

(linear feedback shift registers - LFSR)

– Với m giá trị nhị phân ban đầu máy sẽ cho ta dãy

các số nhị phân ngẫu nhiên dựa trên phép toán

XOR Quá trình tính toán có sử dụng các kết quả

đã tính trong các bước trước

– Ví dụ: m=3, Ta có 3 hộp K0, K1, K2 theo hình vẽ

sau:

Trang 9

Máy tạo luồng khóa tuyến tính –

LFSR-3

K 2 K 1 K 0

0 0 1

1 0 0

0 1 0

1 0 1

1 1 0

1 1 1

0 1 1

z 2 z 1 z 0

Giá trị

ban đầu

z 0 , z 1 , z 2 ,

3, 1 + x + x 3

[z0, z1, z2] = [1,0,0]

Với z0, z1, z2 là các giá trị ban đầu ta có:

z3 = z1+ z0 mod 2

z4 = z2+ z1 mod 2

……

Tổng quát:

zi+3 = zi+1+ zi mod 2 với i = 0, 1, 2, …

Trang 10

Máy tạo luồng khóa tuyến tính –

LFSR-m

z m-1 z 1 z 0

input

C 0

C 0 + C 1 x + + C m-1 x m-1 + x m

Output

Với z 0 , z 1 ,…, z m-1 là các giá trị ban đầu

C 0 , C 1 ,…, C m-1 là các hệ số phản hồi ∈ {0,1}

C i = 0 → Mạch mở; C i = 1 → Mạch đóng

z i+m = Σ j C j .z i+j mod 2 với j = 0, 1, …m-1

Trang 11

Luyện tập LFSR- 4

Vẽ máy và tính luồng khóa nhận được

với m=4 :

1 (C0= C2 = 1, C1= C3 = 0); z0= z1= 0, z2= z3= 1

2 (C0= C1 = C2 = 1, C3 = 0); z0= z1= z2= 0, z3= 1

3 (C0 = C1 = C2 = C3 = 1); z0= z1= z2= z3= 0

Tải bản FULL (23 trang): https://bit.ly/3G2fw7L

Dự phòng: fb.com/TaiHo123doc.net

Trang 12

Đánh giá LFSR

• Định lý: Độ dài cực đại của luồng khóa được tạo

bởi LFSR-m bằng 2m-1

• Nhận xét: Luôn có 1 số bộ nào đó (C0,…, Cm-1) cho ta độ

dài maximum của LFSR-m

Ví dụ: Với m=4: (C0 = C1 = 1, C2 = C3 = 0) cho độ dài

2m-1 = 15 Nhưng (C0 = C1 = C2 = C3 = 1) có độ dài 5

• LFSR có thể được biểu diễn dưới dạng đa thức:

P(x) = C 0 + C 1 x + + C m-1 x m-1 + x m

VD: (C0 = C1 = 1, C2 = C3 = 0) Ù P(x) = 1 + x + x4

(C0 = C1 = C2 = C3 = 1) Ù P(x) = 1 + x + x2 + x3 + x4

Ngày đăng: 03/02/2023, 19:42

w