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

Bài tập lớn Mật mã và an toàn dữ liệu Chữ ký số ELGAMAL

9 2,4K 36

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 68,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập lớn Mật mã và an toàn dữ liệu Chữ ký số ELGAMAL • Chữ ký điện tử là dạng thông tin đi kèm dữ liệu (văn bản, hình ảnh, video…) nhằm mục đích xác định người chủ của dữ liệu đó, chữ ký ở dưới chân email là một ví dụ về loại chữ ký này. • Chữ ký số chỉ là một tập con của chữ ký điện tử, là một dạng chữ ký điện tử dựa trên công nghệ mã hoá. Để sử dụng chữ ký số thì người dùng phải có một cặp khoá gồm khoá công khai (public key) và khoá bí mật (private key). Khoá bí mật dùng để tạo chữ ký số, khoá công khai dùng để thẩm định chữ ký số hay xác thực người tạo ra chữ ký số đó.

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Bài tập lớn

Mật mã và an toàn dữ liệu

Đề bài: Chữ ký số ELGAMAL

Giảng viên: PGS.TS Trịnh Nhật Tiến

Học viên thực hiện: Uông Huy Quân,

Khóa: K19-TDL&MMT

Lớp MH: INT 6010 2

Mã HV: 12025324

Hà Nội, Năm 2014

Trang 2

MỤC LỤC

1 T NG QUAN V CH KÝ S ỔNG QUAN VỀ CHỮ KÝ SỐ Ề CHỮ KÝ SỐ Ữ KÝ SỐ Ố 3

1.1 Khái niệm 3

1.2 Pháp lý của chữ ký số 3

1.3 Ưu điểm của chữ ký số 3

1.4 Lợi ích khi sử dụng chữ ký số của doanh nghiệp 4

1.5 Cách sử dụng chữ ký số 4

2 S Đ CH KÝ ELGAMAL Ơ ĐỒ CHỮ KÝ ELGAMAL Ồ CHỮ KÝ ELGAMAL Ữ KÝ SỐ 5

2.1 Tạo cặp khóa (bí mật, công khai) (a, h) : 5

2.2 Ký số: 5

2.3 Kiểm tra chữ ký: 5

2.4 Ví dụ: 5

3 Đ AN TOÀN C A CH KÝ ELGAMAL Ộ AN TOÀN CỦA CHỮ KÝ ELGAMAL ỦA CHỮ KÝ ELGAMAL Ữ KÝ SỐ 6

3.1 Vấn đề giả mạo chữ ký Elgamal 6

3.2 Vấn đề Phá khóa theo sơ đồ Elgamal 8

4 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA CHỮ KÝ ELGAMAL U ĐI M VÀ NH ỂM VÀ NHƯỢC ĐIỂM CỦA CHỮ KÝ ELGAMAL ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA CHỮ KÝ ELGAMALỢC ĐIỂM CỦA CHỮ KÝ ELGAMAL C ĐI M C A CH KÝ ELGAMAL ỂM VÀ NHƯỢC ĐIỂM CỦA CHỮ KÝ ELGAMAL ỦA CHỮ KÝ ELGAMAL Ữ KÝ SỐ 9

4.1 Ưu điểm 9

4.2 Nhược điểm 9

Trang 3

1 TỔNG QUAN VỀ CHỮ KÝ SỐ

 Chữ ký điện tử là dạng thông tin đi kèm dữ liệu (văn bản, hình ảnh,

video…) nhằm mục đích xác định người chủ của dữ liệu đó, chữ ký ở dưới chân email là một ví dụ về loại chữ ký này

 Chữ ký số chỉ là một tập con của chữ ký điện tử, là một dạng chữ ký

điện tử dựa trên công nghệ mã hoá Để sử dụng chữ ký số thì người dùng phải có một cặp khoá gồm khoá công khai (public key) và khoá bí mật (private key) Khoá bí mật dùng để tạo chữ ký số, khoá công khai dùng để thẩm định chữ ký số hay xác thực người tạo ra chữ ký số đó

