1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin

12 769 1

Đ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

Định dạng
Số trang 12
Dung lượng 598,57 KB

Nội dung

Việc mã hoá dữ liệu được thực hiện bằng thuật toán mã hoá khoá đối xứng AES để đảm bảo yếu tố tốc độ mã hoá; thuật toán mã khoá công khai RSA được sử dụng trong việc tạo/kiểm tra chữ ký

Trang 1

Hệ mật RSA và ứng dụng lược đồ chữ

ký số trong xác thực thông tin : Luận văn ThS Công nghệ thông tin : 60 48

10 / Đỗ Thanh Bình ; Nghd : PGS TS

Đoàn Văn Ban

Luận văn với đề tài “Hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin” nghiên cứu và ứng dụng hệ mật mã RSA trong

mã hóa dữ liệu

Nội dung được chia thành các chương như sau:

Chương I: Tổng quan về các hệ mật mã

Giới thiệu mô hình một số hệ mật mã đang được ứng dụng như hệ

mã dịch vòng, mã thay thế, hoán vị, hệ mật mã RSA, v.v

Chương II: Hệ mật mã khoá công khai RSA

Nghiên cứu các vấn đề liên quan đến hệ mật mã khoá công khai RSA; phương pháp lập mã và giải mã; các đặc điểm và độ an toàn của

hệ mật; vấn đề quản lý khoá, phân phối khoá

Chương III: Lược đồ chữ ký số RSA

Giới thiệu chữ ký số RSA, các ứng dụng của chữ ký số trong việc xác thực dữ liệu; lược đồ chữ ký số; v.v

Chương IV: Chương trình mã hoá dữ liệu

Ứng dụng cơ sở lý thuyết đã nghiên cứu để xây dựng một chương trình mã hoá ứng dụng các kỹ thuật mã khoá bí mật, mã khoá công khai

và lược đồ chữ ký số

Trang 2

Đỗ Thanh Bình 2 Tóm tắt luận văn thạc sĩ

CHƯƠG 1 – TỔG QUA VỀ CÁC HỆ MẬT MÃ

1.1 Hệ mật mã cổ điển

1.1.1 Hệ thống truyền tin mật

Nhiệm vụ của mã mật là tạo ra khả năng liên lạc trên kênh công

cộng (công khai) giữa hai người sử dụng sao cho người thám mã ở giữa,

giả thiết thu đầy đủ thông tin trên kênh, mà không thể hiểu được nội

dung bản rõ được truyền đi Thông tin người gửi có cấu trúc tuỳ ý;

người gửi sẽ mã hoá bản tin rõ bằng một khoá đã được xác định trước và

gửi bản mã tới người nhận qua kênh công cộng Người nhận nhờ có

khoá mật kD nên dễ dàng có thể giải mã để nhận được bản rõ

Định nghĩa 1.1: Một hệ mật là một bộ gồm 5 tham số (R, M, K, E,

D) thoả mãn các điều kiện sau:

1) R là tập hữu hạn các bản rõ có thể

2) M là tập hữu hạn các bản mã có thể

3) K (không gian khoá) là tập hữu hạn các khoá có thể

4) Đối với mỗi k∈ K có một quy tắc giải mã ek: P → C và một

quy tắc giải mã tương ứng dk ∈ D Mỗi ek: R → M và dk: M

→ R là những hàm mã: dk(ek(x)) = x với mọi bản rõ x ∈ R

1.1.2 Một số hệ mật mã kinh điển

a) Mã dịch vòng

Hệ mật được xây dựng dựa trên số học modulo Ký hiệu m là số chữ

cái của bộ chữ xây dựng bản rõ R

Theo định nghĩa 1.1, cho R = M = K = Zn với 0 ≤ k ≤ (m - 1) và x, y

∈ Z ; Z là không gian chữ cái, ta định nghĩa:

(Người thám mã)

Bản rõ

Kênh truyền Bản rõ (Người gửi) (Người nhận)

Bản mã

K D

K E

H1.1: Sơ đồ khối hệ thống truyền tin mật

Thám mã

Nguồn khoá

Bộ mã hoá Bộ giải mã

Kênh an toàn (truyền khoá)

KẾT LUẬ

Nội dung của luận văn nghiên cứu các vấn đề lý thuyết hệ mật mã khoá công khai RSA Kỹ thuật mã khoá công khai RSA được ứng dụng trong việc phân phối khoá công khai và sử dụng để mã hoá và phân phối khoá bí mật Ngày nay, việc phân phối khoá công khai sử dụng chứng chỉ khoá công khai là phương án được dùng phổ biến Luận văn cũng tập chung nghiên cứu lược đồ chữ ký số RSA và các ứng dụng của nó Một trong những ứng dụng quan trọng của chữ ký số là vấn đề xác thực thông tin/dữ liệu

Trên cơ sở các vấn đề lý thuyết, tác giả xây dựng một chương trình

mã hoá dữ liệu đảm bảo các yêu cầu bảo mật thông tin trong quá trình truyền tin Thông tin được mã hoá ở phía người gửi và được giải mã ở phía người nhận, đồng thời có cơ chế để người nhận kiểm tra tính xác thực của thông tin nhận được Cơ chế phân phối khoá công khai được thực hiện bằng việc trao đổi các chứng chỉ khoá công khai Việc mã hoá

dữ liệu được thực hiện bằng thuật toán mã hoá khoá đối xứng AES để đảm bảo yếu tố tốc độ mã hoá; thuật toán mã khoá công khai RSA được

sử dụng trong việc tạo/kiểm tra chữ ký số và trong việc phân phối khoá phiên bí mật của thuật toán mã khoá đối xứng AES

Trong khuôn khổ của luận văn, chương trình mới chỉ được xây dựng như một ứng dụng độc lập và chỉ làm việc với chứng chỉ số chuNn X.509

có định dạng file PEM Để có thể triển khai chương trình vào thực tiễn, cần đầu tư thêm để phát triển các tính năng nhằm tăng cường tính tiện lợi của ứng dụng, chẳng hạn: cho phép làm việc với nhiều kiểu định dạng file chứng chỉ số; cho phép chuyển đổi qua lại giữa các kiểu định dạng N goài ra, có thể phát triển thêm một lựa chọn kiểu chương trình là cho phép cài đặt như một ứng dụng “thêm vào” (add-in), để tích hợp tính năng mã hoá và xác thực thông tin/dữ liệu ngay từ bên trong một ứng dụng cụ thể (chẳng hạn, ứng dụng thư điện tử Microsoft Outlook, v.v ) Qua những hoạt động về mật mã trên thực tiễn cùng với những nghiên cứu và kết quả của luận văn có thể khẳng định mật mã nói chung

và mật mã RSA nói riêng đóng vai trò rất quan trọng trong mọi lĩnh vực

xã hội Việc nghiên cứu lý thuyết mật mã RSA và ứng dụng triển khai

kỹ thuật mã hoá này cho phù hợp với những bài toán cụ thể trong hoạt động thực tiễn là một vấn đề hoàn toàn có thể thực hiện

Trang 3

Public Key

A

Private Key

B

Private Key

A

CERT A

Dữ liệu/

văn bản

HASH value

SHA-1

Digital Signature

Digital

Signature

Khoá mật

Dữ liệu

đã mã hoá

Public Key

B AES RSA

RSA

CERT B

Khoá mật

đã mã hoá

Khoá mật

đã mã hoá

So sánh

RSA

Khoá mật AES

CERT A

Dữ liệu/

văn bản

Digital Signature

HASH value SHA-1

RSA

Dữ liệu

đã mã hoá

MÃ HOÁ

HASH value

2

Kết quả xác thực

Các hệ mã mật hiện đại về thực chất là sự cải tiến của mã dịch vòng Đối với mã hoá một văn bản tiếng Anh thông thường là sự thiết lập tương ứng giữa các chữ cái với các số theo modulo 26

Tính bảo mật của hệ mã dịch vòng nói là không cao, thám mã có thể dùng phương pháp vét cạn để tìm khoá để xác định bản rõ, điều này càng rút ngắn nếu thực hiện phép tìm khoá theo cách vét cạn từ hai phía

b) Mã thay thế

Mã thay thế về bản chất xem phép mã hoá và giải mã như là các hoán vị của các ký tự

của m ký hiệu Với mỗi phép hoán vị π ∈ K, ta định nghĩa: eπ(x) = π(x)

và dπ(y) = π-1(y), trong đó π-1 là hoán vị ngược của π

Với các văn bản tiếng Anh khi cần mã hoá, mỗi khoá của mã thay thế là một trong 26! hoán vị Do vậy, áp dụng phương pháp tìm khoá bằng phương pháp vét cạn sẽ khó khăn hơn Mã thay thế có thể dễ dàng

bị thám bằng phương pháp thống kê

c) Mã hoán vị

Ý tưởng của mã hoán vị là thay đổi vị trí giữa các ký tự của rõ Cho m là một số nguyên dương xác định nào đó Theo định nghĩa 1.1, cho R = M = (Z26)m và k gồm tất cả các hoán vị π của {1, …, m} Đối với một khoá π (tức là một hoán vị) ta xác định:

eπ(x1, …, xm) = (xπ(1),… , xπ(m)) và:

dπ (y1,… , ym) = ( 1( ) ( )1 )

1 , , −

m y

d) Các hệ mã dòng

Bản chất của mã này là tạo ra một dòng khoá z = z1 z2 z3… và dùng

