tìm hiểu về chữ ký số
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-BÁO CÁO BÀI TẬP LỚN
MÔN : LÝ THUYẾT MÃ HÓA THÔNG TIN
Đề tài: Tìm Hiểu Về Chữ Ký Số
Nhóm thực hiện: NHÓM 7
Lớp: KHMT3-K3
Hà Nội
Trang 2Mục Lục
Trang 3Lời Nói Đầu
Như chúng ta đã biết, chữ ký viết tay “thường lệ” gắn với tài liệu được dùng để chỉ ra người đã ký nó Chữ ký được sử dụng hàng ngày như viết thư, ký hợp đồng…
Ở đây chúng ta tìm hiểu về chữ ký hoàn toàn khác đó là chữ ký số Nó là phương pháp ký thông báo được lưu dưới dạng điện tử và thông báo được ký có thể truyền trên mạng máy tính Chữ ký tay và chữ ký số dù có chung nhiệm vụ là
ký nhưng có sự khác biệt cơ bản giữa chúng
Thứ nhất, về việc ký tài liệu: với chữ ký tay 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 một cách vật lý với thông báo được ký
mà được gắn với thông báo theo logic, do đó thuật toán được dùng phải “trói ” chữ
ký với thông báo theo một cách nào đó
Thứ hai, về việc kiểm tra: chữ ký tay được kiểm tra bằng cách so sánh nó với những cái khác những chữ ký đã được xác thực Ví dụ, một người ký một tấm séc mua hàng, người bán hàng phải so sánh chữ ký trên tấm séc với chữ ký nằm sau thẻ tín dụng để kiểm tra Tuy 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 Khác với chữ ký tay, chữ ký số
có thể được kiểm tra bằng cách dùng thuật toán kiểm tra công khai đã biết Vì vậy bất kì người nào đều có thể kiểm tra chữ ký số, và việc sử dụng lược đồ ký an toàn
sẽ ngăn chặn khả năng đánh lừa
Với mong muốn ngăn chặn được sự giả mạo chữ ký Nhiều phương pháp được tạo ra nhằm tối ưu sự bảo mật, nổi bật hơn cả là 2 phương pháp ký số là RSA và Elgamal ở đây chúng ta chỉ tìm hiểu về ký số Elgamal
Trang 4Phần I: Giới Thiệu Chữ Ký Số
I Giới thiệu
Trong cách thức truyền thống, thông báo được truyền đi trong giao dịch thường dưới dạng các văn bản viết tay hoặc đánh máy được kèm thêm chữ ký (viết tay) của người gửi ở bên dưới văn bản Chữ ký đó là bằng chứng xác nhận thông báo đúng là của người ký, tức là của chủ thể giao dịch, và nếu tờ giấy mang văn bản không bị cắt, dán, tẩy, xóa thì tính toàn vẹn của thông báo cũng được chứng thực bởi chữ ký đó Chữ ký viết tay có nhiều ưu điểm quen thuộc như dễ kiểm thử, không sao chép được, chữ ký của một người là giống nhau trên nhiều văn bản, nhưng mỗi chữ ký gắn liền với một văn bản cụ thể, v.v…
Khi chuyển sang cách thức truyền tin bằng phương tiện hiện đại, các thông báo được truyền đi trên mạng truyền tin số hóa, bản thân các thông báo cũng được biểu diễn dưới dạn số hóa, tức dưới dạng các bit nhị phân, “chữ ký” nếu có cũng ở dưới dạng các dãy bit, thì các mối quan hệ tự nhiên kể trên không còn giữ được nữa Chẳng hạn, “ chữ ký ” của mỗi người gửi trên những văn bản khác nhau phải thể hiện được sự gắn kểttách nhiệm của người gửi đối với từng văn bản đó thì tất yếu phải khác nhau chứ không thể là những đoạn bit giống nhau như các chữ ký giống nhau trên các văn bản thông thường Chữ ký viết tay có thể được kiểm thử bằng cách so sánh với nguyên mẫu, nhưng “ chữ ký ” điện tử thì không thể có “ nguyên mẫu ” để mà so sánh, việc kiểm thử phải được thực hiện bằng những thuật toán đặc biệt Một vấn đề nữa là việc sao chép một văn bản cùng chữ ký Nếu là văn bản cùng chữ ký viết tay thì dễ phân biệt bản gốc với bản sao, do đó khó mà dùng lại được một văn bản có chữ ký thật Còn với văn bản điện tử cùng chữ ký điện tử thì có thể nhân bản sao chép tùy thích, khó mà phân biệt được bản gốc với bản sao, cho nên nguy cơ dùng lại nhiều lần là có thực, do đó cần có biện pháp để tránh nguy cơ đó
Trang 5II Định nghĩa hình thức của chữ ký số
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: lµ tËp h÷u h¹n c¸c bøc ®iÖn cã thÓ.
A: lµ tËp h÷u h¹n c¸c ch÷ kÝ cã thÓ K: kh«ng gian kho¸ lµ tËp h÷u h¹n c¸c kho¸ cã thÓ Víi mçi K thuéc K tån t¹i mét thuËt to¸n kÝ SigK S vµ mét thuËt to¸n x¸c minh VerK V
Mçi SigK: P -> A vµ VerK :P x A -> { TRUE ,FALSE } lµ nh÷ng hµm sao cho mçi bøc ®iÖn x P vµ mçi bøc ®iÖn y A tho¶ m·n ph¬ng tr×nh sau
®©y:
TRUE nÕu y= Sig(x)
Ver (x,y) =
FALSE nÕu y #Sig(x)
Với mỗi k thuộc K hàm sigk và verk là các hàm thời than đa thức Verk sẽ là hàm công khai sigk là mật Không thể dể dàng tính toán để giả mạo chữ kí của Bob trên bức điện x Nghĩa là x cho trước, chỉ có Bob mới có thể tính được y để verk = True Một sơ đồ chữ kí không thể an toàn vô điều kiện vì Oscar có thể kiểm tra tất cả các chữ số y có thể có trên bức điện x nhờ _ung thuật toán ver công khai cho đến khi anh ta tìm thấy một chữ kí đúng Vi thế, nếu có đủ thời gian Oscar luôn luôn có thể giả mạo chữ kí của Bob Như vậy, giống như trường hợp hệ thống
mã khoá công khai, mục đích của chúng ta là tìm các sơ đồ chữ kí số an toan về mặt tính toán
III Chữ ký số với hàm băm
Các hàm băm có chức năng tính toán một bản tóm lược tin nhắn, đó là một
chuỗi bit có độ dài cốđịnh vàn gắn
Đối với một tin nhắn cụ thể, bản tóm lược tin nhắn hoặc giá trị băm có thể
được xem như dấu vân tay của nó, tức là đại diện duy nhất của tin nhắn
Chữ ký của những tin nhắn lớn, ví dụ như các tập tin đính kèm email hoặc các tập tin đa phương tiện phải đòi hỏi một quy trình quá dài trên các máy tính
Trang 6hiện hành Không chỉ người ký phải tính toán chữ ký mà bên xác nhận cũng phải mất một khoảng thời gian và năng lượng tương đương để xác nhận chữ ký
Vấn đề lớn nhất ở đây là việc phải ký một tin nhắn dài bằng cách ký riêng
từng khối tin nhắn trong chuỗi Quy trình này đưa ra một giới hạn về bảo mật
nghiêm trọng là chúng ta sẽ không bảo vệ được cho toàn bộ tin nhắn
Do đó, vì các lý do hiệu năng cũng như bảo mật chúng ta muốn có một chữ
ký ngắn cho tin nhắn với mọi độ dài – bản tóm lược (giá trị băm, MAC, HMAC)
của tin nhắn đã ký
Bản tóm lược (giá trị băm) có chức năng đảm bảo cho nội dung của một tin nhắn không bị giả mạo cũng như tính toàn vẹn – tính hợp lệ của dữ liệu truyền đi không bị thay đổi
IV Ưu điểm của chữ ký số
Hiện nay có rất nhiều dịch vụ bảo mật chữ ký số và dưới đây là những dịch
vụ có vai trò trọng nhất và được mong muốn sử dụng trong nhiều trình ứng dụng:
1 Tính bảo mật: Thông tin được lưu trữ dưới dạng bí mật mà những bên
không được ủy quyền sẽ không thể xem được
2 Tính toàn vẹn: Các tin nhắn được đảm bảo không bị chỉnh sửa trong quá
trình truyền tải
3 Chứng thực tin nhắn: Người gửi tin nhắn được xác thực Một thuật ngữ
khác thay cho thuật ngữ này là chứng thực nguồn gốc dữ liệu.
4 Chống phủ nhận: Người gửi tin nhắn không thể phủ nhận việc mình đã
tạo tin nhắn đó
Trang 7Các trình ứng dụng khác nhau đòi hỏi những bộ dịch vụ bảo mật khác nhau.
Ví dụ, đối với e-mail cá nhân, có ba chức năng đầu tiên như đã nêu được mong muốn, trong khi một hệ thống e-mail doanh nghiệp có thể yêu cầu chức năng
Một ví dụ khác, nếu chúng ta muốn bảo vệ an toàn cho các bản cập nhật phần mềm của điện thoại di động thì mục tiêu chính có thể là tính toàn vẹn và chứng thực tin nhắn vì nhà sản xuất chủ yếu muốn đảm bảo rằng chỉ có bản cập nhật gốc mới được tải về thiết bị cầm tay đó
Đối với tính bảo mật, các thuật toán mã hóa đối xứng được sử dụng chủ yếu còn thuật toán mã hóa bất đối xứng ít được dùng hơn
Để có được chức năng đảm bảo tính toàn vẹn và chứng thực tin nhắn, có thể sử dụng chữ ký số và mã xác thực tin nhắn (viết tắt là MAC)
V Một số thuật toán chữ ký số
Chương trình Chữ ký RSA: Chương trình chữ ký RSA dựa trên phương pháp
mã hóa bất đối xứng RSA Tính bảo mật của nó được thiết lập dựa trên những khó khăn thực tế về sản phẩm có hai số nguyên tố lớn (vấn đề tìm thừa số của số nguyên) Từ bản mô tả đầu tiên vào năm 1978, chương trình chữ ký RSA đã trở thành chương trình chữ ký số được sử dụng rộng rãi nhất trong thực tế
Chữ ký số Elgamal: Chương trình chữ ký Elgamal được xuất bản vào năm
1985 dựa trên những khó khăn về việc tính toán các lô ga rít rời rác Không giống như RSA mà sự mã hóa và tạo chữ ký số hoạt động tương tự nhau, chương trình chữ ký số Elgamal này khá khác biệt so với chương trình mã hóa cùng mang tên nó
Thuật toán DSA: Thuật toán chữ ký ElGamal bản địa được mô tả trong phần này rất hiếm khi được sử dụng trong thực tế Thay vào đó là một biến thể phổ biến
hơn nhiều mang tên Thuật toán chữ ký số (DSA) đã được sử dụng Nó là một tiêu
chuẩn của chính phủ liên bang Hoa Kỳ về chữ ký số (DSS) và được đề xuất bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) Lợi thế chính khiến chương trình này vượt trội chương trình chữ ký ElGamal là chữ ký chỉ dài 320 bit và một số các
Trang 8cuộc tấn công có thể đe dọa đến chương trình ElGamal sẽ không thể tác động đến thuật toán DSA này
Thuật toán Chữ ký số đường cong Elip (ECDSA): Đường cong elip có nhiều lợi thế hơn các chương trình RSA và DL như được áp dụng trong ElGamal hoặc DSA Đặc biệt, trong trường hợp không có các cuộc tấn công mạnh đối với
hệ thống mã hóa đường cong elip (ECC), độ dài bit trong khoảng 160-256 bit có thể cung cấp tính bảo mật tương đương với chương trình RSA và DL 1024-3072 bit Độ dài ngắn hơn của ECC bit thường giúp cho thời gian xử lý nhanh hơn đồng thời chữ ký ngắn hơn Các bước trong tiêu chuẩn ECDSA được thiết kế liên quan chặt chẽ đến chương trình DSA Tuy nhiên, vấn đề logarit rời rạc của nó sẽ được tạo một nhóm trên đường cong elip
Phần II Ký Bằng Elgamal
Trang 9I Mụ tả thuật toỏn
Sau đõy ta mụ tả sơ đồ chữ Elgamal đó từng giới thiệu trong bài bỏo năm 1985 Bản cải tiến của sơ đồ này đó được Viện Tiờu Chuẩn và Cụng Nghệ Quốc Gia Mỹ(NIST) chấp nhận làm chữ ký số sơ đồ Elgamal (E.) được thiết kế với mục đớch dành riờng cho chữ ký số, khỏc sơ đồ RSA dựng cho cả hệ thống mó húa cụng khai lẫn chữ ký số
Sơ đồ Elgamal được thiết kế với mục đớch dành riờng cho chữ ký số, điểm mạnh của nú là cựng số nguyờn tố p trong cựng một sơ đồ thỡ với k là ngẫu nhiờn nờn ta cú thể cú nhiều chữ ký số, khụng tất định giống như hệ thống mó húa cụng khai Elgamal, ở sơ đồ chữ ký RSA ta chỉ thấy trờn cựng một sơ đồ với cựng một
số nguyờn tố p thỡ chỉ cú một chữ ký số Điều này cú nghĩa là cú nhiều chữ ký hợp
lệ trờn bức điện cho trước bất kỳ Thuật toỏn toỏn xỏc minh phải cú khả năng chấp nhận bất kỳ chữ ký hợp lệ nào khi xỏc thực chữ ký đú
Sơ đồ chữ ký Elgamal
Cho p là số nguyên tố sao cho bài toán Logarithm rời rạc trên Z p là khó và giả sử Z p * là phần tử nguyên thuỷ
Cho p = Z p * , A=Z p * Z p-1 , và kí hiệu:
K={(p,,a,):a (mod p) }
Giá trị p,, là công khai, còn a là mật
Với K=(p,,a,) và với một số ngẫu nhiên (mật) k Z p-1 *
Định nghĩa:
Sig k (x,k) = (,) Trong đó = k mod p
và = (x-a )k -1 mod (p-1).
Với x, Z p * và Z p-1 ta định nghĩa
Ver(x,y,) = True x (mod p)
Nếu chữ kí đợc thiết lập đúng thì xác minh sẽ thành công vì :
a k (mod p) mod p) x (mod p) mod p )
ở đây ta dùng hệ thức: a + k x (mod p) mod p-1)
Bob tính chữ kí bằng cách dùng cả giá trị mật a (mod p) là một phần của khoá ) lẫn
số ngẫu nhiên mật k (mod p) dùng để kí lên bức điện x ) Việc xác minh có thể thực hiện duy nhất bằng thông tin công khai
Trang 10Ví dụ minh họa
Giả sử cho p = 467, α = 2, a = 127, khi đó:
β = αa mod p = 2127 mod 467 = 132 nếu Bob muốn ký lên bực điện x = 100 và chọn số ngẫu nhiên k = 213 (chú ý
là UCLN(213,466) = 1 và 213-1 mod 466 = 431) Khi đó
γ = 2213 mod 467 = 29
và δ = (100-127× 29) 431 mod 466 = 51
bất kỳ ai cũng có thể xác minh chữ kí bằng các kiểm tra:
13229 2951 ≡ 189 (mod 467)
và 2100 ≡ 189 (mod 467)
Vì thế chữ ký là hợp lệ
II Đánh giá độ an toàn
Xét độ mật của sơ đồ chữ kí E giả sử, Oscar thử giả mạo chữ kí trên bức điện
x cho trước không biết a nếu Oscar chọn γ và sau đó thử tìm giá trị δ tương ứng, anh ta phải tính logarithm rời rạc logγαxβ-γ Mặt khác, nếu đầu tiên ta chọn δ và sau
đó thử tìm γ và thử giải phương trình:
βγγδ ≡ αx (mod p)
để tìm γ Đây là bài toán chưa có lời giải nào Tuy nhiên, dường như nó chưa được gắn với bài toán đã nghiên cứu kĩ nào nên vẫn có khả năng có cách nào đó để tính δ và γ đồng thời để (δ,γ) là một chữ ký Hiện thời không ai tìm được cách giải song cũng không ai khẳng định được rằng nó không thể giải được
Nếu Oscar chọn δ và γ và sau đó tự giải tìm x, anh ta sẽ phảo đối mặt với bài toán logarithm rời rạc, tức bài toán tính logα Vì thế Oscar không thể kí một bức điện ngẫu nhiên bằng biện pháp này Tuy nhiên, có 1 cách để Oscar có thể kí lên bức điện ngẫu nhiên bằng việc chọn γ, δ và x đồng thời: giả thiết i và j là các
số nguyên 0 ≤ i ≤ p-2, 0 ≤ j ≤ p-2 và UCLN(j,p-2)=1
Trang 11Khi đó thực hiện các tính toán sau:
γ = αi βj mod p
δ = -γ j-1 mod (p-1)
x = -γ i j-1 mod (p-1) Trong đó j-1 được tính theo modulo (p-1) (ở đây đòi hỏi j nguyên tố cùng nhau với p-1)
Ta nói rằng (γ,δ) là chữ kí hợp lệ của x điều này được chứng minh qua việc kiểm tra xác minh:
Ta sẽ minh họa bằng 1 ví dụ:
Giống như ví dụ trước cho p = 467, α = 2, β = 132 Giả sử Oscar chọn i =
99, j = 179 Khi đó j-1 mod (p-1) = 151 Anh ta tính toán như sau:
γ = 299132197 mod 467 = 117
δ = -117×151 mod 466 = 51
x = 99 × 41 mod 466 = 331 Khi đó (117,41) là chữ ký hợp lệ trên bức điện 331 như thế đã xác minh qua phép kiểm tra sau:
132117 11741 ≡ 303 (mod 467)
và 2331 ≡ 303 (mod 467)
Vì thế chữ kí là hợp lệ
Sau đây là kiểu giả mạo thứ 2 trong đó Oscar bắt đầu bằng bức điện được Bob
ký trước đây Giả sử (γ,δ) là chữ hợp lệ trên x khi đó, Oscar có khả năng ký lên
Trang 12nhiều bức điện khác nhau Giả sử i, j, h là các số nguyên, 0 ≤ h,i,j ≤ p-2 và UCLN(h γ – j δ, p-1) =1 Ta thực hiện tính toán sau:
λ = γhαiβj mod p
µ = δλ(hγ - jδ)-1 mod (p-1)
x’ = λ(hx + iδ)-1 mod (p-1)
trong đó (hγ - jδ)-1 được tính theo modulo (p-1) Khi đó dễ dàng kiểm tra điều kiện xác minh:
βλ λµ ≡ αx mod p
Vì thế (λ,µ) là chữ kí hợp lệ của x’
Cả 2 phương pháp trên đều tạo các chữ ký giả mạo hợp lệ song không xuất hiện khả năng đối phương giả mạo chữ ký trên bức điện có sự lưa chọn của chính
họ mà không phải giải bài toán logarithm rời rạc, vì thế không có gì nguy hiểm về
độ an toàn của sơ đồ chữ ký Elgamal
Cuối cùng, ta sẽ nêu vài cách có thể phải được sơ đồ này nếu không áp dụng nó một cách cẩn thận (có một số ví dụ nữa về khiếm khuyết của giao thức, một số trong đó là xét trong chương 4) Trước hết, giá trị k ngẫu nhiên được dùng
để tính chữ ký phải giữ kín không để lộ Vì nếu k bị lộ, khá đơn giản để tính:
A = (x - kγ)δ-1 mod (p-1)
Dĩ nhiên, một khi a bị lộ thì hệ thống bị phá và Oscar có thể dễ dàng giả mạo chữ ký
Một kiểu dung sai sơ đồ nữa là dùng cùng giá trị k để ký hai bức điện khác nhau Điều này cũng tạo thuận lời cho Oscar tính a và phá hệ thống Sau đây là cách thực hiện Giả sử (γ, δ1) là chữ ký trên x1 và (γ, δ2) là chữ ký trên x2 Khi đó ta có:
Trang 13βγγδ1 ≡ αx1 (mod p)
và βγγδ2 ≡ αx2 (mod p)
Như vậy
αx1-x2 ≡ αδ1-δ2 (mod p) Nếu viết γ = αk, ta nhận được phương trình tìm k chưa biết sau
αx1-x2 ≡ αk(δ1-δ2) (mod p) tương đương với phương trình:
x1 – x2 ≡ k(δ1 – δ2) (mod p-1) Bây giờ giả sử d= UCLN(δ1 – δ2, p-1) Vì d |(p-1) và d |(δ1 – δ2 ) nên suy ra d | ( x1 – x2) Ta định nghĩa:
x’ = (x1 – x2)/d δ’ = (δ1 – δ2)/d p’ = (p-1)/d Khi đó đồng dư thức trở thành:
x’ ≡ k δ’ (mod p’)
vì UCLN(δ’,p’) = 1, nên có thể tính:
ε = (δ’)-1 mod p’
Khi đó giá trị k xác định theo modulo p’ sẽ là:
k = x’ ε mod p’
Phương trình này cho d giá trị có thể của k: