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

Tìm hiểu Chữkí nhóm và ứng dụng trong giao dịch điện tử

64 791 4
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

Định dạng
Số trang 64
Dung lượng 671 KB

Nội dung

bảo mật thông tin, xác thực thông tin và toàn vẹn thông tin

Trang 1

LỜI NÓI ĐẦU

Trong xu hướng phát triển của thế giới và Việt Nam hiện nay, mạng Internet đang đem đến sự bùng nổ thông tin một cách mạnh mẽ Nó được sử dụng để truyền thư điện

tử, truy cập các website, kết nối các công sở, liên lạc với các khách hàng và sử dụng các dịch vụ ngân hàng, các giao dịch điện tử…

Tiềm năng của mạng Internet là rất lớn Như ta đã biết các giao tiếp, trao đổi thông tin qua Internet đều sử dụng giao thức TCP/IP Các gói tin truyền từ điểm nguồn tới điểm đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy độ an toàn thấp, nó rất dễ bị xâm phạm, theo dõi và giả mạo trên đường truyền Vấn đề không an toàn cho thông tin trên đường truyền khiến nhiều người đắn đo trong việc sử dụng mạng Internet cho những ứng dụng về tài chính, giao dịch ngân hàng, hoạt động mua bán và khi truyền các thông tin kinh tế, chính trị vv…

Những biện pháp đảm bảo an toàn thông tin đưa ra đều nhằm đáp ứng 3 yêu cầu:

bảo mật thông tin, xác thực thông tin và toàn vẹn thông tin trên đường truyền Các

hệ mã hóa thông tin bảo đảm tính bí mật nội dung thông tin, các sơ đồ chữ ký số bảo đảm xác thực thông tin trên đường truyền

Tuy nhiên, nhu cầu của con người không chỉ dừng lại ở việc giao dịch giữa các cá nhân với nhau, mà còn giao dịch thông qua mạng giữa các nhóm người, các công ty, các tổ chức khác nhau trên thế giới Dựa trên những yêu cầu thực tế đó các nhà khoa học đã nghiên cứu và đề xuất ra một kiểu chữ ký mới, đó chính là chữ ký nhóm

Trong đồ án này tôi đã tìm hiểu và nghiên cứu về chữ ký nhóm Đây là một loại chữ ký điện tử cho phép một nhóm người tạo các chữ ký đại diện cho nhóm, và chỉ những thành viên trong nhóm mới có thể ký vào các thông điệp của nhóm Người quản trị của nhóm có trách nhiệm thành lập nhóm và trong trường hợp cần thiết phải biết được ai là người ký vào thông điệp

Trong quá trình làm đồ án tốt nghiệp, em đã nhận được sự hướng dẫn tận tình của TS.Lê Phê Đô Em xin chân thành cảm ơn! Đồng thời, em xin cảm ơn các thày cô giáo

bộ môn Tin học – trường Đại học Dân lập Hải Phòng đã trang bị cho em những kiến thức cơ bản trong quá trình học tập tại trường

Trang 2

Chương I

CÁC KHÁI NIỆM CƠ BẢN

1.1 Cơ sở toán học

1.1.1 Ước số - Bội số

Định nghĩa : Ước số của a và b là c nếu c|a và c|b

Ước số chung lớn nhất : Là số lớn nhất mà a và b chia hết

Ký hiệu : c = gcd (a,b) ; (great common divisor)

Bội số chung nhỏ nhất : d là BCNN của a và b nếu ∀ c mà a|c , b|c → d|c

Ký hiệu : d = lcm (a,b) ; (least common multiple)

Tính chất: lcm (a,b) = a.b/gcd(a,b)

1.1.2 Số nguyên tố

Định nghĩa : Số nguyên tố là số chỉ chia hết cho 1 và chính nó, ngoài ra không còn

số nào nó có thể chia hết nữa Hệ mật thường sử dụng số nguyên tố lớn cỡ 512bits và thậm chí còn lớn hơn nữa

Hai số m và n gọi là hai số nguyên tố cùng nhau khi ước số chung lớn nhất của chúng bằng 1 Chúng ta có thể viết như sau:

Trang 3

™ Tập Zn với phép cộng modulo tạo nên một nhóm cấp n Tập Zn với phép toán nhân theo modulo n không phải là một nhóm vì không phải mọi phần tử của nhóm đều có nghịch đảo Tuy nhiên tập Z*

n sẽ là một nhóm cấp φ(n) với phép toán nhân theo modulo n và có phần tử đơn vị là 1

Nếu G là một nhóm và a ∈ G thì tập tất cả các lũy thừa của a sẽ tạo nên một nhóm con cyclic của G Nhóm này được gọi là nhóm con sinh bởi a và được kí hiệu là a

1.1.7 Các thuật toán trong Z

Cho a và b là các số nguyên không âm và nhỏ hơn hoặc bằng n Cần chú ý rằng số các bit trong biểu diễn nhị phân của n là [lgn] + 1 và số này xấp xỉ bằng lg n Số các phép toán bit đối với bốn phép toán cơ bản trên các số là cộng , trừ, nhân và chia sử dụng các thuật toán kinh điển được tóm lược trên bảng sau Các kỹ thuật tinh tế hơn đối với các phép toán nhân và chia sẽ có độ phức tạp nhỏ hơn

0((lga)*(lgb)) = 0((lgn)2)

0((lga)*(lgb)) = 0((lgn)2)

1.1.8 Thuật toán Euclide : Tính UCLN của 2 số nguyên

VÀO : Hai số nguyên không âm a và b với a > b

RA : UCLN của a và b

(1) while b ≠ 0 do

R ← a mod b, a ← b, b ← r (2) Return (a)

Trang 4

1.1.9 Thuật toán Euclide mở rộng

VÀO : Hai số nguyên không âm a và b với a > b

RA : d = UCLN (a, b) và các số nguyên x và y thỏa mãn ax + by = d