nó để mã hoá một xâu bản rõ x = x1 x2 x3… theo quy tắc

y= y1 y2…=ez1(x1)ez2(x2)

Định nghĩa 1.2: Mã mật (mã hoá) dòng là một bộ (R, M, K, L, F, E,

D) thoả mãn các điều kiện sau:

1) R là tập hữu hạn các bản rõ có thể 2) M là tập hữu hạn các bản mã có thể 3) K là tập hữu hạn các khoá có thể (không gian khoá)

Trang 4

Đỗ Thanh Bình 4 Tóm tắt luận văn thạc sĩ

4) L là tập hữu hạn bộ chữ của dòng khoá

5) F = (f1 f2…) là bộ tạo dòng khoá fi: K x R-1 → L; i ≥ 1

6) Với mỗi z ∈ L có một quy tắc mã ez ∈ E và một quy tắc giải

mã tương ứng dz ∈ D thoả mãn dz(ez(x)) = x với mọi x∈P

Hệ mã khối là một trường hợp đặc biệt của mã dòng khi dùng khoá

không đổi zi = K, với ∀i ≥ 1

1.2 Hệ mật khoá công khai

1.2.1 Khái quát

Hệ mật khoá công khai cho khả năng tính toán để xác định quy tắc

giải mã (dk) là rất thấp dù đã biết đầy đủ quy tắc mã hoá ek Quy tắc mã

hoá ek được công khai rộng rãi Ưu điểm của hệ mật này là nười gửi có

thể gửi bản tin cho người nhận mà không cần thông tin trước về khoá

mật N gười nhận là người duy nhất có thể giải mã thông tin nhận được

nhờ sử dụng quy tắc giải mã dk

1.2.2 guyên tắc mã hoá của hệ mật khoá công khai

Trong hệ thống có N đối tượng cùng trao đổi thông tin mật Từng

khai N hư vậy, có N khoá lập mã k1, k2, kn

Khi một đối tượng thứ i muốn gửi thông tin cho đối tượng thứ j thì

dữ liệu được chuyển thành từng khối với độ dài nào đó, mỗi khối P trong

văn bản được mã hoá bằng khoá lập mã ekj của đối tượng thứ j

Thông tin gửi đi có dạng: M = ekj(P)

Để giải mã, đối tượng thứ j thực hiện: dkj(M) = dkj(ekj(P)) = P

Do ekj và dkj là cặp khoá lập mã và giải mã của đối tượng j nên đối

tượng khác trong hệ thống khó có thể tìm ra khoá giải mã dkj trong thời

gian chấp nhận được với phương tiện tính toán giới hạn

1.2.3 Một số hệ mật khoá công khai thông dụng

a) Hệ mật RSA

Hệ mật RSA được xây dựng trên cơ sở mã mũ, trong đó khoá lập mã

là cặp (b, n), gồm số mũ b và mod n Với n = p.q, trong đó p và q là các

số nguyên tố; còn b được chọn là một số nguyên ngãu nhiên sao cho 1(b,

ϕ(n)) = 1, với ϕ(n) là giá trị hàm Euler của n, và: ϕ(n) = (p - 1)(q - 1)

Đặt R = M = Zn và định nghĩa:

K = {(n, p, q, a, b)} và ab ≡ 1(mod ϕ(n))

Quá trình giải mã:

7) Giải mã khoá mật: sử dụng khoá riêng của người nhận (Private Key B) để giải mã khoá mật

8) Giải mã dữ liệu: sử dụng khoá mật để giải mã toàn bộ dữ liệu hoặc văn bản điện tử, chữ ký và chứng chỉ số

9) Tính giá trị “băm” của văn bản: toàn bộ dữ liệu hoặc văn bản điện tử gốc được đưa qua thuật toán băm 1 chiều để tạo

ra một mã nhận dạng có tính duy nhất (Hash Value) 10) Kiểm tra tính hợp lệ của văn bản: sử dụng khoá công khai của người gửi (Public Key A) để kiểm tra chữ ký số trên giá trị “băm” của văn bản để kết luận về tính hợp lệ của dữ liệu hoặc văn bản:

1 N ếu kết quả kiểm tra đúng, chứng tỏ thông tin là do người gửi gửi (khoá giải mã cùng cặp khoá với khoá mã hoá); và nội dung thông tin còn nguyên gốc sau khi ký

2 N ếu kết quả kiểm tra sai thì chứng tỏ thông tin không phải do người gửi gửi (khoá giải mã không cùng cặp khoá với khoá mã hoá); và nội dung thông tin không còn nguyên gốc sau khi ký

Trang 5

CHƯƠG 4 - CHƯƠG TRÌH MÃ HOÁ DỮ LIỆU

4.1 Giới thiệu bài toán

Mục tiêu của chương này nhằm xây dựng một chương trình mã hoá

ứng dụng mô hình mật mã RSA với lược đồ chữ ký số phục vụ bảo mật

thông tin trong môi trường truyền tin, đảm bảo các yêu cầu sau:

 Bảo mật thông tin trong quá trình truyền tin Thông tin được

mã hoá ở phía người gửi và được giải mã ở phía người nhận

Việc thực hiện mã hoá sử dụng thuật toán mã hoá có độ

phức tạp cao và thời gian thực hiện nhanh

 Có cơ chế để người nhận có thể kiểm tra tính hợp lệ của

thông tin nhận được (thông tin được gửi đi bởi đúng người

gửi và không bị thay đổi nội dung trên đường truyền)

Chương trình mã hoá được xây dựng hoạt động theo mô hình như

sau:

Quá trình mã hoá:

1) Tính giá trị “băm” của văn bản/dữ liệu: toàn bộ dữ liệu hoặc

văn bản điện tử được đưa qua thuật toán băm 1 chiều để tạo

ra một mã nhận dạng có tính duy nhất (Hash Value)

2) Tạo chữ ký số: mã nhận dạng này được mã hoá bằng khoá

riêng của người ký (Private Key A) để tạo ra 1 chữ ký số

(Digital Signature)

3) ChuNn bị dữ liệu mã hoá: Gắn chữ ký số này và chứng chỉ

số của người ký (Certificate A) với dữ liệu hoặc văn bản

điện tử

4) Mã hoá dữ liệu: toàn bộ dữ liệu hoặc văn bản điện tử, chữ

ký số và chứng chỉ số được mã hoá bằng thuật toán AES bởi

một khoá mã hoá/giải mã (khoá mật) sinh ra ngẫu nhiên cho

mỗi phiên giao dịch

5) Mã hoá khoá mật: khoá mã hoá/giải mã sau đó được mã hoá

bằng khoá công khai của người nhận (Public Key B) Khoá

công khai này được lấy từ chứng chỉ số của người nhận

(Certificate B)

Quá trình truyền thông tin:

6) Dữ liệu và khoá mật đã được mã hoá được gửi đến người

nhận qua các kênh truyền thông công cộng

Với k = (n, p, q, a, b) ta xác định được :

ek(x) = xb mod n ; dk(y) = ya mod n

b) Hệ mật RABI

Định nghĩa 1.3:

Giả sử n là tích của hai số nguyên tố phân biệt p và q; p.q ≡ 3 (mod 4);

Giả sử R = M = Zn và xác định:

K = {(n, p, q, B): 0 ≤ B ≤ n - 1}

với k = (n, p, q, B) ta định nghĩa:

ek(x) = x(x + B) mod n

2 4

y

B y

Các giá trị n và B được công khai còn p và q được giữ bí mật

c) Hệ mật Elgamal

Hệ mật Elgamal được xây dựng trên bài toán logarithm rời rạc Việc

mô tả bài toán này được thiết lập trong trường hữu hạn Zp, p là số nguyên tố (bài toán logarithm rời rạc trong Zp)

Định nghĩa 1.4: Cho p là một số nguyên tố sao cho bài toán

logarithm rời rạc trong Zp là khó giải Cho α ∈ Z*p là phần tử nguyên thủy Giả sử P = Z*p, C = Z*p×Z*p Từ đây ta định nghĩa:

K = {(p, α, a, β): β ≡ αa (mod p)}

Các giá trị p, α, β được công khai, còn a giữ bí mật

Với K = (p, α, a, β) và một số ngẫu nhiên bí mật k ∈ Zp, ta xác định:

ek(x, k) = (y1, y2), trong đó : y1 = αk mod p ; y2 = x βk modp với y1, y2 ∈ Z*p ta xác định d k(x,k)= y2( )y1a −1 mod p

d) Hệ mật xếp balô Merkle – Hellman Định nghĩa 1.5: Cho S = (S1, S2, … , Sn) là một danh sách các số nguyên siêu tăng

Trang 6

Đỗ Thanh Bình 6 Tóm tắt luận văn thạc sĩ

=

>

n

i

i

S p

1 là một số nguyên tố và 1 ≤ a ≤ p – 1 Với 1≤ i≤ n,

ta xác định:

ti = aSi mod p và ký hiệu t = (t1,…, tn)

Giả sử p = {0,1}n, C = {0, …, n(p-1)} và cho k = {(s, p, a, t)}, trong

đó s, a, p và t là các số được xây dựng như trên, t được công khai, còn p,

a, s được giữ bí mật

Với k = {(s, p, a, t)} ta định nghĩa:

=

=

n

i i i

x x

e

1 1

k , ,

với 0 ≤ y ≤ n(p - 1) ta xác định: Z = a-1 y mod p

và giải mã tập con (S1, , Sn, Z) ta sẽ nhận được: dk(y) = (x1, , xn)

e) Hê mật McEliece

Hệ mật McEliece sử dụng nguyên lý tương tự hệ mật Merkle –

Hellman Phép giải mã là một trường hợp đặc biệt của bài toán N P đầy

đủ nhưng nó được nguỵ trang giống như trường hợp tổng quát của bài

toán Trong hệ mật này bài toán N P được áp dụng là bài toán giải mã

cho một mã sửa sai (nhị phân) tuyến tính nói chung

Hệ mật McEliece dùng mã Goppa có các nhược điểm: dung lượng

khoá lớn (512 K); mã hoá và giải mã phức tạp; chưa có thuật toán tìm

mã hữu hiệu

iv) Dùng thuật toán Euclidean mở rộng để tính số nguyên d, 1<d<ϕ(n), sao cho e.d ≡ 1 (mod ϕ(n))

Khoá công khai của A là (n; e) và khoá riêng của A là (n; d)

3.5.2 Thuật toán sinh và chứng thực chữ ký RSA a) Sinh chữ ký

i) Số hoá P thành số nguyên m ∈ [0, n – 1]; m = R(P);

ii) Tính s = md mod n iii) Chữ ký của A cho thông điệp P là s, gửi s cho B

b) Chứng thực chữ ký

i) Xác thực đúng khoá công khai của A là (n, e) ii) Tính m = se mod n

iii) Xác nhận chữ ký của A nếu m ∈ MR iv) Khôi phục lại P = R-1(m)

3.6 Các kiểu tấn công lược đồ chữ ký số

Chỉ tấn công vào khoá: Trong kiểu tấn công này đối phương chỉ biết

khoá công khai của người ký

Tấn công vào thông điệp: Đối phương biết thêm một số văn bản nào

đó và chữ ký tương ứng của chúng Tấn công vào thông điệp lại được chia làm ba loại:

 Tấn công vào thông điệp đã biết: Biết thông điệp và chữ ký

tương ứng của thông điệp nhưng không được chọn lựa theo ý của đối phương

 Tấn công vào thông điệp được chọn: Đối phương có thể chọn

trước một số văn bản và có chữ ký của chúng

 Tấn công vào thông điệp được chọn thích ứng: Đối phương có

thể lựa chọn các văn bản để lấy chữ ký ngay trong quá trình tấn công (căn cứ trên kết quả lấy chữ ký của vác văn bản trước đó)

Trang 7

Mỗi cá thể tạo một khoá riêng dùng để ký thông điệp và một khoá

công khai tương ứng để các cá thể khác dùng trong xác minh chữ ký

 Mỗi cá thể A chọn một khoá k = (k’; k”) ∈ K, Sigk’ là thuật

toán ký với khoá k

R là một hàm sao cho R(M) = MR và có nghịch đảo là R-1

 Thuật toán Ver k” là một ánh xạ từ Ms đến MR sao cho:

Verk”Sigk’ là ánh xạ đồng nhất trên MR, ∀k ∈ K Verk” gọi

là thuật toán chứng thực được xây dựng sao cho có thể tính

toán khi không biết khoá riêng của người ký thông điệp

 Cặp khoá k = (k’; k”), trong đó khoá công khai của A là k”;

khoá riêng của A là k’

Thuật toán sinh chữ ký:

Cá thể A ký một thông điệp P ∈ M với chữ ký s Một cá thể B bất

kỳ có thể các minh chữ ký và phục hồi thông điệp P từ chữ ký đó Để

sinh chữ ký, cá thể A thực hiện:

i) Chọn một khoá k = (k’; k”) ∈ K

ii) Tính m = R(P) và s = Sigk’(m) (R là nghịch đảo của nó là R-1

là các hàm được công khai)

iii) Chữ ký của A cho thông điệp P là s, và s được gửi đến B

Thuật toán chứng thực chữ ký

Để xác thực chữ ký, B làm như sau:

i) Xác thực đúng khoá công khai của A là k”

ii) Tính m = Verk”(s)

iii) Xác minh rằng m ∈ MR (nếu m ∉ MR thì từ chối chữ ký)

iv) Phục hồi thông điệp P từ m bằng cách tính R-1(m)

3.5 Lược đồ chữ ký số RSA

3.5.1 Thuật toán sinh khoá cho lược đồ chữ ký số RSA

Mỗi cá thể A làm như sau:

i) Sinh ngẫu nhiên hai số nguyên tố lớn p và q

ii) Tính n = p.q và ϕ(n) = (p-1)(q-1)

iii) Chọn ngẫu nhiên một số nguyên e, 1<e<ϕ(n) sao cho

(e,ϕ(n)) = 1

CHƯƠG 2 - HỆ MẬT MÃ KHOÁ CÔG KHAI RSA 2.1 Giới thiệu hệ mật

Bài toán: A muốn gửi cho B một thông tin mật mà A muốn duy nhất

B có thể đọc được Để làm được điều này, B gửi cho A một chiếc hộp có khoá đã mở và giữ lại chìa khoá A nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khoá lại (lúc này ngay cả A cũng không thể đọc lại hay sửa thông tin trong thư được nữa) Sau đó A gửi chiếc hộp lại cho B B mở hộp với chìa khoá của mình và đọc thông tin trong thư Trong ví dụ này, chiếc hộp với khoá mở đóng vai trò khoá công khai, chiếc chìa khoá chính là khoá riêng

Độ mật của RSA được dựa trên cơ sở là hầu như không có khả năng khôi phục hai số nguyên tố p và q từ tích n = p.q của chúng ít nhất là theo với các thuật toán phân tích ra thừa số hiện đã biết Mặt khác, các

số nguyên tố lớn ngẫu nhiên có thể được tạo sinh nhanh chóng

2.2 Phương pháp lập mã và giải mã của hệ mật RSA 2.2.1 Thuật toán

a) Tạo khoá

i) Chọn hai số nguyên tố lớn p, q (p ≠ q) , tính tích n = p.q ii) ϕ(n) = (p - 1)(q - 1)

iii) Chọn một số nguyên e đủ lớn nguyên tố cùng ϕ(n), có nghĩa: 1< e <ϕ(n) và (e, ϕ(n) = 1)

iv) Tìm số d thoả mãn: e.d (mod ϕ(n)) = 1, 1<d<ϕ(n) bằng giải thuật Euclidean mở rộng

Bộ ba (n; e; d) là chìa khoá của hệ mã, với khoá công khai của B là (n; e) và khoá riêng của B là (n; d)

b) Lập mã

i) Sử dụng khoá công khai của B là (n, e) ii) Biểu diễn thông điệp dưới dạng số, giả sử là số nguyên m sao cho: m ∈ [0, n-1]

iii) Tính C = me mod n iv) Gửi bản mã C cho B

c) Giải mã

i) Dùng khoá riêng d của B tính m = Cd mod n ii) Khôi phục thông điệp từ hàm ngược của hàm số hoá để có P

Trang 8

Đỗ Thanh Bình 8 Tóm tắt luận văn thạc sĩ

2.2.2 Đặc trưng của hệ mật RSA

Hệ mật RSA có các đặc trưng sau:

 Không cần phải thiết lập một kênh bảo vệ phức tạp để

truyền khoá như trong hệ mã bí mật

 Cặp khoá công khai được tạo ra theo một phương pháp đặc

biệt có quan hệ với nhau và được chọn trong nhiều khoá có

thể (trong đó nếu khoá này dùng để mã hoá thì khoá kia

dùng để giải mã)

 Ứng với một cặp p, q có thể chọn được nhiều bộ khoá công

khai (n; e; d)

 Mọi người trong hệ thống nếu nhận được bản mật C thì

cũng không thể biết được bản rõ P Với việc chỉ biết khoá

mã hoá ke và căn cứ vào các thông tin về thuật toán thì

không thể tìm ra khó giải mã kd trong thời gian chấp nhận

được (kể cả dùng hệ thống hiện đại nhất để tính toán)

Quá trình gửi và nhận thông điệp (bản tin) được thực hiện như sau:

i) Mỗi thành viên sinh một cặp khoá (n; e) và (n; d)

ii) Công khai khoá (n; e); giữ bí mật hoá (n; d)

iii) A gửi thông điệp cho B thì A mã hoá thông điệp bằng khoá

công khai (n; eb) của B

iv) B giải mã thông điệp bằng khoá riêng (n; db) Không một

người nào khác có thể giải mã thông điệp ngoài B, vì chỉ có

B mới biết khoá riêng của mình

2.3 Độ an toàn của hệ mật RSA

Độ an toàn của hệ mật RSA thể hiện qua hai yếu tố:

Mã hoá Giải mã

C = e b

P mod n Bên gửi A Bên nhận B

N guồn cặp khoá của B

e b d b

Khoá bí mật

P = C d bmod n Khoá công khai

Hình 2.1: Quá trình mã hóa khóa công khai RSA

Thuật toán sinh khoá:

 Mỗi cá thể A chọn một khoá k = (k’; k”) ∈ K, Sigk’ là thuật toán ký với khoá k

 Thuật toán Verk” tương ứng là một ánh xạ từ MhxMs đến tập hợp {True, False} sao cho:

 Với khoá k = (k’; k”), trong đó khoá công khai của A là k”; khoá riêng của A là k’

Thuật toán sinh chữ ký:

Cá thể A thực hiện:

i) Chọn một khoá k = (k’; k”) ∈ K ii) Tính m = h(P) và s = Sigk’(m) iii) Chữ ký của A cho thông điệp P là s, P và s được gửi đến B

Thuật toán chứng thực chữ ký:

Xác thực đúng khoá công khai của A là k”:

i) Tính m = h(P) và u = Verk”(m; s) ii) Chấp nhận chữ ký của A nếu và chỉ nếu u = True Các thuộc tính sau là yêu cầu cần thiết cho các thuật toán ký và chứng thực:

 Với mỗi khoá k = (k’;k”) ∈ K, Sigk’ được tính toán hiệu quả

 Verk” cần tính toán một cách hiệu quả

cho Verk”(m; s) = True, ở đây m = h(P)

b) Lược đồ chữ ký tự khôi phục thông điệp gốc

Có đặc điểm là thông điệp được ký có thể được phục hồi từ ngay chữ ký đó và thường được dùng để ký các thông điệp nhỏ

Định nghĩa: Lược đồ chữ ký số không đòi hỏi phải có thông điệp

gốc làm đầu vào để xác minh chữ ký được gọi là lược đồ chữ ký tự khôi phục thông điệp gốc, trong trường hợp này thông điệp gốc sẽ được phục hồi chính từ chữ ký của nó

Thuật toán sinh khoá:

True , nếu y = sigk’(x) Verk’’(x ;y) =

False, nếu y ≠ sigk’(x)

Trang 9

Trong đó:

 Ks gọi là mầm khoá hay còn gọi là khoá khởi thảo được

chọn theo phương pháp ngẫu nhiên

 Hai thuật toán F, G dùng để tính toán các khoá A dùng hai

thuật toán F và G cùng với mầm khoá ks để tạo ra hai khoá:

khoá giải mã kd là khoá riêng được giữ lại sử dụng riêng cho

mình và khoá ke công khai thông báo cho mọi người

 P là thông điệp gửi đi, S là thông điệp sau khi ký

 E k d: Thuật toán mã hoá với khoá kd

 D ke: Thuật toán giải mã với khoá ke

3.4.2 Định nghĩa lược đồ chữ ký số

Một lược đồ chữ ký số là một bộ (M, Ms, K, S, V) gồm:

 M là tập hợp hữu hạn các văn bản có thể

 Ms là tập hợp hữu hạn các chữ ký có thể

 K là tập hợp hữu hạn các khoá

 S là tập hợp các thuật toán ký

 V là tập hợp các thuật toán chứng thực chữ ký

Mỗi k ∈ K là một cặp (k’; k”) trong đó k’ là khoá bí mật dùng để ký,

k” là khoá công khai dùng để kiểm thử chữ ký

Với mỗi k = (k’; k”) ∈ K Có một thuật toán ký Sigk’: M → Ms (Sigk’

∈ S) và một thuật toán kiểm thử Verk”: M x Ms → {True, False}(Verk” ∈

V) Thoả mãn điều kiện sau đây đối với mọi x∈M, y∈Ms:

3.4.3 Phân loại lược đồ chữ ký số

a) Lược đồ chữ ký kèm theo bản rõ

Loại lược đồ này dùng phổ biến trong thực tế Chúng dựa vào các

hàm băm mật mã hơn là các hàm thừa tuỳ biến và ít bị các tấn công giả

mạo hơn

Định nghĩa: Lược đồ chữ ký số mà yêu cầu phải có thông điệp gốc

là đầu vào cho thuật toán chứng thực chữ ký được gọi là lược đồ chữ ký

số kèm theo bản rõ

True , nếu y = sigk’(x) Verk’’(x ;y) =

False, nếu y ≠ sigk’(x)

 Tính mật của hệ RSA, chủ yếu dựa vào việc bảo vệ khoá riêng d và giữ bí mật các số nguyên tố p và q

 Tính an toàn của hệ RSA dựa vào độ khó của bài toán RSA

và độ phức tạp của bài toán phân tích một số thành các thừa

số nguyên tố Với người thám mã có thể tấn công vào hệ mã RSA theo các hình thức:

 Vét cạn: không gian khoá của RSA là rất lớn vì vậy tấn công theo hướng này là không thể thực hiện được

 Dựa trên cơ sở toán học để tìm cách phân tích modulus n thành các thừa số nguyên tố

2.4 Quản lý khoá của hệ mật mã RSA 2.4.1 Phân phối khoá công khai a) Phương pháp khai báo công khai

Bất kỳ thành viên nào cũng có thể thông báo khoá công khai của mình để cho các thành viên khác được biết

Giải pháp này có nhược điểm là bất kỳ ai cũng có thể giả mạo một khoá công khai

b) Phương pháp sử dụng thư mục công khai

Việc duy trì và tổ chức một thư mục công khai thuộc về một tổ chức được tin cậy nào đó Một lược đồ như vậy bao gồm các yếu tố sau:

 Tổ chức có nhiệm vụ duy trì thư mục, mỗi thành viên có một entry (định danh, khoá) trong thư mục

 Mỗi thành viên đăng ký một khoá công khai với tổ chức quản lý thư mục

 Mỗi thành viên có thể thay thế một khoá công khai bất cứ lúc nào khi cảm thấy khoá riêng bị lộ

 Cơ quan quản lý công bố toàn bộ thư mục và có nhiệm vụ cập nhật thư mục một cách định kỳ

 Mọi thành viên đều có thể truy nhập vào thư mục bất cứ lúc nào, vì thế việc truyền thông xác thực an toàn (từ cơ quan quản lý đến các thành viên) phải mang tính bắt buộc

c) Trung tâm quản lý khoá công khai

Trang 10

Đỗ Thanh Bình 10 Tóm tắt luận văn thạc sĩ

Một cơ quan trung tâm duy trì một thư mục khoá công khai Mỗi

thành viên đều biết khoá công khai của trung tâm quản lý khoá công

khai, nhưng chỉ có trung tâm này biết khoá riêng cùng cặp

Quá trình trao đổi thông tin bí mật diễn ra như sau:

i) A gửi một thông điệp có gán nhãn thời gian cho cơ quan

quản lý khoá công khai, yêu cầu khoá công khai hiện thời

của B

ii) Cơ quan quản lý trả lời bằng một thông điệp Thông điệp

này được mã hoá bằng khoá riêng dauth của cơ quan quản lý

bao gồm:

các thông điệp gửi cho B)

2 Yêu cầu gốc (request) – A so khớp yêu cầu này với yêu

cầu A đã gửi đi trước đó, nhờ đó A có thể biết yêu cầu gốc có bị sửa đổi trước khi cơ quan quản lý nhận được hay không

3 N hãn thời gian gốc – cho phép A xác định được rằng:

đây không phải là một thông điệp cũ mà là thông điệp

có chứa khoá công khai hiện thời của B

iii) A lưu giữ khoá công khai của B và sử dụng nó để mã hoá

một thông điệp gửi cho B, thông điệp này chứa tên của A

(IDA) và một giá trị (được gọi là nonce) N 1 để nhận dạng

giao dịch này

iv) B lấy khoá công khai của A từ cơ quan quản lý khoá (tương

tự như A đã lấy khoá công khai của B)

N hư thế là A và B đã chuyển giao khoá công khai một cách an toàn,

và họ có thể gửi và nhận tin của nhau

d) Phương pháp sử dụng chứng chỉ khoá công khai

Các thành viên sử dụng chứng chỉ để trao đổi khoá mà không cần

liên lạc với cơ quan quản lý khoá công khai Mỗi chứng chỉ chứa một

khoá công khai và các thông tin khác N ó được một cơ quan quản lý

chứng chỉ tạo ra và phát hành cho các thành viên Mỗi thành viên thông

báo khoá công khai của mình cho các thành viên khác thông qua chứng

chỉ

Đặc trưng quan trọng của chứng chỉ là: “Các chứng chỉ có thể được

phát hành mà không cần phải bảo vệ thông qua các dịch vụ an toàn

thay đổi (dù chỉ là 1 bit) thì kết quả của dấu vết thông điệp cũng sẽ thay đổi

N gười ta thường sử dụng sự hỗ trợ của các hàm băm mật mã trong quá trình số hoá của các lược đồ ký Hàm băm mật mã phải có tính chất sau:

 Là hàm một chiều

 Không tìm được xung đột: tức là rất khó để tìm hai văn bản

P và P’ có cùng mã băm

Một dấu vết thông điệp phải có hai thuộc tính thiết yếu sau:

 N ếu một bit hoặc một vài bit của dữ liệu bị thay đổi thì dấu vết thông điệp cũng bị thay đổi

 Một ai đó có muốn giả mạo thì cũng không thể đưa ra một thông điệp giả cùng với một dấu vết thông điệp tương ứng giống như bản gốc trong thời gian chấp nhận được

3.4 Lược đồ chữ ký số dùng mật mã khoá công khai 3.4.1 Hoạt động của chữ ký số

N ếu A gửi cho B một bản tin được mã hoá bằng khoá công khai của

B thì B có thể giải mã bằng khoá riêng của mình để đọc bản tin đó mà những người khác không làm được N gược lại, B có thể “ký” vào một bản tin bằng khoá riêng (chứng thực) và gửi cho A, sau đó A có thể kiểm tra tính xác thực của chữ ký bằng khoá công khai của B

k d

G

F

k e

k s

P

Bí mật của A

Khoá công khai

S=

d

k

E (P) P=D k e(s)

Hình 3.1: Sơ đồ nguyên lý hoạt động của chữ ký số dùng mật

mã khoá công khai

Ngày đăng: 13/05/2016, 20:43

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w