1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(LUẬN văn THẠC sĩ) phân tích đánh giá một số hệ mã hóa luận văn ths công nghệ thông tin 1 01 10

91 31 0

Đ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 đề Phân Tích Đánh Giá Một Số Hệ Mã Hóa
Tác giả Trịnh Viết Cường
Người hướng dẫn PGS.TS. Trịnh Nhật Tiến
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2007
Thành phố Hà Nội
Định dạng
Số trang 91
Dung lượng 1,11 MB

Cấu trúc

  • Chương 1: CƠ SỞ LÝ THUYẾT (0)
    • 1.1. SỐ HỌC CÁC SỐ NGUYÊN (9)
      • 1.1.1 Tính chia hết của các số nguyên (9)
      • 1.1.2 Đồng dư và phương trình đồng dư tuyến tính (11)
      • 1.1.3 Thặng dƣ thu gọn và phần tử nguyên thuỷ (0)
    • 1.2 XÁC SUẤT VÀ THUẬT TOÁN XÁC SUẤT (0)
      • 1.2.1 Khái niệm xác suất (15)
      • 1.2.2 Tính bí mật hoàn toàn của một hệ mật mã (15)
      • 1.2.3 Thuật toán xác xuất (15)
    • 1.3 ĐỘ PHỨC TẠP TÍNH TOÁN (0)
      • 1.3.1 Khái niệm về độ phức tạp tính toán (17)
      • 1.3.2 Hàm một phía và Hàm một phía có cửa sập (0)
  • Chương 2: MỘT SỐ PHƯƠNG PHÁP THÁM MÃ (19)
    • 2.1. PHƯƠNG PHÁP THÁM MÃ (19)
      • 2.1.1. Thám mã chỉ biết bản mã (19)
      • 2.1.2. Thám mã biết bản rõ (20)
      • 2.1.3. Thám mã với bản rõ đƣợc chọn (21)
      • 2.1.4. Thám mã với bản mã đƣợc chọn (23)
    • 2.2. TÍNH AN TOÀN CỦA HỆ MÃ (29)
      • 2.2.1. An toàn một chiều (One – Wayness) (29)
      • 2.2.2. An toàn ngữ nghĩa (Semantic Security) (30)
      • 2.2.3. Tính không phân biệt đƣợc (Indistinguishability)(IND) (32)
      • 2.2.4. An toàn ngữ nghĩa tương đương với IND (36)
      • 2.2.5. Khái niệm an toàn mạnh nhất IND-CCA (38)
  • Chương 3: PHÂN TÍCH ĐÁNH GIÁ MỘT SỐ HỆ MÃ HOÁ (40)
    • 3.1. HỆ MÃ HOÁ RSA (0)
      • 3.1.1. Hệ mã RSA an toàn trước các tấn công KPA, COA, CPA (40)
      • 3.1.2. Hệ mã RSA không an toàn ngữ nghĩa (40)
      • 3.1.3. Hệ mã RSA không đạt an toàn trước tấn công CCA (41)
      • 3.1.4. Ứng dụng thực tế (41)
    • 3.2. HỆ MÃ HOÁ ELGAMAL (42)
      • 3.2.1. ELGAMAL đảm bảo an toàn ngữ nghĩa (0)
      • 3.2.2. Hệ mã ELGAMAL an toàn trước các tấn công KPA, COA, CPA (0)
      • 3.2.3. Hệ mã ELGAMAL không đạt an toàn trước tấn công CCA (43)
    • 3.3. HỆ MÃ HOÁ CRAMER-SHOUP (1998) (44)
      • 3.3.1. Giả thuyết Decisionnal Diffie-Hellman (0)
      • 3.3.2. Sơ đồ Hệ mã (46)
      • 3.3.3. Độ an toàn của hệ mã hoá (49)
      • 3.3.4. Cài đặt hệ mã hoá (50)
      • 3.3.5. Hệ mã hoá không dùng hàm băm (51)
    • 3.4. HỆ MÃ HOÁ LAI (Hybrid Encryption) (53)
      • 3.4.1 Hệ mã hoá KEM (53)
      • 3.4.2 Hệ mã hoá SKE (55)
      • 3.4.3 Hệ mã hoá công khai lai (Hybrid public-key encryption) (HPKE) …. 54 3.5. HỆ MÃ HOÁ OAEP (Optimal Aysmmetric Encryption Padding) (59)
      • 3.5.1. Mô hình máy tƣ vấn ngẫu nhiên (Random Oracle Model) (63)
      • 3.5.2. An toàn Planitext – Awareness (66)
      • 3.5.3. Lƣợc đồ OAEP (70)
      • 3.5.4. Đánh giá lƣợc đồ (72)
  • Chương 4: THỬ NGHIỆM CHƯƠNG TRÌNH MÃ HÓA (81)
    • 1. CÔNG CỤ (81)
      • 4.2. CÁC THÀNH PHẦN CỦA CHƯƠNG TRÌNH (0)
  • KẾT LUẬN (28)
  • TÀI LIỆU THAM KHẢO (88)

Nội dung

CƠ SỞ LÝ THUYẾT

SỐ HỌC CÁC SỐ NGUYÊN

Tập hợp Z đại diện cho các số nguyên, trong khi Z+ bao gồm các số nguyên không âm Phần này sẽ tổng hợp lại những kiến thức cơ bản về số học của các số nguyên, cần thiết cho việc trình bày lý thuyết mật mã.

1.1.1 Tính chia hết của các số nguyên

Tập Z là đóng kín đối với các phép toán cộng, trừ và nhân, nhưng không đối với phép chia Khi một số nguyên a chia cho một số nguyên b cho kết quả là số nguyên q, điều này có ý nghĩa đặc biệt: a chia hết cho b, a là bội số của b, và b là ước số của a, ký hiệu là b|a.

Mọi số nguyên đều có 1 là ước số, trong khi 0 là bội số của tất cả các số nguyên Đồng thời, mỗi số nguyên a vừa là ước số, vừa là bội số của chính nó.

Số nguyên d được gọi là ước số chung của hai số nguyên a và b nếu d chia hết cho cả a và b Nếu d là ước số chung lớn nhất của a và b, thì d phải lớn hơn 0 và là ước số chung của a và b, đồng thời mọi ước số chung khác của a và b đều là ước số của d Ký hiệu ước số chung lớn nhất của a và b là gcd(a, b).

Dễ thấy rằng với mọi số nguyên dương a ta có gcd(a, 0) = a, ta cũng quy ước là gcd(0, 0) = 0

Số nguyên a > 1 được gọi là số nguyên tố nếu a không có ước số nào ngoài 1 và chính a Số a là hợp số nếu không phải là nguyên tố

Số nguyên n > 1 bất kỳ đều có thể viết dưới dạng: n = p 1 α1 p 2 α2 … pk αk

Trong toán học, một số tự nhiên n có thể được biểu diễn dưới dạng tích của các số nguyên tố khác nhau, ký hiệu là p1, p2, , pk, với các số mũ nguyên dương α1, α2, , αk Dạng biểu diễn này là duy nhất khi không tính đến thứ tự của các thừa số nguyên tố, và được gọi là dạng khai triển chính tắc của n.

Nếu a = bq + r thì gcd(a, b) = gcd(b, r)

Số nguyên m được xem là bội số chung của hai số a và b khi m chia hết cho cả a và b Trong đó, bội số chung nhỏ nhất của a và b, ký hiệu là lcm(a, b), là số m không chỉ là bội số chung của a và b mà còn là bội số của mọi bội số chung khác của a và b.

Với mọi số nguyên dương a và b ta có quan hệ

Thuật toán Euclide tìm ước số chung lớn nhất:

INPUT: hai số nguyên không âm a và b, với a ≥ b

OUTPUT: ước số chung lớn nhất của a và b

Ta biết rằng nếu gcd(a, b) = d, thì phương trình bất định a.x + b.y = d

Có nghiệm nguyên (x, y), và một nghiệm nguyên như thế có thể tìm được bởi thuật toán Euclide mở rộng như sau:

INPUT: hai số nguyên không âm a và b với a ≥ b

OUTPUT: d = gcd(a, b) và hai số x, y sao cho a.x + b.y = d

1 Nếu b = 0 thì đặt d ← a, x ← 1, y ← 0, và cho ra (d, x, y)

3 While b > 0 do Begin q := a div b ; r :=a mod b ; x := x 2 – qx 1 ; y := y 2 – qy 1 ; a := b ; b := r ; x 2 := x 1 ; x 1 := x ; y 2 := y 1 ; y 1 :=y ;

4 Đặt d := a, x := x2, y := y 2 , và cho ra kết quả (d, x, y)

1.1.2 Đồng dư và phương trình đồng dư tuyến tính

Cho n là một số nguyên dương Ta nói hai số nguyên a và b là đồng dư với nhau theo modul n, và viết a ≡ b (mod n), nếu n|(a – b)

Cho a  Zn Số nguyên x  Zn được gọi là nghịch đảo của a theo mod n, nếu a.x ≡ 1 (mod n) Khi đó ta nói a là khả nghịch và ký hiệu x là a -1 mod n

Ta định nghĩa phép chia trong Zn như sau:

Phép chia chỉ thực hiện được khi b là khả nghịch theo mod n

* Phương trình đồng dư tuyến tính :

Phương trình đồng dư tuyến tính có dạng : a x ≡ b (mod n)

Trong đó a, b, n là các số nguyên, x là ẩn số

Phương trình đó có nghiệm khi và chỉ khi d = gcd(a, n)|b Khi đó có đúng d nghiệm theo mod n

Ta xét hệ các phương trình đồng dư tuyến tính : x 1 ≡ a1 (mod n 1 ) x 2 ≡ a2 (mod n 2 )

Ký hiệu: n = n 1 n 2 …nk, N i = n / n i Định lý 1.2 (định lý số dƣ Trung Quốc)

Giả sử các số nguyên n1, n2, , nk là các số nguyên tố cùng nhau Khi đó, hệ phương trình đồng dư tuyến tính có một nghiệm duy nhất theo modulo n, được tính bằng công thức: x = ∑ (ai * Ni * Mi) mod n, với i chạy từ 1 đến k.

Trong đó Mi = N i -1 mod n i (Có M i vì N i và n i nguyên tố với nhau)

1) Tập thặng dư thu gọn

Tập Zn = {0, 1, 2, …, n - 1} được gọi là tập các thặng dư đầy đủ theo mod n, vì mọi số nguyên đều có thể tìm thấy một số đồng dư tương ứng trong Zn Tập Zn là tập đóng đối với các phép toán cộng, trừ và nhân, nhưng không đóng đối với phép chia.

Tập Z * n = { a ∈ Z n : gcd(a, n) = 1} là tập con của Z n, bao gồm tất cả các phần tử nguyên tố với n Tập này được gọi là tập các thặng dư thu gọn theo mod n.

Mọi số nguyên nguyên tố với n đều có thể tìm thấy trong Z * n một đại diện đồng dư với mình theo mod n Chú ý rằng nếu p là số nguyên tố thì Z*p {1, 2, …, p – 1}

Tập Z * n lập thành nhóm con đối với phép nhân của Z n , vì trong Z * n phép chia theo mod n bao giờ cũng thực hiện được, Gọi Z * n là nhóm nhân của

2) Khái niệm cấp của một phần tử

Cấp của một nhóm được xác định bởi số lượng các phần tử trong nhóm đó Ký hiệu θ(n) đại diện cho số lượng số nguyên dương nhỏ hơn n và nguyên tố với n Do đó, nhóm Z * n có cấp là θ(n) Nếu p là một số nguyên tố, thì cấp của nhóm Z * p sẽ là p – 1.

Ta nói phần tử g  Z * n có cấp m, nếu m là số nguyên dương bé nhất sao cho g m = 1 trong Z * n

Theo một định lý trong Đại số, ta có m | θ(n) Vì vậy với mọi b  Z * n ta luôn có b θ(n) ≡ 1 mod n

Nếu p là số nguyên tố, thì do θ(p) = p – 1, ta có với mọi b  Z * p b p-1 ≡ 1 (mod p)

Nếu b có cấp p – 1, các phần tử b, b², …, b^(p-1) đều khác nhau và tạo thành Z*p theo mod p Khi đó, Z*p được gọi là nhóm cyclic và b được xem là phần tử sinh hoặc phần tử nguyên thuỷ của nhóm này.

Người ta đã chứng minh được tính chất sau:

1 Với mọi số nguyên tố p, Z * p là nhóm cyclic, có θ(p-1) phần tử nguyên thuỷ

p2 α2… ps αs là khai triển chính tắc của p – 1, và nếu: a p-1/p1 ≡ 1 (mod p), …, a p-1/ps ≡ 1 (mod p), thì a là phần tử nguyên thuỷ của Z * p theo mod p

3 Nếu g là phần tử nguyên thuỷ theo mod p, thì β = g i mod p với mọi i mà gcd(i, p – 1) = 1, cũng là phần tử nguyên thuỷ theo mod p.

XÁC SUẤT VÀ THUẬT TOÁN XÁC SUẤT

Tập hợp Ω được gọi là không gian các sự kiện sơ cấp hay không gian mẫu, trong đó các phần tử của Ω đại diện cho các kết quả khả thi và loại trừ lẫn nhau của một thực nghiệm Chúng ta chỉ xem xét các không gian rời rạc và hữu hạn, với Ω = {s1, s2, …, sn}.

Phân bố xác suất P trên không gian mẫu Ω được xác định bởi tập hợp các số thực không âm P = {p1, p2, …, pn}, trong đó tổng các xác suất ∑pi = 1 Mỗi số pi đại diện cho xác suất của một sự kiện sơ cấp si.

Một tập con L của Ω được gọi là một sự kiện Xác suất của sự kiện L được định nghĩa bởi p(L) = ∑ s  L p (s)

1.2.2.Tính bí mật hoàn toàn của một hệ mật mã

Năm 1949, C Shannon công bố công trình "Lý thuyết truyền thông của các hệ bí mật", trong đó ông đưa ra nhiều quan niệm quan trọng để đánh giá tính bí mật của các hệ mật mã, bao gồm khái niệm về tính bí mật hoàn toàn.

Theo Shannon, một hệ mật mã được coi là an toàn hoàn toàn khi xác suất của bản rõ là như nhau, bất kể việc biết hay không biết bản mã Nói cách khác, việc nắm giữ thông tin về bản mã không cung cấp thêm bất kỳ thông tin nào về bản rõ.

