Mã Hoá Và Giải Mã Của Hệ Mã Hoá Khoá Công Khai


1.2 HỆ MÃ HÓA

1.2.1 Khái niệm mã hoá

Thông tin truyền đi trên mạng rất dễ bị trộm cắp. Để đảm bảo việc truyền tin an toàn, người ta thường mã hóa thông tin trước khi truyền đi. Việc mã hóa cần theo quy tắc nhất định.

Hệ mật mã được định nghĩa là bộ năm (P, C, K, E, D) trong đó:

- P là một tập hữu hạn các bản rõ có thể.

- C là một tập hữu hạn các bản mã có thể.

- K là một tập hữu hạn các khóa có thể.

- E là tập các hàm lập mã.

- D là tập các hàm giải mã.

Có thể bạn quan tâm!

Xem toàn bộ 72 trang tài liệu này.

Với mỗi k K, có một hàm lập mã

ek E ,

ek : P C , và một hàm giải mã

dk D ,

dk : C P sao cho: dk

ekxx,x P


Các hệ thống mật mã gồm hai quá trình:

- Mã hoá: Là quá trình chuyển một thông điệp ban đầu (bản rõ) thành một thông điệp được mã hoá (bản mã), sử dụng một thuật toán mã hoá và một khoá mật mã.

- Giải mã: Là quá trình ngược lại, bản mã được chuyển lại về bản rõ, sử dụng một thuật toán giải mã và một khoá giải mã.

Mục tiêu của hệ mật mã là từ bản mã “khó” thể lấy được bản rõ nếu như không có khoá giải mã tương ứng.

1.2.2 Hệ mã hoá đối xứng

Hệ mã hoá khoá đối xứng hay còn gọi là hệ mã hoá khoá bí mật là hệ mã hoá khi biết khóa mã hóa có thể dễ dàng tìm được từ khóa giải mã và ngược lại

Hệ mật mã khóa bí mật yêu cầu người gửi và người nhận phải thỏa thuận một khóa trước khi tin tức được gửi đi, khóa này phải được cất giữ bí mật.

Mô hình mã hoá đối xứng gồm hai quá trình mã hoá và giải mã như sau:


Hình 1 1 Mô hình mã hoá đối xứng Ưu điểm Tốc độ mã hoá và giải mã 1

Hình 1. 1: Mô hình mã hoá đối xứng


Ưu điểm

- Tốc độ mã hoá và giải mã nhanh

- Dùng một khoá cho cả hai quá trình mã hoá và giải mã

Nhược điểm

- Không an toàn vì độ phức tạp tính toán phụ thuộc vào khoá.

- Vì bên nhận và bên gửi đều sử dụng một khoá nên khoá cần phải được truyền trên kênh an toàn. Điều này làm phức tạp cho hệ thống cài đặt hệ mật mã khoá đối xứng.

Một số thuật toán mã hoá đối xứng

- DES: 56 bit, không an toàn. Có thể bị bẻ khoá trong khoảng vài phút.

- Triple DES, RDES: mở rộng độ dài khoá trong hệ DES lên tới 168 bit.

- IDEA (International Data Encryption Algorithm): 128 bit, thuật toán này thường được dùng trong các chương trình email.

1.2.3 Hệ mã hoá công khai

Hệ mã hoá khoá công khai sử dụng một khoá để mã hoá thường được gọi là khoá công khai (public – key), và một khoá để giải mã được gọi là khoá bí mật hay khoá riêng (private – key).

Trong hệ mật mã khóa công khai, khóa mã hóa khác với khóa giải mã, biết được khóa công khai “khó” thể tìm được khóa bí mật.


Hình 1 2 Mã hoá và giải mã của hệ mã hoá khoá công khai Ưu điểm Kẻ tấn 2


Hình 1. 2: Mã hoá và giải mã của hệ mã hoá khoá công khai

Ưu điểm


- Kẻ tấn công biết được thuật toán mã hoá và khoá mã hoá cũng “khó” có thể tính được khoá riêng. Chức năng này đạt được trên nguyên tắc sử dụng các hàm một chiều khi tính hàm y=f(x) là dễ nhưng ngược lại việc tính giá trị x khi đã biết y là khó.

- Không đòi hỏi kênh truyền bí mật vì khoá mã hoá được công khai cho tất cả mọi người.

Nhược điểm

- Tốc độ mã hoá chậm hơn so với mã hoá khoá đối xứng

Một số thuật toán mã hoá khoá công khai

- RSA: độ dài khoá 512 đến 1024 bit, loại mã này được dùng nhiều nhất cho web và chương trình email.

- ElGamal: độ dài khoá từ 512 đến 1024 bit.


1.3 CHỮ KÝ SỐ

1.3.1 Khái niệm chữ ký số

Lược đồ chữ ký số là phương pháp ký một thông điệp lưu dưới dạng điện tử. Và thông điệp được ký này có thể được truyền trên mạng.

Với chữ ký truyền thống, khi ký lên một tài liệu thì chữ ký là bộ phận vật lý của tài liệu được ký. Tuy nhiên, chữ ký số không được gắn một cách vật lý với thông điệp được ký.

Để kiểm tra chữ ký đối với chữ ký truyền thống việc kiểm tra bằng cách so sánh nó với những chữ ký gốc đã đăng ký. Tất nhiên, phương pháp này không an toàn lắm vì nó tương đối dễ đánh lừa bởi chữ ký của người khác. Trong khi chữ ký số thì được kiểm tra bằng cách dùng thuật toán kiểm tra đã biết công khai. Như vậy, “người bất kì” có thể kiểm tra chữ ký số. Việc sử dụng lược đồ ký an toàn sẽ ngăn chặn khả năng đánh lừa (giả mạo chữ ký).

Chữ ký điện tử phải đáp ứng được các yêu cầu:

- Chứng thực: Chữ ký thuyết phục được người nhận rằng văn bản chứa nó là do người ký gửi đến.

- Chống giả mạo: Chữ ký là bằng chứng cho việc người ký đã ký lên, bởi không ai có thể giả mạo chữ ký của người ký.

- Chống tái sử dụng: Chữ ký không chỉ đặc trưng cho người ký mà còn cả văn bản chứa nó, người ta không thể di chuyển chữ ký vào một tài liệu khác với vai trò như chữ ký hợp pháp của văn bản ấy.

- Chống thay đổi văn bản: Sau khi văn bản được ký, nó không thể bị sửa đổi vì mọi sự sửa đổi đều dẫn đến chữ ký không hợp lệ.

- Chống phủ nhận: Người ký không thể phủ nhận chữ ký của mình trên văn bản. Một sơ đồ chữ ký số là bộ 5 (P, A, K, S, V) thoả mãn các điều kiện dưới đây:

- P: tập hữu hạn các thông điệp

- A: tập hữu hạn các chữ ký.

- K: tập hữu hạn các khoá (không gian khoá).

- Với mỗi K thuộc K tồn tại một thuật toán ký

verk V.

sigk B và một thuật toán xác minh


Mỗi

sigk : P A

verk : PxA {true, false} là những hàm sao cho mỗi bức điện

x P

và mỗi chữ ký

y A thoả mãn phương trình dưới đây:


True: nếu y = sig(x)


Ver(x,y) =

False: nếu y # sig(x)


1.3.2 Các loại chữ ký số

1.3.2.1 Chữ ký RSA

Sơ đồ ký RSA (đề xuất 1978)


1. Sinh khoá

Cho n = pq trong đó, p và q là các số nguyên tố.

Khi đó:

K = {(n, p, q, a, b | n=p*q, p q là các số nguyên tố và

a* b 1mod( n )}

Các giá trị n b là công khai, và các giá trị a, p, q là bí mật.

2. Ký

Với mỗi K = {n, p, q, a, b} x P ta định nghĩa:

y = sigk(x) = xa mod n , y A.

3. Kiểm tra chữ ký

verk(x,y)= true x yb mod n


Hình 1. 3: Sơ đồ ký RSA

1.3.2.2 Chữ ký một lần

Sơ đồ chữ ký dùng một lần (one-time signature) là khái niệm vẫn còn khá mới mẻ song rất quan trọng, đặc biệt là trong một số mô hình về tiền điện tử. Khóa luận sẽ trình bày về sơ đồ chữ ký dùng một lần của Schnorr.

Với sơ đồ chữ ký dùng một lần của Schnorr, những người dùng trong cùng hệ thống có thể chia sẻ một số ngẫu nhiên g và hai số nguyên tố p q sao cho: q|(p-1), q1 và gq 1 mod q. Sơ đồ ký như sau:


1. Sinh khoá

- Người dùng, giả sử là Alice, chọn Sk Zq ngẫu nhiên làm khóa bí mật

- Tính Pk g sk mod p làm khóa công khai

2. Ký: Giả sử Alice cần ký lên thông điệp m

- Alice lấy ngẫu nhiên r Zq*

- Tính x = gr mod p

- Tính c = H(m||x)

- Tính y = (r + cSk) mod q

- Chữ ký trên thông điệp m là cặp (c, y)

3. Kiểm tra chữ ký:

Ver = true x = gr mod p c = H(m||x)

Hình 1. 4: Sơ đồ chữ ký một lần của Schnorr

Nhận xét:


Số r không được dùng quá một lần để tạo ra các chữ ký khác nhau.

Giả sử Alice sử dụng r để ký hai thông điệp m m’, tạo ra hai chữ ký là (c, y) và (c’, y’). Khi đó, ta có:

y y' (r cSk ) (r c' Sk ) S


Như vậy, nếu Alice sử

c c' c c' k

dụng r quá một lần cho hai thông điệp khác nhau, bất kỳ ai có hai thông điệp trên đều có thể giải mã được khóa bí mật Sk. Vì vậy sơ đồ chữ kí loại này được gọi là sơ đồ chữ ký dung một lần

1.3.2.3 Chữ ký mù

1) Giới thiệu chữ ký mù

Chữ ký mù được Chaum giới thiệu vào năm 1983. Mục đích của chữ ký mù là làm sao mà người ký lên văn bản mà không được biết nội dung văn bản, nghĩa là có được chữ ký trên x P mà không cho người ký biết giá trị x.

Các bước tiến hành như sau:


1/ Làm mù x: A làm mù x bằng một hàm: z = Blind(x) và gửi z cho B.

2/ Ký: B ký trên z bằng hàm y = Sign(z) = Sign(Blind(x)) và gửi lại y cho A.

3/ Xoá mù: A tiến hành xoá mù trên y bằng hàm

Sign(x) = UnBlind(y) = UnBlind(Sign(Blind(x))).


Hình 1. 5: Sơ đồ chữ ký mù


Chứ kí mù được áp dụng trong kỹ thuật bỏ phiếu từ xa và hệ thống e-money ẩn danh

2) Chữ kí mù dựa trên chữ ký RSA

Bài toán là A muốn lấy chữ ký của B trên x nhưng không muốn cho B biết x. Quá trình thực hiện như sau:


Lấy p,q là các số nguyên tố lớn, n=p*q, (n) = (p-1)*(q-1), ab = 1 mod

(n), r là một số ngẫu nhiên Zn

1/ Làm mù x: A làm mù x bằng hàm: Blind(x) = x*rb mod n=z và gửi z cho B. r được chọn sao cho tồn tại phần tử nghịch đảo r-1(mod n)

2/ : B ký trên z bằng hàm Sign(z) = Sign(Blind(x)) = za mod n=y và gửi lại y cho A.

3/ Xoá mù: A tiến hành xoá mù y bằng thuật toán:

UnBlind(y) = UnBlind(Sign(Blind(x))) = y* r 1 mod n = sign(x).

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 09/05/2022