Một số văn bản quy phạm pháp luật do Quốc hội, Chính phủ và các Bộ thông qua và ban hành liên quan đến chữ ký số:

 Luật Giao dịch điện tử số 51/2005/QH11 do Quốc hội thông qua ngày

29/11/2005 quy định về giao dịch điện tử trong hoạt động của các cơ quan nhà nước trong lĩnh vực dân sự, kinh doanh, thương mại và các lĩnh vực khác do pháp luật quy định

 Luật Công nghệ thông tin số 67/2006/QH11 do Quốc hội thông qua

ngày 29/6/2006 quy định về hoạt động ứng dụng và phát triển công nghệ thông tin, các biện pháp bảo đảm ứng dụng và phát triển công nghệ thông tin, quyền và nghĩa vụ của cơ quan, tổ chức, cá nhân tham gia hoạt động ứng dụng và phát triển công nghệ thông tin

 Nghị định số 26/2007/NĐ-CP ngày 15/2/2007 của Chính phủ quy định

chi tiết thi hành Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số

 Thông tư số 05/2010/TT-BNV ngày 01/7/2010 của Bộ Nội vụ hướng

dẫn về cung cấp, quản lý và sử dụng dịch vụ chứng thực chữ ký số chuyên dùng phục vụ các cơ quan thuộc hệ thống chính trị

Việc sử dụng chữ ký số mang lại nhiều ưu điểm khi cần xác định nguồn gốc

và tính toàn vẹn của văn bản trong quá trình sử dụng

 Khả năng xác định nguồn gốc

Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với khóa bí mật mà chỉ có người chủ của khóa biết

Để sử dụng Chữ ký số thì văn bản cần phải được mã hóa hàm băm (là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối

dữ liệu: có thể là một chuỗi kí tự, một đối tượng trong lập trình hướng

Trang 4

các khối dữ liệu) Sau đó dùng khoá bí mật của người chủ khóa để mã hóa, khi đó ta được Chữ ký số Khi cần kiểm tra, bên nhận giải mã với khóa công khai để lấy lại hàm băm và kiểm tra với hàm băm của văn bản nhận được Nếu hai giá trị này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản đó xuất phát từ người sở hữu khóa bí mật

 Tính toàn vẹn

Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng

là văn bản không bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lập thức bị phát hiện Quy trình mã hóa

sẽ ẩn nội dung dối với bên thứ ba

 Tính không thể phủ nhận

Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó

là do mình gửi Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chúng cứ để bên thứ ba giải quyết

 Việc ứng dụng chữ ký số giúp doanh nghiệp tiết kiệm thời gian, chi phí

hành chính Hoạt động giao dịch điện tử cũng được nâng tầm đẩy mạnh Không mất thời gian đi lại, chờ đợi

 Không phải in ấn các hồ sơ

 Việc ký kết các văn bản ký điện tử có thể diễn ra ở bất kỳ đâu, bất kỳ

thời gian nào

 Việc chuyển tài liệu, hồ sơ đã ký cho đối tác, khách hàng, cơ quan quản

lý… diễn ra tiện lợi và nhanh chóng

 Tạo chữ ký số

Sử dụng các ứng dụng hỗ trợ tạo chữ ký số từ khóa bí mật, khóa

bí mật do nhà cung cấp dịch vụ chứng thức chữ ký số công cộng cấp được lưu giữ dưới dạng tệp tin (có mật khẩu khi sử dụng), để an toàn và chống copy khóa bí mật một số nhà cung cấp dịch vụ lưu trữ khóa bí mật trong một thiết bị phần cứng chuyên dụng là USB Token hoặc SmartCard Thiết bị này sẽ đảm bảo khóa bí mật được lưu trữ an toàn, không thể sao chép hay nhân bản được và cũng không thể bị virus phá hỏng

 Kiểm tra chữ ký

Trang 5

Khi giao dịch điện tử, người nhận phải kiểm tra được tính pháp lý của chữ ký số của người giao dịch với mình gửi đến Trong các ứng dụng hỗ trợ ký số có chức năng kiểm tra được chữ ký số công cộng hợp pháp hay không Việc kiểm tra là so sánh tính đồng nhất của khóa công khai trên chữ ký số của người gửi đến với khóa công khai của Nhà cung cấp dịch vụ chứng thực chữ ký số công cộng lưu trữ trên hệ thống máy chủ của Trung tâm chứng thực chữ ký số quốc gia (Root Certification Authority) thuộc Bộ Thông tin – Truyền thông

Sơ đồ chữ ký Elgamal được giới thiệu năm 1985 Sơ đồ này thiết kế dành riêng cho chữ ký số khác với sơ đồ RSA dành chung cho cả hệ thống mã công khai

và chữ ký số

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là “khó” giải

Chọn phần tử nguyên thuỷ g  Zp* Đặt P = Z p*, A = Z p* x Z p-1 Chọn khóa bí mật là a  Zp* Tính khóa công khai h  g a mod p

Định nghĩa tập khóa: = {(p, g, a, h): h  g a mod p}

Các giá trị p, g, h được công khai, phải giữ bí mật a

Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r  Zp-1* (Vì r  Zp-1* , nên nguyên tố cùng p -1, do đó tồn tại r -1 mod (p -1) ) Chữ ký trên x  P là y = Sig a (x, r) = (, ), y  A

Trong đó   Z p*,   Zp-1 :

 = g r mod p và  = (x – a *  ) * r -1 mod (p -1)

Ver k (x, , ) = đúng  h  *    g x mod p

Chú ý: Nếu chữ ký được tính đúng, kiểm thử sẽ thành công vì

h  *    g a  * g r *  mod p  g (a  + r * ) mod p  g x mod p

Do  = (x – a *  ) * r -1 mod (p -1) nên (a *  + r *)  x mod (p-1)

Trang 6

2.4 Ví dụ:

Chữ ký Elgamal trên dữ liệu x = 112

Chọn số nguyên tố p = 463 Đặt P = Z p*, A = Z p* x Z p-1 Chọn phần tử nguyên thuỷ g = 2  Zp*

Chọn khóa bí mật là a = 211  Zp* Tính khóa công khai h  g a mod p = 2 211 mod 463 = 249

Định nghĩa tập khóa: = {(p, g, a, h): h  g a mod p}

Các giá trị p, g, h được công khai, phải giữ bí mật a

Vì r  Zp-1* , nên nguyên tố cùng p -1, do đó tồn tại r -1 mod (p -1)

Cụ thể:

UCLN(r, p-1) = UCLN(235, 462) = 1, nên r -1 mod (p-1) = 235 -1 mod

462 = 289

Chữ ký trên dữ liệu x = 112 là ( ,  ) = (16, 108), trong đó:

 = g r mod p = 2 235 mod 463 = 16

 = (x – a *  ) * r -1 mod (p -1) = (112 - 211 * 16) * 289 mod 462 = 108

mod p

h  *   = 249 16 * 16 108 mod 463 = 132

g x mod p = 2 112 mod 463 = 132

Hai giá trị đó bằng nhau, như vậy chữ ký là đúng

Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký Elgamal:

Bài toán tính Logarit rời rạc:

Biết khóa công khai h  g a mod p

Nên có thể xác định khóa bí mật a bằng cách tính Log g h

H cố gắng giả mạo chữ ký trên x, mà không biết khóa bí mật a

Như vậy, H phải tính được  và 

* Nếu chọn trước , H phải tính  qua đẳng thức h  *    g x mod

p (E2) Tức là    g x h -  mod p hay   log g x h -  mod p

* Nếu chọn trước , H phải tính  qua phương trình: h  *    g x mod p

Trang 7

Hiện nay chưa có cách hữu hiệu 2 trường hợp trên, nhưng phỏng đoán là khó hơn bài toán logarit rời rạc

Có thể có cách tính ,  đồng thời với (, ) là chữ ký ? Chưa có trả lời rõ !

* Nếu chọn trước , , sau đó tính x, H phải đối đầu với bài toán logarit rời rạc

Ta có h  *    g x mod p (E2)

Như vậy x  log g g x  log g h  *  

H có thể ký trên tài liệu ngẫu nhiên bằng cách chọn trước đồng thời x,

, 

Cách 1

* Chọn x, ,  thoả mãn điều kiện kiểm thử như sau:

Chọn các số nguyên i, j sao cho 0  i, j  p-2, (j, p-1) = 1 và tính:

 = g i h j mod p,  = -  j -1 mod (p -1), x = -  i j -1 mod (p -1)

Trong đó j -1 được tính theo mod (p -1) (nghĩa là j nguyên tố với p-1)

* Chứng minh (, ) là chữ ký trên x, bằng cách kiểm tra điều kiện kiểm thử:

h     h  (g i h j ) - j -1 mod p  h  g – i  j-1 h - mod p  g x mod p

Ví dụ

* Chọn các tham số của sơ đồ chữ ký Elgamal:

Số nguyên tố p = 463, phần tử sinh g = 2, Khóa bí mật a = 135 Khóa công khai h = g a mod p = 2 135 mod 463 = 272

* Chọn x, ,  thoả mãn điều kiện kiểm thử như sau:

Chọn i = 89, j = 125, 0  i, j  p-2, (j, p-1) = 1 Tính j -1 mod (p-1) = 377

 = g i * h j mod p = 289 * 272125 mod 463 = 218

 = -  * j -1 mod (p -1) = -218 * 377 mod 462 = 50

x = - * i * j -1 mod (p -1) = -218 * 89 * 377 mod 462 = 292

* (, ) = (218, 50) là chữ ký trên x = 292, vì thỏa mãn điều kiện kiểm thử:

h  *   = 272 218 * 218 50  322 (mod 463)

Trang 8

Cách 2

* Nếu (, ) là chữ ký trên tài liệu x có từ trước, thì có thể giả mạo chữ

ký trên tài liệu x’ khác

+ Chọn số nguyên k, i, j thỏa mãn 0  k, i, j  p-2, (k  - j , p-1)

= 1 và tính:

 =  k g i h j mod p,  =   (k  j ) 1 mod (p -1),

x’ =  (k x + i ) (k  - j ) -1 mod (p -1)

* (, ) là chữ ký trên x’, vì thỏa mãn điều kiện kiểm thử:

h     g x’ mod p

Chú ý

Cả hai cách giả mạo nói trên đều cho chữ ký đúng trên tài liệu tương ứng, nhưng đó không phải là tài liệu được chọn theo ý của người giả mạo Tài liệu đó đều được tính sau khi tính chữ ký, vì vậy giả mạo loại này trong thực tế cũng không có ý nghĩa nhiều

Khoá bí mật a có thể bị phát hiện, nếu khóa ngẫu nhiên r bị lộ, hoặc dùng r cho hai lần ký khác nhau

Nếu r bị lộ, thám mã sẽ tính được khoá mật a = (x - r )  -1 mod (p-1)

Giả sử dùng r cho 2 lần ký trên x1 và x2

(, 1) là chữ ký trên x1, (, 2) là chữ ký trên x2

Khi đó thám mã có thể tính được a như sau:

Do đó ta có Đặt  =  r , ta có tương đương với x1-x2  r (1 - 2) mod (p-1) (1)

Đặt d = (1 - 2, p -1) Khi đó d | (p-1), d | (1 - 2)  d | (x1-x2)

) (mod

1

 ) (mod

2 1 2

) (mod

)

*(1 2 2

Trang 9

Khi đó đồng dư thức (1) trở thành: x'  r * ' (mod p')

Vì (', p') = 1 nên tính  = (')-1 mod p' và tính r = x'* mod p'

 r = x'* + i*p' mod (p-1), với i là giá trị nào đó, 0 i  d-1 Thử với giá trị đó, ta tìm được r (điều kiện thử để xác định r là  = r mod p)

Tiếp theo sẽ tính được a như trường hợp 1)

 Độ phức tạp của bài toán logarit lớn nên độ an toàn cao

 Chữ ký phụ thuộc vào văn bản cần ký và giá trị ngẫu nhiên nên có thể có

nhiều chữ ký khác nhau

 Tốc độ chậm do phải xử lý số nguyên lớn

 Dung lượng bộ nhớ cần thiết lớn

x

p

x x d d p d

' ' '

1 2

1 2

1

Ngày đăng: 25/10/2014, 23:58

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w