Gọi P là tập hợp không gian các bản rõ, C là tập hợp không gian các bản mã, K là tập hợp không gian các khóa, E là thuật toán mã hóa, và D là thuật toán giải mã Định lý 1.3 liên quan đến mối quan hệ giữa các thành phần này trong quá trình mã hóa và giải mã thông tin.

Giả sử S = (P, C, K, E, D) là hệ mã với điều kiện |P| = |C| = |K|, tức các tập P, C, K có số các phần tử bằng nhau

Hệ mã S được coi là bí mật hoàn toàn khi mỗi khóa k thuộc K được sử dụng với xác suất đều nhau là 1/|K| Đối với mọi x thuộc P và y thuộc C, tồn tại một khóa duy nhất k trong K sao cho E k (x) = y.

Thuật toán xác suất là một phương pháp tính toán mà trong quá trình xử lý dữ liệu đầu vào, chúng ta kết hợp thêm giá trị của một đại lượng ngẫu nhiên tương ứng.

Thuật toán xác suất được phân thành hai loại chính: thuật toán Monte Carlo và thuật toán Las Vegas Thuật toán Monte Carlo luôn đưa ra kết quả rõ ràng, có hoặc không, cho mọi dữ liệu đầu vào Ngược lại, thuật toán Las Vegas cũng đảm bảo kết thúc với tất cả dữ liệu, nhưng có thể không cung cấp một câu trả lời rõ ràng nào.

ĐỘ PHỨC TẠP TÍNH TOÁN

Độ phức tạp tính toán của một tiến trình được định nghĩa qua số ô nhớ hoặc số phép toán sơ cấp mà nó sử dụng Đối với thuật toán A, độ phức tạp tính toán trong trường hợp xấu nhất được biểu thị bằng hàm số fA(n), trong đó fA(n) đại diện cho số ô nhớ hoặc số phép toán sơ cấp tối đa mà thuật toán cần để xử lý dữ liệu đầu vào có độ dài không vượt quá n.

Thuật toán A được coi là có độ phức tạp thời gian đa thức nếu tồn tại một đa thức P(n) sao cho với mọi n đủ lớn, độ phức tạp tính toán theo thời gian fA(n) của A không vượt quá P(n).

Về sau khi nói đến các bài toán, ta hiểu đó là các bài toán quyết định, mỗi bài toán P như vậy được xác định bởi:

 Một tập các dữ liệu vào I

 Một câu hỏi Q trên các dữ liệu vào, sao cho với mỗi dữ liệu vào x  I, câu hỏi Q có một trả lời đúng hoặc sai

Bài toán quyết định P được coi là giải được khi tồn tại thuật toán có khả năng xử lý mọi dữ liệu đầu vào và đưa ra kết quả đúng hoặc sai dựa trên câu hỏi Q Đặc biệt, bài toán P được xem là giải được trong thời gian đa thức nếu thuật toán giải quyết nó có độ phức tạp thời gian thuộc dạng đa thức.

1.3.2 Hàm một phía và Hàm một phía có cửa sập

Hàm số y = f(x) được xem là hàm một phía (one-way function) khi việc tính toán từ x ra y là "dễ", trong khi việc tìm x từ y lại là "khó" Các thuật ngữ "dễ" và "khó" không có định nghĩa chính xác mà được hiểu theo cách thực tiễn; cụ thể, "dễ" có thể được tính toán trong thời gian đa thức với bậc thấp, còn "khó" là không thể tính toán trong thời gian đa thức.

Cho đến nay, việc tìm và chứng minh một hàm số không tính được trong thời gian đa thức vẫn là một thách thức lớn Thuật ngữ “khó” thường được hiểu là chưa có thuật toán giải quyết trong thời gian đa thức Dựa trên cách hiểu này, các bài toán như phân tích thừa số nguyên tố và logarit rời rạc có thể được xem là các hàm một phía.

Hàm y = f(x) được gọi là hàm một phía có cửa sập (trapdoor one-way function) khi việc tính toán từ x sang y là dễ dàng, trong khi việc tìm x từ y lại khó khăn Tuy nhiên, với sự trợ giúp của một cửa sập z, quá trình tính x từ y trở nên dễ dàng hơn.

MỘT SỐ PHƯƠNG PHÁP THÁM MÃ

PHƯƠNG PHÁP THÁM MÃ

2.1.1 Thám mã chỉ biết bản mã

Thám mã chỉ biết bản mã (Ciphertext only attack - COA) là một phương pháp thám mã trong đó kẻ tấn công chỉ có quyền truy cập vào tập hợp các bản mã mà không có thông tin nào khác về khóa hoặc văn bản gốc.

Xảy ra trường hợp này khi (như thời ngày xưa) bắt được kẻ đưa thư, hoặc (thời ngày nay) chặn được thông tin truyền trên mạng

Thám mã được coi là thành công hoàn toàn khi có thể suy ra các bản rõ tương ứng hoặc tìm ra khóa giải mã Ngoài ra, khả năng thu thập thông tin về bản rõ cơ sở cũng được xem là một dấu hiệu của thành công trong quá trình thám mã.

Trước đây, các hệ mã hoá được thực hiện bằng bút và giấy thường dễ bị phá vỡ khi sử dụng bản mã đơn lẻ Đối với các hệ mã cổ điển đơn giản, nhà lập mã đã phát triển kỹ thuật thống kê, đặc biệt là phương pháp "phân tích tần số" để tấn công bản mã.

Các hệ mã hiện đại được thiết kế để bảo vệ chống lại các cuộc tấn công bằng cách dựa vào giả thuyết giải mã liên quan đến các bài toán khó Quá trình kiểm tra tính bảo mật của các hệ mã mới thường kéo dài nhiều năm và yêu cầu đánh giá toàn diện tất cả các khía cạnh của một lượng lớn các bản mã từ các thống kê ngẫu nhiên khác nhau.

Ví dụ như hệ mã RSA, để tìm ra bản rõ từ bản mã thì phải giải bài toán

“khó” là bài toán RSA

2.1.2 Thám mã biết bản rõ

Thám mã biết bản rõ (KPA) là một phương pháp tấn công giải mã, trong đó kẻ tấn công có quyền truy cập vào cả bản rõ và bản mã Họ sử dụng thông tin này để tìm hiểu thêm về hệ thống mã hóa, đặc biệt là nhằm tìm ra khoá bí mật.

Bản mã và bản rõ có thể bị phát hiện một cách ngẫu nhiên bởi thám mã, chẳng hạn như khi thông tin được chia thành nhiều bản rõ để mã hóa thành các bản mã tương ứng Nhiều người đưa thư khác nhau có thể mang đến một địa điểm nhất định, và thám mã có thể vô tình bắt gặp một người đưa thư cầm theo cả bản mã và bản rõ tương ứng Sự phát hiện này hoàn toàn ngẫu nhiên và thám mã không thể dự đoán trước.

Nhiều hệ mã hóa cổ điển, như hệ mã chuyển dịch (Caesar cipher), dễ bị tấn công bởi thám mã Khi có một cặp bản mã và bản rõ, tức là biết khoảng chuyển dịch, ta có thể xác định được khóa K và từ đó giải mã toàn bộ hệ thống.