p 1 2 3

3 2

1 là thừa số nguyên tố của n thì

→ φ (n) = n⎜⎜⎝⎛ − ⎟⎟⎠⎞⎜⎜⎝⎛ − ⎟⎟⎠⎞ ⎜⎜⎝⎛ − ⎟⎟⎠⎞

k

p p

p

11

11

11

2 1

Định nghĩa : Cho a ∈ Zn Một số nguyên x ∈ Zn gọi là nghịch đảo của a theo mod n

nếu a.x ≡ 1mod n

Nếu có số x như vậy thì nó là duy nhất và ta nói a là khả nghịch Ký hiệu là a-1 Có thể suy ra rằng a khả nghịch theo mod n khi và chỉ khi gcd (a,n)=1

Trang 5

1.1.13 Nhóm nhân Z*n

Định nghĩa : Nhóm nhân của Zn ký hiệu là Z*

n là tập hợp các phần tử sao cho gcd (a,n)=1 Đặc biệt với n là số nguyên tố thì Z*n={ a ∈ Zn | 1≤a≤n-1}

1.1.15 Phần dư China CRT ( Chinese Remainder Theorem)

Nếu các số nguyên n1, n2, …, nk là nguyên tố cùng nhau từng thì hệ các phương trình đồng dư:

i mod ni Các tính toán này có thể được thực hiện bởi 0((lgn )2)các phép toán trên bit

Lý thuyết thuật toán và các hàm số tính được ra đời từ những năm 30 của thế kỉ 20

đã đặt nền móng cho việc nghiên cứu các vấn đề “ tính được ”, “ giải được ” trong toán học Tuy nhiên từ các “ tính được ” đến việc tính toán thực tế là một khoảng cách rất lớn Có rất nhiều vấn đề chứng minh là có thể tính được nhưng không tính được trong thực tế dù có sự trợ giúp của máy tính Vào những năm 1960 lý thuyết độ phức tạp

Trang 6

tính toán được hình thành và phát triển nhanh chóng, cung cấp nhiều hiểu biết sâu sắc

về bản chất phức tạp của các thuật toán và các bài toán, cả những bài toán thuần túy lý thuyết đến những bài toán thường gặp trong thực tế

Độ phức tạp tính toán của một tiến trình tính toán là số ô nhớ được dùng hay số các phép toán sơ cấp được thực hiện trong tiến trình tính toán đó Dữ liệu đầu vào đối với một thuật toán thường được biểu diễn qua các từ trong một bảng kí tự nào đó Độ dài của một từ là số kí tự trong từ đó

1.1.17 Các thuật toán trong Zn

Cho n là một số nguyên dương Các phần tử của Zn sẽ được biểu thị bởi các số nguyên Q21 = {0, 1, 2, … n-1}

Ta thấy rằng, nếu a, b ∈ Zn thì

(a + b) mod n =

Bởi vậy phép cộng ( và trừ ) theo modulo có thể thực hiện đựợc mà không cần phép chia Phép nhân modulo của a và b có thể được thực hiện bằng cách nhân các số nguyên thông thường rồi lấy phần dư của kết quả sau khi chia cho n Các phần tử nghịch đảo trong Zn có thể được tính bằng cách dùng thuật toán Euclide mở rộng được

mô tả dưới đây:

1.1.18 Thuật toán ( Tính các nghịch đảo trong Zn )

VÀO : a ∈ Zn

RA : a-1 mod n (nếu tồn tại)

1 Dùng thuật toán Euclide mở rộng để tìm các số nguyên x và y sao cho ax + ny = d trong đó d = (a, n)

2 Nếu d >1 thì a-1 mod n không tồn tại Ngược lại return (x) Phép lũy thừa theo modulo có thể được thực hiện có hiệu quả bằng thuật toán nhân

và bình phương có lặp Đây là một thuật toán rất quan trọng trong nhiều thủ tục mật

mã Cho biểu diễn nhị phân của a là :

Trang 7

a2 0 0 2 1 1 2Thuật toán nhân và bình phương có lặp để lấy lũy thừa trong Z n

VÀO : a ∈ Zn và số nguyên k, (0 ≤ k < n) có biểu diễn nhị phân :

k = t i

i i

Lũy thừa modulo 0((lg n) 3)

Độ phức tạp bit của các phép toán cơ bản trong Zn

Trang 8

1.1.19 Hàm một phía - Hàm một phía có cửa sập

Một hàm một phía là hàm mà dễ dàng tính toán ra quan hệ một chiều nhưng rất khó

để tính ngược lại

Ví dụ : Biết giả thiết x thì có thể dễ dàng tính ra f(x), nhưng nếu biết f(x) thì rất khó tính ra được x Trong trường hợp này khó có nghĩa là để tính ra được kết quả thì phải mất rất nhiều thời gian để tính toán

F(x) được gọi là hàm một phía có cửa sập nếu tính xuôi y = f(x) thì dễ nhưng tính ngược x =f− 1(y) thì khó tuy nhiên nếu có “ cửa sập ” thì vấn đề tính ngược trở nên dễ dàng Cửa sập ở đây là một điều kiện nào đó giúp chúng ta dễ dàng tính ngược

1.2 Tìm hiểu về mật mã

Mật mã học là khoa học nghiên cứu sự an toàn, toàn vẹn của dữ liệu, xác nhận sự tồn tại và xác nhận tính nguyên bản của thông tin

Trang 9

Sơ đồ khối một hệ truyền tin mật

Định nghĩa : Một hệ mật mã là một bộ năm (P, C, K, E, D) thoả mãn các điều kiện

k: P → C

và một hàm giải mã d

k ∈ D d

k: C → P sao cho d

k(ek(x)) = x với mọi x ∈P Trong thực tế, P và C thường là bảng chữ cái (hoặc tập các dãy chữ cái có độ dài cố định)

Trang 10

™ Các đặc điểm của hệ mã cổ điển

1 Các phương pháp mã hóa cổ điển đòi hỏi người mã hóa và người giải mã phải

có cùng chung một khóa

2 Khóa phải được giữ bí mật tuyệt đối, khóa phải được gửi đi trên kênh an toàn

Vì dễ dàng xác định một khóa nếu biết khóa kia

Nhược điểm chính của phương pháp này là khóa được truyền trên kênh an toàn nên chi phí tốn kém và không kịp thời Ưu điểm là tốc độ mã hóa và giải mã rất nhanh Các hệ mật mã cổ điển cũng dùng chung một khoá cho việc lập mã và giải mã, các bản rõ và bản mã thường dùng cơ sở là bảng chữ cái trong ngôn ngữ tự nhiên Và trong phần này ta sẽ dùng bảng chữ cái tiếng Anh làm ví dụ

k(y) = (y – k) mod 26 (x, y ∈ Z

Trang 11

Bản mã sẽ là:

“ocfkejejwzgp”

Nhận được bản mã đó, dùng d

2 để nhận được bản rõ

Cách đây 2000 năm mã dịch chuyển đã được Julius Ceasar sử dụng, với khoá k=3

mã địch chuyển được gọi là mã Ceasar

Tập khoá phụ thuộc vào Z

m với m là số khoá có thể

Trong tiếng Anh tập khoá chỉ có 26 khoá có thể, việc thám mã có thể được thực hiện bằng cách duyệt tuần tự 26 khoá đó, vì vậy độ an toàn của mã dịch chuyển rất thấp

Trang 12

dàng thám được các bản mã loại này, và do đó mã thay thế cũng không thể được xem

“oggffuta”

Thuật toán giải mã trong trường hợp này có dạng:

d

k(y) = 21(y − 6) mod 26

Với mã Affine, số các khoá có thể có bằng (số các số ≤ 26 và nguyên tố với 26) ×

26, tức là 12 × 26 = 312 Việc thử tất cả các khoá để thám mã trong trường hợp này tuy khá mất thì giờ nếu tính bằng tay, nhưng không khó khăn gì nếu dùng máy tính

Do vậy, mã Affine cũng không phải là mã an toàn

Trang 13

Ví dụ: Giả sử m = 6 và khoá k là từ CIPHER - tức k = (2, 8, 15, 7, 4, 17)

k tương ứng, ta lại thu được bản rõ

Chú ý: Mã Vingenere với m = 1 sẽ trở thành mã Dịch chuyển

Tập hợp các khoá trong mã Vingenere mới m ≥ 1 có tất cả là 26m khoá có thể có Với m = 6, số khoá đó là 308.915.776, duyệt toàn bộ chừng ấy khoá để thám mã bằng tính tay thì khó, nhưng với máy tính thì vẫn là điều dễ dàng

1.2.1.5 Mã Hill

Định nghĩa Mã Hill: (P, C, K, E, D)

Cho m là số nguyên dương

P = C = (Z 26 )m

Trang 14

1 = 11.x

1 + 3.x

2 y

2 = 8.x

1 + 7.x2

Giả sử ta có bản rõ: “tudo”, tách thành từng bộ 2 ký tự, và viết dưới dạng số ta

được 19 20 | 03 14 , lập bản mã theo quy tắc trên, ta được bản mã dưới dạng số là: 09

b a

b a

a bc ad c

bc ad

b bc

ad d

Một chú ý là để phép chia luôn thực hiện được trên tập Z

26 thì nhất thiết định thức của k: det(k) = (ad – bc) phải có phần tử nghịch đảo trên Z

26, nghĩa là (ad – bc) phải là một trong các giá trị : 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, hoặc 25 Đây cũng là điều kiện để ma trận k tồn tại ma trận nghịch đảo

Trang 15

Khi đó: k-1.k = I là ma trận đơn vị (đường chéo chính bằng 1)

b a

a bc ad c

bc ad

b bc

b a

18 7

Ví dụ: Giả sử m = 4, và khoá k được cho bởi phép hoán vị π

Khi đó phép hoán vị nghịch đảo π-1 là:

Trang 16

Thì dễ thấy rằng mã Hill với khoá K

π trùng với mã hoán vị với khoá π

Với m cho trước, số các khoá có thể có của mã hoán vị là m!

Dễ nhận thấy với m = 26 ta có số khóa 26! (mã Thay thế)

1.2.2 Mã khóa công khai

Trong mô hình mật mã cổ điển trước đây mà hiện nay đang được nghiên cứu, A(người gửi) và B (người nhận) chọn khóa bí mật K Sau đó dùng K để tạo luật mã hóa ek và luật giải mã dk Trong hệ mật này dk hoặc giống ek hoặc khác, nếu để lộ ek thì làm cho hệ thống mất an toàn

Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về khóa K giữa

A và B qua một kênh an toàn trước khi gửi một bản mã bất kỳ Trên thực tế điều này rất khó đảm bảo Chẳng hạn khi A và B ở cách xa nhau và họ chỉ có thể liên lạc với nhau bằng E-mail Trong tình huống đó A và B không thể tạo một kênh bảo mật với giá phải chăng

Trang 17

Ý tưởng xây dựng một hệ mật khóa công khai là tìm một hệ mật không có khả năng tính tóan để xác định dk khi biết ek Nếu thực hiện được như vậy thì quy tắc mã ek

có thể được công khai bằng cách công bố nó trong một danh bạ (bởi vậy nên có thuật

ngữ hệ mật khóa công khai)

Ưu điểm của hệ mật khóa công khai là ở chỗ A (hoặc bất kỳ A) có thể gửi một bản tin đã mã hóa cho B (mà không cần thông tin trước về khóa mật) bằng cách dùng mật

mã công khai ek Người nhận A sẽ là người duy nhất có thể giải mã được bản mã này bằng việc sử dụng luật giải bí mật dk của mình Có thể hình dung hệ mật này tương tự như sau: A đặt một vật vào một hộp kim loại và rồi khóa nó lại bằng một khóa số do B

để lại Chỉ có B là người duy nhất có thể mở được hộp vì chỉ có anh ta mới biết tổ hợp

mã của khóa số của mình

Ý tưởng về một hệ mật khóa công khai được Diffie và Hellman đưa ra vào năm

1976 Còn việc hiện thực hóa nó thì do Riyesrt, Shamir và Ableman đưa ra lần đầu vào năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA và một số hệ mật khác Độ bảo mật của

hệ RSA dựa trên độ khó của việc phân tích ra thừa số nguyên lớn

™ Nơi ứng dụng

Sử dụng chủ yếu trên các mạng công khai như Internet, khi mà việc trao chuyển khóa bí mật tương đối khó khăn Đặc trưng nổi bật của hệ mã hóa khóa công khai là cả khóa công khai và bản mã đều có thể gửi đi trên một kênh thông tin không an toàn

1.2.2.1 Mã RSA

Hệ mật này sử dụng tính toán trong Zn, trong đó n là tích của 2 số nguyên tố phân biệt p và q Ta thấy rằng φ(n) = (p – 1).(q – 1)

Định nghĩa

Cho n = p.q trong đó p và q là các số nguyên tố Đặt P = C = Zn và định nghĩa:

K = {(n, p, q, a, b): n = p.q, p, q là các số nguyên tố, a.b ≡ 1 mod φ(n)}

Trang 18

a.b ≡ 1 mod φ(n) nên chọn a = 7

Giả sử G muốn gửi bản rõ x = 3 tới N, G phải tính:

y = eK(x)= xb mod n = 33 mod 10 = 7

Khi N nhận được bản mã y = 7, anh ta sử dụng số mũ a mật để tính:

x = dK(y) = ya mod n = 77 mod 10 = 3

Đó chính là bản rõ mà G đã mã hoá

Độ mật của hệ RSA được dựa trên giả thiết là hàm mã eK(x) = xb mod n là hàm một chiều Bởi vậy thám mã sẽ gặp khó khăn về mặt tính toán để giải mã một bản

mã Cửa sập cho phép N chính là thông tin về phép phân tích thừa số n (n = p.q) Vì

N biết phép phân tích này nên anh ta có thể tính

φ(n) = (p – 1).(q – 1) và rồi tính số mũ giải mã a bằng cách sử dụng thuật toán Eculide mở rộng

1.2.2.2 Mã Elgamal

Mô tả hệ mã Elgamal

Hệ mật mã ElGamal được T.ElGamal đề xuất năm 1985, dựa vào độ phức tạp của bài toán tính lôgarit rời rạc, và sau đó đã nhanh chóng được sử dụng rộng rãi không những trong vấn đề bảo mật truyền tin mà còn trong các vấn đề xác nhận và chữ ký

điện tử

Bài toán logarithm rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu

và được xem là bài toán khó nếu p được chọn cẩn thận Cụ thể là không có một thuật toán thời gian đa thức nào cho bài toán logarithm rời rạc Để gây khó khăn cho các phương pháp tấn công đã biết, p phải có ít nhất 150 chữ số và (p – 1) phải có ít nhất một thừa số nguyên tố lớn

Hệ mật Elgamal là một hệ mật không tất định vì bản mã phụ thuộc vào cả bản rõ x lẫn giá trị ngẫu nhiên k do G chọn Bởi vậy sẽ có nhiều bản mã được mã từ cùng một bản rõ

Bài toán logarithm rời rạc trong Zp:

Đặc trưng của bài toán: I = (p, α, β) trong đó p là số nguyên tố, α ∈ Z p là phần tử nguyên thuỷ (hay phần tử sinh), β ∈ *

Trang 19

Định nghĩa mã hoá công khai Elgamal trong *

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

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

Z là phần tử nguyên thuỷ nên α = 3

Chọn a sao cho 0 ≤ a ≤ p – 2 nên a = 2

Khi đó : β = αa mod p = 32 mod 7 = 2

Trang 20

Chương II

CHỮ KÍ ĐIỆN TỬ

2.1 Tìm hiểu về chữ ký điện tử ( electronic signature )

2.1.1 Khái quát về chữ ký điện tử ?

Về căn bản, khái niệm chữ ký điện tử (electronic signature) cũng giống như chữ

viết tay Bạn dùng nó để xác nhận lời hứa hay cam kết của mình và sau đó không thể rút lại được Chữ ký điện tử không đòi hỏi phải sử dụng giấy mực, nó gắn đặc điểm nhận dạng của người ký vào một bản cam kết nào đó, nó là đoạn dữ liệu ngắn đính kèm với văn bản gốc để chứng thực tác giả của văn bản và giúp người nhận kiểm tra tính toàn vẹn của nội dung văn bản gốc

Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký điện tử Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộc sống một cách rộng rãi Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử

Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online

Chữ ký điện tử được tạo ra bằng cách áp dụng thuật toán Băm một chiều trên văn bản gốc để tạo ra bản phân tích văn bản (message digest) hay còn gọi là fingerprint, sau đó mã hóa bằng private key tạo ra chữ ký số đính kèm với văn bản gốc để gửi đi Khi nhận, văn bản được tách làm 2 phần, phần văn bản gốc được tính lại fingerprint để

so sánh với fingerprint cũ cũng được phục hồi từ việc giải mã chữ ký số

Trang 21

So sánh chữ ký thông thường và chữ ký diện tử Chữ ký thông thường Chữ ký điện tử

Vấn đề ký một tài liệu

Chữ ký chỉ là một phần vật lý của tài

liệu

Vấn đề ký một tài liệu Chữ ký điện tử không gắn kiểu vật lý vào bức thông điệp nên thuật toán được dùng phải “không nhìn thấy” theo một cách nào đó trên bức thông điệp

Vấn đề về kiểm tra

Chữ ký được kiểm tra bằng cách so

sánh nó với chữ ký xác thực khác Tuy

nhiên, đây không phải là một phương

pháp an toàn vì nó dễ bị giả mạo

Vấn đề về kiểm tra

Chữ ký điện tử có thể kiểm tra nhờ dùng một thuật toán “kiểm tra công khai” Như vậy, bất kì ai cũng có thể kiểm tra được chữ ký điện tử Việc dùng chữ ký điện tử an toàn có thể chặn được giả mạo

Bản copy thông điệp được ký bằng

chữ ký thông thường lại có thể khác với

bản gốc

Bản copy thông điệp được ký bằng chữ ký điện tử thì đồng nhất với bản gốc, điều này có nghĩa là cần phải ngăn chặn một bức thông điệp ký số không bị dùng lại

2.1.2 Định nghĩa về sơ đồ ký điện tử

Một sơ đồ chữ ký S là một bộ năm

Trong đó: P là một tập hữu hạn các thông báo có thể có,

A là một tập hữu hạn các chữ ký có thể có,

K=(K’,K''), K' là khoá bí mật dành cho việc ký, còn K'' là khoá công khai dành cho việc kiểm thử chữ ký

Với mỗi K =(K’,K''), trong S có một thuật toán ký sig k’ : P → A , và trong V có một thuật toán kiểm thử ver k” : PxA → {đúng,sai} thoả mãn điều kiện sau đây đối với

mọi thông báo x ∈ P và mọi chữ ký y ∈ A :

Trang 22

(khi biết K’) phải tính được một cách dễ dàng (trong thời gian đa thức), tuy nhiên hàm

y = sig k’ (x ) là khó tính được nếu không biết K’ - điều đó bảo đảm bí mật cho việc ký, cũng tức là bảo đảm chống giả mạo chữ ký

Các chữ ký số phải thỏa mãn điều kiện cơ bản sau :

™ Không thể giả mạo Nếu P ký thông báo M bằng chữ ký F(P,M) thì không

¾ Không thể thay đổi : sau khi được phát M không thể thay đổi bởi F.R hoặc bởi một kẻ thu trộm nào

¾ Không thể sử dụng lại : một thông báo trước đó được đưa ra sẽ ngay lập tức bị R phát hiện

n thoả mãn a.b ≡ 1(modφ (n))

Các hàm sig k’ và ver k” được xác định như sau:

sig k’ (x) = x a modn ,

ver k” (x,y ) = đúng ↔ x ≡ y b (modn)

Dễ chứng minh được rằng sơ đồ được định nghĩa như vậy là hợp thức, tức là với mọi x ∈ P và mọi chữ ký y ∈ A:

ver k” (x,y ) = đúng ↔ y = sig k’ (x)

Chú ý rằng tuy hai vấn đề xác nhận và bảo mật theo sơ đồ RSA là có bề ngoài giống nhau, nhưng nội dung của chúng là hoàn toàn khác nhau: Khi A gửi thông báo x cho B, để B có căn cứ xác nhận đó đúng thực là thông báo do A gửi, A phải gửi kèm

theo chữ ký sig k’ (x), tức là A gửi cho B (x, sig k’ (x)), trong các thông tin gửi đi đó, thông báo x hoàn toàn không được giữ bí mật Cũng tương tự như vậy, nếu dùng sơ đồ

mật mã RSA, khi một chủ thể A nhận được một bản mật mã e k’(x) từ B thì A chỉ biết rằng thông báo x được bảo mật, chứ không có gì để xác nhận x là của B

Nếu ta muốn hệ truyền tin của ta vừa có tính bảo mật vừa có tính xác nhận, thì ta phải sử dụng đồng thời hai hệ mật mã và xác nhận (bằng chữ ký) Giả sử trên mạng

Trang 23

truyền tin công cộng, ta có cả hai hệ mật mã khoá công khai S 1 và hệ xác nhận bằng

chữ ký S 2 Giả sử B có bộ khoá mật mã K = (K', K'') với K' = (n, e) và

K'' = d trong hệ S 1, và A có bộ khoá chữ ký Ks = (K’s , K''s) với

K’s = a và K''s = (n,b) trong hệ S 2 A có thể gửi đến B một thông báo vừa bảo mật vừa

có chữ ký để xác nhận như sau: A ký trên thông báo x trước, rồi thay cho việc gửi đến

B văn bản cùng chữ ký (x,sig k’s(x)) thì A sẽ gửi cho B bản mật mã của văn bản đó

được lập theo khoá công khai của B, tức là gửi cho B e k’ ((x, sig k’s (x)) Nhận được văn bản mật mã đó B sẽ dùng thuật toán giải mã dk’’ của mình để thu được (x, sig k’s (x)),

sau đó dùng thuật toán kiểm thử chữ ký công khai ver k”s của A để xác nhận chữ ký

sig k’s(x) đúng là của A trên x

2.1.4 Sơ đồ chữ ký Elgamal

Sơ đồ chữ ký ElGamal được đề xuất năm 1985, gần như đồng thời với sơ đồ hệ mật

mã ElGamal, cũng dựa trên độ khó của bài toán lôgarit rời rạc Sơ đồ được thiết kế đặc biệt cho mục đích ký trên các văn bản điện tử, được mô tả như một hệ:

Trong đó P = Z * p , A = Z * p x Z p-1, với p là một số nguyên tố sao cho bài toán tính

lôgarit rời rạc trong Z *

p là rất khó Tập hợp K gồm các cặp khoá K=(K’,K''), với K’=a

là một số thuộc Z * p , K'' =(p, α , β), α là một phần tử nguyên thuỷ của Z * p , và

β=αamodp K’ là khoá bí mật dùng để ký, và K'' là khoá công khai dùng để kiểm thử

chữ ký Các thuật toán ký và kiểm thử chữ ký được xác định như sau: Với mỗi thông báo x, để tạo chữ ký trên x ta chọn thêm môt số ngẫu nhiên k ∈ Z*

vì k.δ +a.γ ≡ x mod(p -1) Do đó, ver k” (x,(γ , δ)) = đúng

Ví dụ: Giả sử p = 467, α = 2, a = 127 Khi đó β = 2127mod467=132 Cho x =100; ta chọn ngẫu nhiên k =213 (∈ Z*

Trang 24

p là một số nguyên tố lớn có độ dài biểu diễn 512 ≤ lp ≤ 1024 bit (với l là

bội của 64) sao cho bài toán tính logarit rời rạc trong Z p là khó

q là một ước số nguyên tố của p -1 có lq biểu diễn cỡ 160 bit

Cũng dễ thấy rằng sơ đồ như trên là đúng Thực vậy nếu x, γ,δ là đúng thì :

e1 βe2modp)modq = (α x.w β γ.w mod p) mod q

= (α x.w α a γ.w mod p) mod q

= (α (x+a.γ).w mod p) mod q (1)

Hơn nữa w = δ -1 mod q

= (x + a.γ)-1.k mod q

→ (x + a γ).w = k mod q (2)

Từ (1) và (″) → (αe1 βe2mod p)mod q = (α k mod p) mod q = γ

Như vậy ver k” (x,(γ ,δ)) = đúng

Ví dụ :

Trang 25

e1= x.w mod q = 5246.1799 mod 17389 = 12716

e2= γ.w mod q = 34.1799 mod 17389 = 8999

đó thì có bằng chứng là anh ta không chứng minh được chữ ký đó là giả mạo, tức là anh ta không chối bỏ được chữ ký của mình

Một sơ đồ chữ ký không thể chối bỏ có 3 phần:

™ Một thuật toán ký

™ Một giao thức kiểm thử ( giao thức xác nhận )

™ Một giao thức chối bỏ

Trang 26

2.3 Chứng minh không tiết lộ thông tin

Phép chứng minh không tiết lộ thông tin đã được mô hình hóa bởi Quisquater and

Guillou trong ví dụ về “ Hang động của Ali Baba” Ví dụ này được giải thích như sau

™ Từ bây giờ chúng ta sẽ coi Peggy là Prover (người chứng minh), còn Victor là Verifier (người kiểm thử) như nhiều tài liệu Mật mã Peggy(P) muốn chứng minh với Victor(V) rằng cô ta biết câu thần chú có thể mở được cánh cửa bí mật tại các điểm R-S, nhưng cô ta không muốn tiết lộ bí mật đó với Victor

™ Quá trình đến nơi đó diễn ra như sau: Victor đi tới P và đợi đến khi Peggy đi khỏi R hoặc S Sau đó Victor di chuyển đến Q và gọi Peggy ra ngoài từ bên trái hoặc bên phải của đường hầm( kỹ thuật cut and choose) Nếu Peggy không biết câu thần chú, cô ta chỉ có 50% khả năng ra ngoài từ bên đúng

Giao thức có thể được lặp lại nhiều lần đến khi Victor tin rằng Peggy đã biết câu thần chú Nếu giao thức được lặp lại k lần, xác suất lừa gạt của Peggy là 2k

Và nó không có nghĩa là giao thức đã được lặp bao nhiêu lần Victor vẫn không biết được bí mật

Ý nghĩa chính ẩn trong nguyên nhân là: Peggy muốn chứng minh một sự thật hiển nhiên F1 nhưng cô ta không muốn tiết lộ sự chứng minh này Vì thế cô ta đi tìm những

sự thật F2 khác, mà có thể tiết lộ công khai, như là F 2 là ĐÚNG NẾU F 1 ĐÚNG( điều

kiện cần thiết) Vì thế cô ta “ Thay thế ” phép chứng minh của F1 chỉ bằng chứng minh

F2 Trong ví dụ, F1 là câu thần chú bí mật,và F2 là khả năng xuất hiện từ mọi phía của đường hầm Nếu Victor đồng rằng F2 không thể đúng nếu F1 không đúng, sau đó giao

thức có thể tiến hành

Trang 27

2.4 Vấn đề ký số trên đại diện văn bản

Khái niệm : Việc sử dụng các hệ mật mã và các sơ đồ chữ ký số thường là mã hóa

và ký số trên từng bit của thông tin, thời gian để mã hóa và ký sẽ tỷ lệ thuận với dung lượng của thông tin Thêm vào đó có thể xảy ra trường hợp với nhiều bức thông điệp đầu vào khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống nhau ( có thể khác nhau ) thì cho ra kết quả bản mã, bản ký số giống nhau Điều này sẽ dẫn đến một số rắc rối về sau cho việc xác thực thông tin

Với các sơ đồ ký số, chỉ cho phép ký các thông điệp ( thông tin ) có kích thước nhỏ

và sau khi ký, bản ký số có kích thước gấp đôi bản thông điệp gốc ( trong trường hợp của sơ đồ ký số DSS ) Trong khi đó, trên thực tế, ta cần phải ký các thông điệp có kích thước lớn hơn nhiều, chẳng hạn vài chục Megebyte, hơn nữa dữ liệu truyền qua mạng không chỉ là bản thông điệp gốc, mà còn bao gồm cả bản ký số (có dung lượng gấp đôi bản thông điệp gốc ), để đáp ứng việc xác thực sau khi thông điệp đến người nhận

Một cách đơn giản để giải bài toán (với thông điệp vài chục Megabyte ) này là chặt thông điệp thành nhiều đoạn 160 bit sau đó ký lên các đoạn đó độc lập nhau Nhưng biện pháp này có một số vấn đề khi tạo ra chữ ký số :

™ Thứ nhất : Với một thông điệp có kích thước a thì sau khi ký kích thước của chữ ký sẽ là 2a (trong trường hợp chữ ký số DSS)

™ Thứ hai : Với các chữ ký “an toàn ” thì tốc độ chậm vì chúng dùng nhiều phép tính số học phức tạp như số mũ modulo

™ Thứ ba : Vấn đề nghiêm trọng hơn đó là kết quả sau khi ký, nội dung của thông điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn trong chúng có thể bị mất mát, trong khi người nhận cần xác minh lại thông điệp Ta cần phải bảo vệ tính toàn vẹn của thông điệp

Giải pháp cho các vấn đề trên là dùng hàm băm để trợ giúp cho việc ký số Các thuật toán băm với đầu vào là các bức thông điệp có dung lượng tùy ý, các bức thông điệp có thể là dạng văn bản, âm thanh, hình ảnh, … và với các giải thuật toán băm : MD2, MD4, MD5, SHA do các bản băm có kích thước cố định: 128 bit với dòng MD,

160 bit với dòng SHA

Như vậy, bức thông điệp kích thước tùy ý sau khi băm sẽ được thu gọn thành các

văn bản – được gọi là văn bản đại diện - có kích thước cố định (128 bit hoặc 160

bit) Với mỗi thông điệp đầu vào chỉ có thể tính ra được một văn bản đại diện duy nhất Giá trị băm được coi là đặc thù của thông điệp, giống như dấu vân tay của mỗi người Hai thông điệp khác nhau chắc chắn có hai văn bản đại diện khác nhau Khi đã

có văn bản đại diện duy nhất cho bức thông điệp, áp dụng các sơ đồ chữ ký số ký trên văn bản đại diện đó

Trang 28

2.4.1 Sơ lược về hàm băm (Hash Function)

2.4.1.1 Giới thiệu

Theo các sơ đồ chữ ký ở trên thì chữ ký của thông điệp cũng có độ dài bằng độ dài của thông điệp, đó là một điều bất tiện Ta mong muốn như trong trường hợp chữ ký viết tay, chữ ký có độ dài ngắn và hạn chế cho dù văn bản có độ dài bằng bao nhiêu

Vì chữ ký số được ký cho từng bit của thông điệp, nếu muốn chữ ký có độ dài hạn chế trên thông điệp có độ dài tuỳ ý thì ta phải tìm cách rút gọn độ dài thông điệp Nhưng bản thân thông điệp không thể rút ngắn được, nên chỉ còn cách là tìm cho mỗi thông điệp một thông điệp thu gọn có độ dài hạn chế và thay việc ký trên thông điệp, ta ký

trên thông điệp thu gọn

Do vậy các hàm băm đóng vai trò cơ bản trong mã khóa công khai Hàm băm sẽ

tạo ra một đầu ra từ bản tin đầu vào Đầu ra này được định nghĩa là một mã băm

Nếu x1 ≠ x thì x1 và x va chạm dưới h( thành công)

Ngược lại là thất bại

Hàm Hash có tính chất một chiều: Hàm Hash có tính chất một chiều nếu cho trước thông điệp rút gọn z thì về mặt tính toán không tìm ra được thông điệp x sao cho :

Trang 29

2.4.1.3 Tính chất của hàm băm

™ Hàm băm h phải thỏa mãn tính chất không va chạm yếu nghĩa là : Khi cho trước một thông điệp x không thể tiến hành về mặt tính toán để tìm ra bức điện

x’ ≠ x mà h(x’) = h(x)

™ Hàm băm h không va chạm mạnh nghĩa là không có khả năng tính toán dễ tìm

ra hai thông điệp x và x’ mà x’ ≠ x và h(x’) = h(x)

™ Hàm băm h là hàm một chiều nghĩa là khi cho trước một bản tóm lược thông điệp z thì không thể thực hiện về mặt tính toán để tìm ra thông điệp ban đầu x sao cho h(x)= z

Các hàm băm phổ biến là các hàm băm dòng MD : MD2, MD4, MD5 do Rivest đưa ra có kết quả đầu ra là 128 bit Chuẩn hàm băm an toàn SHA được công bố trong

hồ sơ liên bang năm 1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do viện tiêu chuẩn và công nghệ quốc gia (NIST), kết quả đầu ra có độ dài 160 bit Dưới đây là thuật toán băm MD5

2.4.1.4 Thuật toán MD5

Thuật toán MD5 được Ron Rivest đưa ra vào năm 1991 Đầu vào của thuật toán là các khối có độ dài 512 bit và đầu ra là một bản băm đại diện cho văn bản gốc có độ dài 128bit

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

Bước 1 : Độn thêm bit

Đầu tiên thông điệp được đệm thêm vào để chiều dài của nó là 64 bit

Vi dụ : Nếu thông điệp dài 448 bit thì nó được đệm thêm vào 512 bit để trở thành

960 bit Số lượng bit được thêm vào nằm trong khoảng từ 1 đến 512 bit Dãy bit thêm vào bắt đầu bằng số 1 vào theo sau là dãy số 0

Bước 2 : Thêm độ dài

Một biểu diễn 64 bit của độ dài của thông điệp (trước khi các bit đệm được thêm vào) được thêm vào để dẫn đến kết quả của bước 1, nếu chiều dài của thông điệp ban đầu lớn hơn 264 thì chỉ có những bit nhỏ hơn 64 mới được sử dụng

Hai bước trên để đáp ứng yêu cầu độ dài của thông điệp là một bội số của 512 bit Bước 3 : Khởi tạo bộ đệm của MD

Một bộ đệm 128 bit được khởi tạo để lưu giữ kết quả của hàm băm Bộ đệm được biểu diễn bởi thanh ghi 32 bit Các giá trị khởi tạo của 4 thanh ghi là :

A = 0x01234567

B = 0x89abcdef

C = 0xfedcba98

D = 0x76543210

Trang 30

Bước 4 : Tiến trình thực hiện

Thuật toán được thực hiện qua 4 vòng lặp, 4 vòng lặp này có cấu trúc giống nhau nhưng sử dụng các phép toán logic khác nhau Các phép toán logic được sử dụng bao gồm : AND, XOR, OR và phép modulo 232

™ Phân tích luồng thông tin : Phát hiện luồng thông tin giữa các thành

viên Trong một ứng dụng hướng kết nối, người ta có thể xác định được tần số và khoảng thời gian kết nối Trong môi trường hướng kết nối hoặc không Hướng kết nối người ta có thể xác định được số lượng và độ dài của các thông báo giữa các thành viên

512 bit

128 bit digest

Trang 31

™ Giả mạo : Đưa thêm các thông báo có nguồn gốc giả mạo trên mạng

Thông thường kẻ giả mạo sẽ tạo ra các thông báo và gửi cùng với các thông báo hợp pháp

™ Sửa đổi nội dung : Thay đổi nội dung của thông báo như chèn thêm, xóa,

sửa đổi

™ Sửa đổi trình tự : Sửa đổi trình tự thông báo giữa các thành viên chẳng

hạn như xóa bỏ hay sắp xếp theo trình tự mới

™ Sửa đổi thời gian : Làm trễ hoặc chuyển tiếp nhiều lần các thông báo

™ Chối bỏ : Người nhận chối bỏ những thông báo gửi đến hoặc người gửi

chối bỏ thông báo gửi đi

Xác thực : Là một thủ tục nhằm kiểm tra các thông báo nhận được xem

chúng có đến từ một người gửi hợp lệ và có bị sửa đổi hay không Xác thực cũng có thể kiểm tra trình tự và tính đúng lúc Chữ ký số là một kỹ thuật xác thực

Trang 32

Chương III

CHỮ KÝ NHÓM

3.1 Khái niệm về chữ ký nhóm( Groups Signature )

Trong xu hướng phát triển cuả thế giới và Việt Nam hiện nay, việc giao dịch giữa người với người thông qua mạng đã trở thành một việc không thể thiếu Hai người ở cách xa nhau hàng vạn cây số nhưng vẫn có thể thực hiện việc ký kết các hợp đồng thương mại với nhau thông qua mạng Để việc ký kết các hợp đồng đó có cơ sở pháp

lý, các nhà khoa học đã phát minh ra chữ ký điện tử Đó là một phát minh vĩ đại của loài người trong kỉ nguyên công nghệ thông tin

Tuy nhiên, việc giao dịch không chỉ dừng lại ở mức độ giữa hai người với nhau,

mà đòi hỏi việc giao dịch đó có thể là giao dịch giữa các nhóm người, các tổ chức khác nhau trên thế giới và được thực hiện qua mạng Việc xác thực thông tin và toàn vẹn thông tin lúc này là xác thực và toàn vẹn thông tin của một nhóm người, một tổ chức Chữ ký nhóm đã được đề xuất nhằm đáp ứng được yêu cầu này của xã hội

Chữ ký nhóm là chữ ký điện tử đại diện cho một nhóm người, một tổ chức

Các thành viên của một nhóm người được phép ký trên thông điệp với tư cách là người đại diện cho nhóm

Chữ ký nhóm được David Chaum và Van Heyst giới thiệu lần đầu tiên vào năm

1991 Kể từ đó đến nay đã có nhiều nhà khoa học nghiên cứu và đưa ra một số sơ đồ chữ ký nhóm khác như sơ đồ chữ ký nhóm của Chen và Pedersen năm 1994, sơ đồ chữ

ký nhóm của Camenisch và Stadler năm 1997

3.2 Những đặc điểm của chữ ký nhóm

™ Chỉ có thành viên trong nhóm mới có thể ký tên vào bản thông báo đó

™ Người nhận thông điệp có thể kiểm tra xem chữ ký đó có đúng là của nhóm đó hay không, nhưng người nhận không thể biết được người nào trong nhóm đã ký vào thông điệp đó

™ Trong trường hợp cần thiết chữ ký có thể được “mở” (có hoặc là không có sự giúp đỡ của thành viên trong nhóm) để xác định người nào đã ký vào thông điệp đó

Ngày đăng: 27/04/2013, 10:40

HÌNH ẢNH LIÊN QUAN

dụng các thuật toán kinh điển được tóm lược trên bảng sau. Các kỹ thuật tinh tế hơn - Tìm hiểu Chữkí nhóm và ứng dụng trong giao dịch điện tử
d ụng các thuật toán kinh điển được tóm lược trên bảng sau. Các kỹ thuật tinh tế hơn (Trang 3)
Trong thực tế ,P và C thường là bảng chữ cái (hoặc tập các dãy chữ cái có độ - Tìm hiểu Chữkí nhóm và ứng dụng trong giao dịch điện tử
rong thực tế ,P và C thường là bảng chữ cái (hoặc tập các dãy chữ cái có độ (Trang 9)
Sơ đồ khối một hệ truyền tin mật - Tìm hiểu Chữkí nhóm và ứng dụng trong giao dịch điện tử
Sơ đồ kh ối một hệ truyền tin mật (Trang 9)
Trong mô hình mật mã cổ điển trước đây mà hiện nay đang được nghiên cứu, A(người gửi) và B (người nhận) chọn khóa bí mật K - Tìm hiểu Chữkí nhóm và ứng dụng trong giao dịch điện tử
rong mô hình mật mã cổ điển trước đây mà hiện nay đang được nghiên cứu, A(người gửi) và B (người nhận) chọn khóa bí mật K (Trang 16)
Phép chứng minh không tiết lộ thông tin đã được mô hình hóa bởi Quisquater and Guillou trong ví dụ về “ Hang động của Ali Baba” - Tìm hiểu Chữkí nhóm và ứng dụng trong giao dịch điện tử
h ép chứng minh không tiết lộ thông tin đã được mô hình hóa bởi Quisquater and Guillou trong ví dụ về “ Hang động của Ali Baba” (Trang 26)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w