Các file ZIP mã hóa có thể dễ dàng bị tấn công nếu kẻ thám mã có một file ZIP chưa mã hóa, được gọi là bản rõ (Known plaintext) Bằng cách sử dụng các phần mềm có sẵn, họ có thể nhanh chóng tính toán được khóa để giải mã toàn bộ file Để tìm kiếm file chưa mã hóa này, kẻ thám mã có thể truy cập các website, tìm kiếm trong kho lưu trữ, hoặc cố gắng tái tạo một file rõ dựa trên thông tin từ tên file trong kho lưu trữ đã được mã hóa.

2.1.3 Thám mã với bản rõ đƣợc chọn

Thám mã với bản rõ được chọn (Chosen Plaintext Attack - CPA) là một mô hình tấn công nhằm giải mã, trong đó thám mã có khả năng chọn một bản rõ tùy ý và biết bản mã tương ứng Tình huống này xảy ra khi thám mã tạm thời chiếm được máy lập mã Đối với hệ mã hóa công khai, việc này trở nên rõ ràng hơn, vì nếu thám mã biết khóa công khai, họ có thể mã hóa bất kỳ bản rõ nào mà họ chọn Trong các hệ mã đối xứng, thám mã cũng có thể "bắt" bất kỳ kẻ đưa thư nào mà họ muốn, không phải theo nghĩa là thu thập tất cả các cặp bản rõ và bản mã, mà là nếu thám mã có một bản rõ nhất định, họ có thể "bắt" kẻ đưa thư mang bản mã tương ứng với bản rõ đó.

Trong trường hợp này, thám mã thể hiện "năng lực mạnh" hơn so với thám mã ở mục trước, vì ở mục trước chỉ có khả năng nhận diện cặp bản rõ và bản mã một cách ngẫu nhiên, trong khi ở đây, thám mã có thể biết được lựa chọn của đối thủ trước đó.

Thám mã sử dụng một oracle kiểm tra bản rõ, nhận đầu vào là cặp (m, c) để xác định xem c có phải là mã của m hay không Trong tình huống xấu nhất, thám mã có thể phát hiện khóa bí mật của hệ thống mã thông qua bản rõ được chọn.

Thám mã với bản rõ được chọn đóng vai trò quan trọng trong các hệ thống mã hóa công khai, vì các khóa mã hóa được công khai cho phép thám mã mã hóa bất kỳ bản rõ nào mà họ lựa chọn.

Any code that is secure against a "chosen plaintext attack" is also secure against both "known plaintext attacks" and "ciphertext-only attacks," highlighting the inherent security implications involved.

Có hai kiểu phân biệt “thám mã với bản rõ được chọn”:

 “Thám mã với bản rõ được chọn” theo khối, trong đó thám mã chọn tất cả các bản rõ trước, rồi sau đó mới mã hoá

Thám mã với bản rõ được chọn phù hợp tạo ra chuỗi các bản rõ (queries) liên quan, trong đó việc lựa chọn các bản rõ tiếp theo dựa trên thông tin từ các mã hoá trước đó.

Các giải thuật mã hoá khoá công khai không ngẫu nhiên, như RSA, dễ bị tấn công bởi các phương pháp thám mã đơn giản như thám mã từ điển Phương pháp này xây dựng bảng các bản rõ và bản mã tương ứng, cho phép thám mã tìm kiếm bản rõ bằng cách đối chiếu với bản mã đã biết Tuy nhiên, để thành công, không gian của các bản rõ cần phải đủ nhỏ hoặc thám mã phải có khả năng đoán trước được tập hợp các bản rõ mà người lập mã sẽ sử dụng.

Vì vậy việc định nghĩa bí mật hoàn toàn cho hệ mã hoá công khai dưới

“sự thám mã với bản rõ được chọn” yêu cầu hệ mã phải là hệ mã xác xuất (ví dụ mã hoá ngẫu nhiên) ([13])

2.1.4 Thám mã với bản mã đƣợc chọn

TÍNH AN TOÀN CỦA HỆ MÃ

2.2.1 An toàn một chiều (One – Wayness ) Đây là yêu cầu cơ bản về tính an toàn của hệ mã hóa khóa công khai Khi Bob dùng khóa công khai của Alice mã hóa thông tin của mình và gửi cho Alice, thám mã bằng cách nào đó lấy được bản mã, thì cũng “khó” thể giải được bản mã (việc giải bản mã là không thể thực hiện được trong thời gian chấp nhận), nếu không biết khóa bí mật mà Alice nắm giữ

Trong việc tìm ra bản rõ từ bản mã mà không có khóa bí mật, xác suất thành công của bất kỳ thám mã A nào là rất thấp, gần như không đáng kể Điều này xảy ra trong không gian xác suất M × Ω, với M là không gian các bản rõ và Ω là không gian các thành phần ngẫu nhiên r.

Ký hiệu Succ ow (A) là xác xuất thành công của kẻ thám mã A sử dụng giải thuật thời gian đa thức để tìm ra bản rõ m

Gk là một thuật toán tạo ra cặp khóa công khai (pk) và khóa bí mật (sk) từ đầu vào là chuỗi z thuộc tập {0,1}^k, trong đó z là chuỗi có độ dài k bit, với mỗi bit có thể là 0 hoặc 1.

Giải thuật mã hóa E cho phép tạo ra bản mã E(m)p k từ thông điệp m bằng khóa công khai pk A là kẻ thám mã sử dụng giải thuật thời gian đa thức với hai đầu vào là khóa công khai pk và bản mã E(m)p k để thực hiện việc giải mã.

Succ ow (A) = Pr[G k (z)  (p k , s k ), M R  m: A(p k , E (m ) p k ) = m]  є , trong đó є là lượng không đáng kể

Nếu giải thuật mã hóa là đơn định, thì không gian mã hóa () sẽ rỗng Để đảm bảo an toàn, không gian M cần phải lớn Tuy nhiên, nếu không gian M lớn nhưng kẻ thám mã có thể đoán trước tần suất của không gian con trong M hoặc sử dụng bản rõ, điều này có thể dẫn đến nguy cơ bị xâm phạm an toàn.

Thực tế những hệ mã có  =  (không phải là hệ mã xác xuất), thì có tính an toàn không cao, và ít được dùng trong thực tế

2.2.2 An toàn ngữ nghĩa (Semantic Security)

Hệ thống được gọi là an toàn ngữ nghĩa (Semantic Security) nếu thám mã có thể suy ra bản rõ từ bản mã mà không cần biết trước bản mã Điều này có nghĩa là việc biết bản mã không cung cấp bất kỳ thông tin nào cho thám mã, đảm bảo tính bảo mật cao cho thông tin.

Semantic Security cũng tương đương với khái niệm an toàn đa thức (Polynomial Security)

An toàn đa thức ([13]) có nghĩa là cho trước bản mã, không thể tính toán được bất cứ thứ gì về bản rõ trong thời gian đa thức

Gọi f là một hàm bất kì được định nghĩa trên không gian các bản tin

M Chúng ta nói f(m) là bao gồm những thông tin về bản tin m  M Những hàm f điển hình được quan tâm như hàm băm, hàm xác thực, …

Việc trích xuất thông tin từ các bản tin mã hóa được coi là “khó khăn”, ngay cả khi xác suất phân bố của không gian bản tin đã được biết đến.

Với tất cả m  M, đặt Prm = Prob(x = m | x  M) là xác suất mà x = m với x  M

Xét tập V = f(M), định nghĩa Pr M = max ( Pr )

Giá trị V m và v M trong hàm V = f(M) đạt xác suất lớn nhất Pr M Để giải mã, chúng ta sử dụng thuật toán mã hóa E, trong đó E là công khai và đã được thám mã biết trước Xem xét ba trường hợp sau để phân tích hiệu quả của thuật toán này.

Trường hợp 1: Chọn ngẫu nhiên m  M (mỗi x  M có xác xuất là

Pr x ) Trong trường hợp này thám mã phải dự đoán f(m) (thông tin về bản rõ m) mà không được biết m

Nếu thám mã liên tục dự đoán f(m) = v M, thì dự đoán này sẽ luôn chính xác với xác suất Pr M Theo định nghĩa đã nêu, không có phương pháp nào khác cho thám mã có thể đạt được xác suất dự đoán cao hơn.

Trường hợp 2: Chọn ngẫu nhiên m  M Tính bản mã   E(m) Cho

Trong trường hợp 3, cho thám mã lựa chọn hàm fE được định nghĩa trong M Thám mã sẽ chọn ngẫu nhiên một m thuộc M và tính bản mã α thuộc E(m) Khi thám mã biết α, nhiệm vụ của họ là dự đoán giá trị f(m), trong đó f(m) đại diện cho tập hợp thông tin về bản rõ m, và trong trường hợp tốt nhất, f(m) chính là bản rõ m.

Ký hiệu Gk là giải thuật tạo khóa công khai và bí mật, E là giải thuật mã hóa, D là giải thuật giải mã

Lược đồ  = (Gk, E, D) được coi là lược đồ mã hóa khóa công khai an toàn ngữ nghĩa nếu trong trường hợp thám mã, xác suất dự đoán giá trị f(m) không lớn hơn so với trường hợp 1.

Hệ thống an toàn ngữ nghĩa là một loại hệ thống bảo mật mà ngay cả khi kẻ thám mã biết bản mã, họ vẫn không thu được bất kỳ thông tin nào từ đó.

Ví dụ trong một chiến dịch quân sự bản rõ bao gồm: thông tin về số quân, giờ đánh, vị trí đánh, vũ khí hạng nặng có những gì

An toàn ngữ nghĩa đề cập đến việc khi một kẻ thám mã biết bản mã của bản rõ, họ vẫn không thể thu thập được bất kỳ thông tin nào về bản rõ, chẳng hạn như không thể xác định số quân.

Trong định nghĩa an toàn cổ điển, một hệ mã được coi là an toàn nếu không thể tìm ra bản rõ tương ứng từ bản mã đã cho Tuy nhiên, định nghĩa này được củng cố chặt chẽ hơn khi không chỉ yêu cầu không tìm được bản rõ mà còn không thể xác định bất kỳ thông tin nào, ngay cả một phần nhỏ (một bit) của bản rõ đó Ví dụ, trong trường hợp này, thông tin về số quân cũng không thể biết được.

2.2.3 Tính không phân biệt đƣợc (Indistinguishability : IND)

Mục tiêu chính của mã hóa là bảo vệ tính bí mật của thông tin, khiến cho việc thám mã trở nên khó khăn, vì họ chỉ có thể biết được độ dài của bản rõ mà không thể truy cập vào nội dung thực sự.

Giả sử A = (A1, A2) là hai giai đoạn tấn công của thám mã Giải thuật

PHÂN TÍCH ĐÁNH GIÁ MỘT SỐ HỆ MÃ HOÁ

HỆ MÃ HOÁ ELGAMAL

3.2.1 Hệ mã ELGAMAL đảm bảo an toàn ngữ nghĩa

Sơ đồ hệ mã Elgamal:

Tập bản rõ P = Z*p , tập bản mã C = Z* p  Z*p , p là số nguyên tố

Khóa công khai là bộ (p,  ,  ), khóa bí mật là a, trong đó    a mod p,

  Z*p là phần tử sinh của Z* p

 Chọn r ngẫu nhiên thuộc Zp-1

Hệ mã Elgamal có tính chất xác suất (do việc chọn r ngẫu nhiên thuộc

Z p-1 ), tức là một bản rõ có thể có nhiều bản mã tùy thuộc vào việc ta chọn số ngẫu nhiên r

Vì p là số nguyên tố lớn, xác suất chọn ngẫu nhiên r bằng nhau giữa hai lần lập mã cho cùng một bản rõ là rất thấp, do đó việc biết bản mã không cung cấp thông tin gì về bản rõ, giả sử các giả thiết toán học của hệ mã là chính xác Độ khó của hệ mã phụ thuộc vào độ khó của bài toán Logarit rời rạc và giả thuyết Diffe-Hellman, tương tự như bài toán RSA, vẫn chưa có giải pháp khả thi trong thời gian chấp nhận được Theo định nghĩa, hệ Elgamal đảm bảo an toàn ngữ nghĩa.

3.2.2 Hệ mã ELGAMAL an toàn trước tấn công KPA, COA, CPA

Hệ mã hóa ELGAMAL là một dạng mã hóa công khai, do đó mô hình tấn công CPA (Chosen Plaintext Attack) luôn được áp dụng Thám mã có khả năng mã hóa bất kỳ bản rõ nào mà họ lựa chọn.

Giải mã để tìm bản rõ tương đương với bài toán Logarit rời rạc, hiện chưa có phương pháp giải quyết hiệu quả trong thời gian chấp nhận được Đến nay, hệ mã ELGAMAL vẫn được tin tưởng là an toàn trong mô hình tấn công CPA, và do đó cũng an toàn trong các mô hình tấn công yếu hơn như COA (tấn công chỉ với bản mã) và KPA (tấn công với bản rõ đã biết).

3.2.3 Hệ mã ELGAMAL không đạt an toàn trước tấn công CCA

Xét hai bản rõ m1 và m 2 , theo hệ mã Elgamal ta có

E(m 1 ) = ( r1 , m 1  r1 ), E(m 2 ) = ( r2 , m 2  r2 ) Với r1 , r 2 là hai số ngẫu nhiên

E(m1m2) chính là một sự mã hóa của bản rõ m1m2 dưới số ngẫu nhiên r

Nói cách khác giải mã bản mã E(m 1 ) E(m 2 ) ta sẽ thu được bản rõ là m 1 m 2

Trong mô hình tấn công CCA, nếu thám mã nhận bản mã c = (c1, c2), họ có thể chọn một bản rõ m' và gửi bản mã c E(m') = E(m) E(m') tới máy tư vấn giải mã Thám mã có quyền này mà không vi phạm điều kiện không truy vấn máy tư vấn giải mã trực tiếp trên bản mã c Máy tư vấn giải mã sẽ trả về bản rõ mm' Như vậy, thám mã có thể thu hồi bản rõ m cần tìm, chứng tỏ rằng hệ mã đã bị phá.

Vậy Elgamal không an toàn dưới mô hình tấn công CCA.

HỆ MÃ HOÁ CRAMER-SHOUP (1998)

Những hệ mã có thể đạt an toàn trước tấn công mạnh nhất hiện nay

Hệ mã CCA2, viết tắt của hệ mã đạt an toàn IND-CCA, thường không khả thi trong thực tế do yêu cầu các giả thiết phức tạp và khó áp dụng.

Ta sẽ giới thiệu hệ mã Cramer-Shoup (do Ronald Cramer và Victor

Hệ mã do Shoup phát triển là hệ mã đầu tiên đạt được cả hai tính chất an toàn IND-CCA và tính khả thi trong thực tế Độ an toàn của hệ mã này dựa trên giả thuyết Decisionnal Diffie-Hellman.

3.3.1 Vấn đề Decisionnal Diffie-Hellman

Cho G là nhóm Abelian cấp q, trong đó q là số nguyên tố lớn

Ta xét hai phân bố sau:

 Phân bố R của nhóm 4 phần tử ngẫu nhiên (g1, g 2 , u 1 , u 2 )  G 4 ;

Phân bố D của nhóm 4 phần tử (g1, g2, u1, u2) thuộc G4, với g1, g2 là ngẫu nhiên và u1 = g1^r, u2 = g2^r, trong đó r là một số ngẫu nhiên thuộc Zq Vấn đề Decisionnal Diffie-Hellman liên quan đến việc phân biệt hai nhóm (g1, g2, u1, u2) trong G4, trong đó tất cả các phần tử g1, g2, u1, u2 đều là ngẫu nhiên thuộc G.

Và (g 1 , g 2 , u 1 , u 2 )  G 4 trong đó g 1 , g 2 là ngẫu nhiên thuộc G và u 1 g1 r và u2 = g2 r với r ngẫu nhiên thuộc Zq Nếu ta thay thế như sau: g 1 → g, g 2 → g x , u 1 → g y , u 2 → g xy ,

Ta thấy rằng nó tương đương với sự phân biệt bộ ba Diffie-Hellman (g x , g y , g xy ) từ bộ ba bất kỳ (g x , g y , g z )

Có nghĩa là nó cũng liên hệ với vấn đề Diffie-Hellman (cho trước g, g x và g y tính g xy ), hay vấn đề logarithm rời rạc (cho trước g và g x tính x)

Có mối liên hệ thời gian đa thức giữa giả thuyết Decisionnal Diffie-Hellman và giả thuyết Diffie-Hellman, cũng như giữa giả thuyết Diffie-Hellman và bài toán Logarithm rời rạc; tuy nhiên, chưa có quy dẫn nào được xác định theo chiều ngược lại cho đến nay.

Có nhiều bằng chứng Heuristic chứng minh độ khó của ba giả thuyết này Đến nay, vẫn chưa có thuật toán thời gian đa thức nào giải quyết được cả ba giả thuyết, do đó, chúng ta vẫn tin rằng hệ mã dựa trên độ khó của một trong ba giả thuyết này là an toàn.

Hệ mã Cramer-Shoup có độ „khó‟ dựa trên giả thuyết Decisionnal Diffie-Hellman

Một họ hàm băm được xem là không va chạm mạnh khi, với một hàm băm H ngẫu nhiên, rất khó để tìm hai đầu vào khác nhau x và y sao cho H(x) = H(y).

Một khái niệm quan trọng trong lĩnh vực mã hóa là hàm băm không va chạm yếu, trong đó nếu cho phép thám mã chọn trước giá trị x và hàm H được chọn ngẫu nhiên, thì việc tìm kiếm giá trị y sao cho H(x) = H(y) trở nên rất khó khăn.

Một trường hợp đặc biệt của hàm băm không va chạm yếu là "tính kháng va chạm với mục tiêu" (target collision resistant - TCR) Trong trường hợp này, một giá trị x được chọn ngẫu nhiên trước, sau đó hàm băm H cũng được chọn ngẫu nhiên Điều này khiến cho việc tìm kiếm một giá trị y sao cho H(x) = H(y) trở nên "khó" cho kẻ thám mã.

Ví dụ SHA-1, MD5 đều thỏa mãn là hàm băm TCR

Giả sử G là một nhóm Abelian có cấp q, trong đó q là một số nguyên tố lớn Giả sử rằng bản rõ là một phần tử thuộc G Sử dụng họ hàm băm TCR, chúng ta có thể ánh xạ các chuỗi bit dài tới các phần tử của Zq.

Chọn ngẫu nhiên g1 , g 2  G và x 1 , x 2 , y 1 , y 2 , z  Zq

Hàm băm H được chọn từ họ hàm băm TCR

Khoá công khai là (g1, g2, c, d, h, H), khoá bí mật là (x1 , x2 , y1 , y2 , z)

Cho bản rõ m  G Chọn r ngẫu nhiên  Z q Tính u 1 = g 1 r , u 2 = g 2 r , e = h r m , α = H(u1, u 2 , e), v = c r d r.α Bản mã là (u1, u2, e, v)

Cho bản mã (u1, u2, e, v) Tính α = H(u1, u2, e), và kiểm tra u 1 x 1  y 1 *  u 2 x 2  y 2 *  = v

Nếu điều kiện kiểm tra không được đáp ứng, giải thuật sẽ trả về kết quả đầu ra là thông báo từ chối (reject) Ngược lại, giải thuật sẽ tính toán và trả về kết quả là m = e / u1 z.

Chúng ta kiểm tra đây đúng là một hệ mã, có nghĩa giải mã bản mã sẽ cho kết quả là bản rõ

Mặt khác u 1 y 1 u 2 y 2 = d r và u 1 z = h r Vì thế điều kiện kiểm tra thoả mãn, và đầu ra sẽ là m = e / h r

Khoá công khai là (g1=2, g 2 =1, c=4, d=2, h=8, SHA-1), khoá bí mật là (x 1 =2, x 2 =3, y 1 =1, y 2 =2, z=3)

Mã hóa : bản rõ m = 5, thành phần ngẫu nhiên r = 2

Giải mã : Tính α = SHA-1(4, 1, 320), và kiểm tra u 1 x 1  y 1 *  u 2 x 2  y 2 *  = v = 4 2+1.11 1 2+2.11 = 1073741824 đúng Vậy bản rõ là m = e / u1 z

3.3.3 Độ an toàn của hệ mã hoá Định lý 3.1 (Ronald Cramer - Victor Shoup):

Hệ mã này đạt tiêu chuẩn an toàn IND-CCA2, dựa trên giả thuyết rằng H là hàm băm TCR và giả thuyết Decisionnal Diffie-Hellman là "khó" trong nhóm G, với G là nhóm Abelian có cấp q, trong đó q là một số nguyên tố lớn.

Hệ mã Cramer – Shoup được chứng minh đạt an toàn IND-CCA2, dựa trên định lý đã nêu, vì hiện tại chưa có thuật toán thời gian đa thức nào có thể giải quyết vấn đề Decisionnal Diffie-Hellman.

Do vậy kéo theo hệ mã an toàn trước các mô hình tấn công KPA, COA, CPA cũng như đảm bảo an toàn ngữ nghĩa

3.3.4 Cài đặt hệ mã hoá Để cài đặt hệ mã trong thực tế, có thể chọn p là số nguyên tố lớn sao cho p – 1 = 2q, trong đó q cũng là số nguyên tố lớn

Nhóm G là một nhóm con cấp q trong Z * p Để mã hóa một phần tử trong tập {1, …, q}, ta có thể thực hiện phép bình phương phần tử đó theo modulo p, từ đó thu được một phần tử thuộc nhóm G.

Ta có thể khôi phục lại bằng cách lấy căn bậc hai theo modulo p để được một phần tử duy nhất nằm trong tập {1, …, q}

Bản rõ m là một phần tử nằm trong tập {1, 2, 3, 4, 5}, bây giờ ta tính tập G, bằng cách bình phương từng phần tử trong tập {1, 2, 3, 4, 5} theo modulo 11, ta được tập G ={1, 4, 9, 5, 3}

Bây giờ nếu ta muốn mã hóa bản rõ m thuộc tập {1, 2, 3, 4, 5}, ví dụ m

= 4, ta tính tương ứng với nó trong tập G là 4 2 mod 11 = 5 Ta lấy giá trị m‟= 5 đi mã hóa

Sau khi giải mã, ta nhận được m' = 5 Để tìm lại giá trị m ban đầu, ta tính căn bậc hai của 5 theo mod 11, nhằm xác định một phần tử trong tập {1, 2, 3, 4, 5} Công thức áp dụng là 5 + k * 11, và cần chọn k sao cho giá trị thu được nằm trong tập này Ở đây, k = 1, do đó giá trị của m là 4.

HỆ MÃ HOÁ LAI (Hybrid Encryption)

Hệ mã Cramer và Shoup ở trên yêu cầu giới hạn bản rõ là một phần tử

Cramer và Shoup đã phát triển một hệ mã mới dựa trên hệ mã hiện có, được gọi là mã hóa lai (Hybrid Encryption), nhằm tạo ra sự linh hoạt trong việc sử dụng bản rõ.

Hệ mã hoá lai cơ bản bao gồm hai phần, trong đó phần đầu tiên là hệ mã hoá công khai, được gọi là "cơ chế đóng gói khoá" (key encapsulation mechanism), viết tắt là KEM.

Phần thứ hai ta tạm gọi là hệ mã hoá khoá đối xứng một lần (one-time symmetric-key encryption scheme) viết tắt là SKE

Về cơ bản KEM bao gồm những giải thuật sau:

Giải thuật xác suất thời gian đa thức KeyGen tạo ra cặp khóa công khai và bí mật (Pk, S k) từ chuỗi đầu vào {0, 1} λ với λ ∈ Z và λ ≥ 0 Cấu trúc của Pk và S k sẽ khác nhau tùy thuộc vào từng hệ mã cụ thể.

Giải thuật mã hoá xác suất thời gian đa thức KEM.Encrypt nhận đầu vào là chuỗi nhị phân {0, 1} với độ dài λ (λ ≥ 0) và khoá công khai Pk Kết quả đầu ra của thuật toán là một cặp (K, ψ), trong đó K đại diện cho khoá mã hoá trong hệ mã hoá đối xứng SKE, và ψ là bản mã tương ứng của K.

Khoá K là chuỗi bit có độ dài là KEM.KeyLen (λ),trong đó KEM.KeyLen (λ ) là tham số khác của KEM

Giải thuật KEM.Decrypt là một phương pháp giải mã có độ phức tạp thời gian đa thức, nhận đầu vào bao gồm chuỗi nhị phân {0, 1} λ với λ thuộc số nguyên không âm, bản mã ψ của khóa K và khóa bí mật S k Kết quả đầu ra của thuật toán có thể là khóa K hoặc thông báo không có kết quả hợp lệ (reject).

3.4.1.2 Xây dựng sơ đồ mã hoá

Ta ví dụ về cách xây dựng KEM như sau bằng việc thay đổi một chút hệ mã ElGamal:

Gọi G và q như ở trên, g là phần tử sinh của tập G Đặt H là hàm băm (như SHA-1 chẳng hạn)

Giải thuật thứ nhất của KEM :

Khoá công khai là h = g z , trong đó z  Z q được chọn ngẫu nhiên, khoá bí mật là z

Giải thuật thứ hai của KEM : Để tạo khoá công khai K cho hệ mã SKE và bản mã của K ta làm như sau:

Giải thuật cuối cùng của KEM : Để giải bản mã ψ = a, nhằm tìm ra khoá K, ta làm như sau: a z  b; H(b)  K;

Về cơ bản SKE gồm hai giải thuật sau:

 Một giải thuật mã hoá đơn định thời gian đa thức SKE.Encrypt Đầu vào là {0, 1} λ với λ  Z và λ ≥ 0, khoá K và bản rõ m Đầu ra là bản mã χ

Khóa K là một chuỗi bit có độ dài được xác định bởi SKE.KeyLen(λ) Tham số SKE.KeyLen(λ) là một thành phần quan trọng của lược đồ, có thể được tính toán thông qua một thuật toán đơn định thời gian đa thức với đầu vào là {0, 1} λ.

Bản rõ m là chuỗi bit ngẫu nhiên, không giới hạn độ dài (đây chính là ưu điểm so với hệ mã Cramer-Shoup đã trình bày trước đây)

Bản mã χ là chuỗi bit có độ dài tuỳ ý

Giải thuật SKE.Decrypt là một phương pháp giải mã với thời gian đa thức, nhận đầu vào là chuỗi nhị phân {0, 1} λ, trong đó λ là số nguyên không âm Đầu ra của thuật toán này có thể là bản rõ m hoặc ký hiệu "reject" nếu giải mã không thành công.

Khoá K là chuỗi bit có độ dài là SKE.KeyLen(λ)

Bản mã χ là chuỗi bit có độ dài tuỳ ý

Tất nhiên ta yêu cầu rằng SKE phải thoả mãn điều kiện đúng đắn của hệ mã hoá, tức là phải thoả mãn:

Với mọi λ  Z, λ ≥ 0, Với mọi K  {0, 1}SKE.KeyLen(λ), Với mọi m  {0, 1} * (có nghĩa là m có độ dài tuỳ ý) luôn có:

3.4.2.2 Xây dựng sơ đồ mã hoá

SKE là hệ thống mã hóa đối xứng, nhưng khác với các hệ thống khác, nó sử dụng phương pháp mã hóa một lần, nghĩa là khóa K chỉ được sử dụng cho một lần mã hóa duy nhất Điều này giúp tăng cường bảo mật, giảm thiểu nguy cơ bị tấn công CPA (Chosen Plaintext Attack) mà các hệ thống mã hóa đối xứng thông thường thường gặp phải.

Khóa K chỉ được sử dụng một lần trong bản rõ m cụ thể, do đó khả năng tái sử dụng khóa này là rất nhỏ Ví dụ, khi chúng ta chọn z và u ngẫu nhiên từ tập Z q, khả năng bị tấn công theo kiểu CPA là không xảy ra.

Ta nói một tấn công là "bị động" đối với một hệ mã, nếu hệ mã đó đạt an toàn IND (2.2.3) trước tấn công này

Việc xây dựng SKE để bảo vệ an toàn trước các cuộc tấn công bị động là khá đơn giản và có nhiều phương pháp thực hiện Một ví dụ điển hình là sử dụng bộ tạo bit giả ngẫu nhiên để phát sinh khóa K, từ đó tạo ra chuỗi α có độ dài tương ứng với bản rõ m Cuối cùng, bản mã χ được tính bằng cách thực hiện phép XOR giữa m và α, tức là χ = m ⊕ α.

Bộ tạo bit giả ngẫu nhiên có thể được xây dựng từ hàm một phía ([9], [10], [11])

Hệ mã SKE đảm bảo an toàn trước các cuộc tấn công bị động, nhưng lại không đủ an toàn trước tấn công CCA2 Để khắc phục vấn đề này, Cramer và Shoup đã giới thiệu hệ mã cải tiến SKE2, kết hợp giữa SKE và MAC.

– time message authentication code) (mã xác thực thông tin một lần)

MAC bao gồm các thành phần sau:

 Với mọi λ  Z, λ ≥ 0, MAC.KeyLen(λ) là tham số độ dài khoá, và MAC.OutLen(λ) là tham số độ dài đầu ra

Ta giả sử rằng MAC.KeyLen(λ) có thể được tính toán bằng giải thuật đơn định thời gian đa thức, với đầu vào cho trước là {0, 1} λ

 Một họ những hàm được đánh chỉ mục (phân biệt) bởi λ  Z, λ ≥ 0 và chuỗi {0, 1}MAC.KeyLen(λ)

, trong đó mỗi hàm MAC(λ, {0, 1}MAC.KeyLen(λ) , α ) ánh xạ chuỗi bit α có độ dài tuỳ ý tới chuỗi bit có độ dài xác định là MAC.OutLen(λ)

Nghĩa là một giải thuật đơn định thời gian đa thức với đầu vào là λ, chuỗi {0 Để xác định tính an toàn của MAC, chúng ta cần định nghĩa một kịch bản tấn công (attack game).

Thám mã A là một giải thuật có thời gian đa thức, nhận đầu vào là chuỗi bit {0, 1} λ với λ thuộc Z và λ ≥ 0 là tham số an toàn Đầu tiên, thám mã A chọn một chuỗi bit α và gửi nó đến máy tư vấn Máy tư vấn sau đó sẽ tạo ra một khóa ngẫu nhiên dưới dạng chuỗi bit {0, 1} với độ dài MAC.KeyLen(λ).

, sau đó tính MAC(λ, {0, 1}MAC.KeyLen(λ) , α ) = β và gửi trả β cho A

Thám mã A biết cặp (α , β ) nhưng không biết khóa {0, 1}MAC.KeyLen(λ)

Thám mã A sau đó cho đầu ra là một danh sách những cặp chuỗi bit:

Ta nói rằng A đã tạo ra một sự giả mạo, nếu tồn tại một i nào đó

 [1, k] mà α i ≠ α và MAC(λ, {0, 1}MAC.KeyLen(λ) , αi) = β i

Ta ký hiệu AdvForgeMAC,A(λ) là xác xuất mà A tạo ra một sự giả mạo như trường hợp trên

Ta nói rằng MAC là an toàn nếu:

Với tất cả những thám mã A sử dụng giải thuật thời gian đa thức, AdvForge MAC,A (λ) có giá trị không đáng kể

MAC có thể được xây dựng an toàn bằng cách sử dụng họ hàm băm TCR mà không cần dựa vào các giả thuyết toán học phức tạp Mặc dù đã có nhiều phương pháp xây dựng MAC trong thực tế, nhưng độ an toàn của các phương pháp này vẫn chưa được chứng minh một cách đầy đủ.

Bây giờ ta trình bày cách kết hợp SKE và MAC, để tạo ra SKE2 Đầu tiên SKE2.KeyLen(λ) của SKE2 sẽ được tính như sau:

SKE2.KeyLen(λ) = SKE.KeyLen(λ) + MAC.KeyLen(λ)

Khoá lúc này là cặp (K1, K2), trong đó K1 là chuỗi bit có độ dài SKE.KeyLen(λ) và K2 là chuỗi bit có độ dài MAC.KeyLen(λ)

Thuật toán mã hoá như sau: Để mã hoá thông tin m dưới khoá (K1, K 2 ), giải thuật SKE2.Encrypt tính:

SKE.Encrypt({0, 1} λ , K 1 , m)  χ; MAC(λ, K2 , χ)  tag; χ‟ ← χ || tag;

Ký hiệu || có nghĩa là ghép chuỗi Đầu ra là bản mã χ‟

Để giải mã χ‟ dưới khóa (K1, K2), thuật toán SKE2.Decrypt phân tích χ‟ thành hai phần: χ và tag, trong đó tag là chuỗi bit có độ dài MAC.OutLen(λ).

Nếu sự phân tích này thất bại (độ dài χ‟ quá ngắn), giải thuật cho đầu ra là reject

Ngược lại giải thuật tiếp tục tính:

Nếu tag ≠ tag‟, thì giải thuật cho đầu ra là reject

Ngược lại giải thuật tính:

SKE.Decrypt({0, 1} λ , K 1 , χ)  m Đầu ra là bản rõ m Định lý 3.2 (Ronald Cramer - Victor Shoup):

THỬ NGHIỆM CHƯƠNG TRÌNH MÃ HÓA

Ngày đăng: 27/06/2022, 09:12

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[7]. R. Rivest, A. Shamir and L. Adleman, “A method for obtaining digital signatures public key cryptosystems". CACM 21 (1978) Sách, tạp chí
Tiêu đề: A method for obtaining digital signatures public key cryptosystems
[1]. Phan Đình Diệu. Lý thuyết mật mã và An toàn thông tin Khác
[2]. Ronald Cramer and Victor Shoup. Design and Analysis of Practical Public-Key Encryption Schemes Secure Against Adaptive Chosen Ciphertext Attack. 14 August 2003 Khác
[3]. Kaoru Kurosiawa, Yvo Desmedt. A New Paradigm of Hybrid Encryption Scheme. 2004 Khác
[4]. M. Bellare, A. Desai, D. Pointchevaly, P. Rogawayz February. Relations Among Notions of Security for Public-Key Encryption Schemes. 1999 Khác
[5]. Moni Naor, Moti Young. Public-key Cryptosystems Provably Secure Against Chosen CiphertText Attacks Khác
[6]. Ronald Cramer, Victor Shoup. A Practical Public Key Cryptosystem Provably Secure Against Adaptive Chosen Ciphertext Attack . May 1998 Khác
[8]. Mihir Bellare and Phillip Rogaway. Random Oracles are Practical: A Paradigm for Designing Efficient Protocols. 1993 Khác
[9]. O. Goldreich and L. A. Levin. A hard-core predicate for all one-way functions Khác
[10]. J. Hºastad, R. Impagliazzo, L. Levin, and M. Luby. A pseudo-random generator from any one-way function Khác
[11]. R. Impagliazzo, L. Levin, and M. Luby. Pseudo-random number generation from any one-way function Khác
[12]. V. Shoup. Lower bound for discrete logarithms and related problems Khác
[13]. Shafi Goldwasser, Silvio Micali. Probabilistic Encryption. 1984 Khác
[14]. Mihir Bellare and Phillip Rogaway. Optimal Asymmetric Encryption, How to Encrypt with RSA, November 19, 1995 Khác
[16]. Eiichiro Fujisaki, Tatsuaki Okamoto, David Pointcheval, Jacques Stern. RSA-OAEP is Secure under the RSA Assumption Khác
[17]. Mihir Bellare and Phillip Rogaway. Optimal Asymmetric Encryption, 1994 Khác
[18]. Duong Hieu Phan, David Pointcheval. On the Security Notions for Public-Key Encryption Schemes Khác
[19]. Victor Shoup. Research Report Why Chosen Ciphertext Security Matters [20]. Ran Canetti, Oded Goldreich, Shai Halevi. The Random Oracle model, Revisited Khác
[21]. G. Tsudik. Message authentication with one-way hash functions, IEEE INFOCOM '92 Khác
[23]. Danny Dolev, Cynthia Dwork, Moni Naor. Non-Malleable Cryptography, March 24, 2000 Khác

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN