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

MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ

44 1,2K 0
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

Tiêu đề Một Số Thuật Toán Ký Và Xác Nhận Chữ Ký Điện Tử
Tác giả Hoàng Thị Thanh Liễu
Trường học Trường Đại Học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Khóa Luận Tốt Nghiệp
Thành phố Hà Nội
Định dạng
Số trang 44
Dung lượng 415,5 KB

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

Nội dung

MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ

Trang 1

Mục lục

Lời nói đầu5

Chơng I 7

Một số khái niệm cơ sở 7

1 1 Kí hiệu và khái niệm 7

1 3 Thặng d bậc hai và ký hiệu Legendre 10

1 4 Hàm một phía và hàm cửa sập một phía 10

1 5 Thuật toán tính nghịch đảo 11

1 6 Thuật toán phân tích ra thừa số 12

Chơng II 13

Vấn đề mã hoá 13

2 1 Đặt vấn đề 13

2 2 Khái niệm hệ Mật mã 13

2 3 Hệ mật mã RSA 15

2 3 1 Định nghĩa sơ đồ hệ mật mã RSA 15

2 3 2 Xét độ an toàn trong hệ mật mã RSA 16

Chơng III 17

Vấn đề ký điện tử 17

3 1 Khái niệm ký điện tử 17

3 2 Sơ đồ chữ ký RSA 19

3 2 1 Sơ đồ chữ ký RSA 19

3 2 2 Chống giả mạo chữ ký 20

3 3 Sơ đồ chữ ký điện tử ELGamal 21

3 3 1 Sơ đồ chữ ký ELGamal 21

3 3 2 Vấn đề giả mạo chữ ký 22

3 3 3 Vấn đề Phá khóa theo sơ đồ ELGamal 25

3 4 Chuẩn chữ ký số DSS (Digital Signature Standard) 26

3 5 Sơ đồ chữ ký 1 lần 29

Trờng đại học quốc gia hà nội

Khoa công nghệ

Hoàng Thị Thanh Liễu

Một số thuật toán ký và xác nhận chữ ký đIện tử

khoá luận tốt nghiệp hệ đại học chính quy

Ngành: Công nghệ thông tin

 Hà Nội 6-2001

Trờng đại học quốc gia hà nội

Khoa công nghệ

Hoàng Thị Thanh Liễu

Một số thuật toán ký và xác nhận chữ ký đIện tử

khoá luận tốt nghiệp hệ đại học chính quy

Ngành: Công nghệ thông tin

 Cán bộ hớng dẫn: TS Trịnh Nhật Tiến

 Hà Nội 6-2001

Trang 2

3 6 Chữ ký không phủ định đợc 32

3 6 1 Đặt vấn đề 32

5 6 2 Sơ đồ chữ ký không phủ định đợc Chaum - van Antverpen 33 3 6 3 Các tính chất của sơ đồ Chaum - van Antverpen 34

3 7 Sơ đồ chữ ký Fail - Stop 37

Chơng VI 40

Thử nghiệm ký điện tử bằng chơng trình 40

4 1 Chơng trình mã hoá RSA 40

4 2 Chơng trình ký điện tử theo sơ đồ chữ ký RSA 44

Kết luận 47

Tài liệu tham khảo 48

Trang 3

Lời nói đầu

Truyền thông trên mạng đã, đang và sẽ phổ biến trong các hoạt động kinh tếxã hội Thông tin đợc truyền đi nhanh chóng, tiện lợi Ngời ta có thể “nói chuyện”với nhau, giải trí cùng nhau, mua bán trao đổi với nhau trên mạng, khi cách xanhau hàng trăm ngàn cây số

Việc mua bán trên mạng đợc thực hiện nh thế nào? Với một giao dịch muabán bình thờng, ngời mua và ngời bán xác nhận sự đồng ý mua bán bằng cách kýtay vào cuối hợp đồng mua bán Vì bằng cách nào đó ngời ta phải thể hiện đó là chữ

ký của họ và kẻ khác không thể giả mạo Mọi cách sao chép trên văn bản th ờng đều

bị phát hiện vì bản sao dễ bị phân biệt đợc với bản gốc Mua bán trên mạng cũng

đ-ợc thực hiện theo cách thức tơng tự nh vậy Nghĩa là ngời gửi và ngời nhận cũng

phải “ký” vào hợp đồng mua bán Một số văn bản khác cũng cần phải xác nhận

trách nhiệm của ngời gửi đối với văn bản gửi đi tức là họ phải “ký” vào văn bản trớc khi gửi Nhng “ký” trên văn bản truyền qua mạng nh thế nào, khi tất cả nội dung

văn bản đều đợc biểu diễn dới dạng số hoá (chỉ dùng hai số 0 và 1 – ta gọi văn bảnloại này là văn bản số) Việc giả mạo và sao chép lại đối với văn bản số là hoàn toàn

dễ dàng và không thể phân biệt đợc bản gốc với bản sao Hơn nữa, một văn bản số

có thể bị cắt dán, lắp ghép là hoàn toàn có thể và ta không thể phân biệt đợc bản gốcvới bản sao Vậy một chữ ký ở cuối văn bản loại này không thể chịu trách nhiệm đốivới toàn nội dung văn bản Chữ ký nh thế nào thì mới thể hiện đợc trách nhiệm đốivới toàn bộ văn bản? Chắc chắn chữ ký đó phải đợc ký trên từng bít của văn bản

Nh vậy thông tin trên mạng có thể bị lấy cắp, bị cắt dán, lắp ghép mà đối vớinhững văn bản cần ký tên hay cần sự xác nhận của ngời gửi đối với văn bản lại lànhững văn bản quan trọng (nhất là trong các lĩnh vực quân sự, ngân hàng, thơng mại

điện tử), cần đợc bảo vệ an toàn khi truyền trên mạng Mã hoá thông tin sẽ giúpchúng ta bảo vệ thông tin an toàn

Trở lại câu hỏi “ký” trên văn bản số đợc thực hiện nh thế nào? Thực chất của

việc ký điện tử là mã hoá Việc xác nhận chữ ký là kiểm nghiệm việc mã hoá trên

có đúng không Luận văn của em đi vào nghiên cứu tìm hiểu một số thuật toán ký

và xác nhận chữ ký thực chất là thuật toán mã hoá và việc kiểm tra việc mã hoá

Trang 4

Chơng I Một số khái niệm cơ sở.

Trình bày những khái niệm làm cơ sở cho lý thuyết mã hoá thông tin và ký

điện tử

Chơng II Vấn đề mã hoá.

Trình bày khái niệm chung về hệ mật mã và một hệ mã khoá công khai - hệmật mã RSA

Chơng III Vấn đề ký điện tử.

Nghiên cứu chung về một số sơ đồ chữ ký, bao gồm một số thuật toán ký,giao thức chối bỏ, giao thức kiểm thử

Chơng IV Một thử nghiệm ký điện tử theo sơ đồ chữ ký RSA.

Thử nghiệm mã hoá thông tin theo hệ Mật mã RSA và ký điện tử theo sơ đồchữ ký RSA

Trong chơng trình thử nghiệm, việc mã hoá và ký là trên 1 văn bản với bộchữ cái tiếng Anh Việc sử dụng với bộ chữ cái khác (nh bộ chữ cái tiếng Việt) cũngtơng tự nh vậy Chơng trình đợc viết bằng ngôn ngữ Turbo C/C++

Trang 5

Chơng I Một số khái niệm cơ sở

1 1 Kí hiệu và khái niệm

* Kí hiệu chia hết:

Cho a và b là hai số nguyên dơng

- Số a chia hết cho số b ký hiệu là a  b  Tồn tại n  N sao cho a = b*n,

- Khi đó ngời ta nói b là ớc của a và ký hiệu: b | a

* ớc số chung lớn nhất :

Cho a và b là hai số nguyên dơng

- Ước số chung lớn nhất của a và b là số tự nhiên m lớn nhất sao cho m | a và m | b.

Khi đó ký hiệu là ƯCLN(a, b) = m

* Hai số nguyên tố cùng nhau:

Cho a và b là hai số nguyên dơng

- Số a và số b đợc gọi là 2 nguyên tố cùng nhau  ƯCLN (a, b) = 1

* Một số tính chất của đồng d modulo:

(ab) (mod n)  [(a mod n) (b mod n)] (mod n)

(a*b) (mod n)  [(a mod n) *(b mod n)] (mod n)

Trang 6

1 Phép toán có tính kết hợp:

(x*y)* z = x*(y*z) với mọi x, y, z G

1 Có phần tử phần tử trung lập e  G:

x*e = e*x = x với mọi x  G

3 Với mọi xG, có phần tử nghịch đảo x’ G:

x*x’ = x’*x = e

* Nhóm Cyclic:

- Nhóm G đợc gọi là nhóm Cyclic nếu nó đợc sinh ra bởi một trong các phần

tử của nó Tức là có phần tử g  G mà mọi phần tử a  G đều tồn tại số n  N để gn

= a

- Khi đó g đợc gọi là phần tử sinh hay phần tử nguyên thuỷ của nhóm G

Ví dụ: Nhóm cộng Z gồm các số nguyên là nhóm Cyclic có phần tử sinh là 1

- Cấp của G là số phần tử của G nếu G có hữu hạn phần tử, và bằng  nếu G

có vô hạn phần tử

Ví dụ: Nhóm cộng Z gồm các số nguyên là nhóm Cyclic vô hạn

- Nếu không tồn tại số tự nhiên n để gn =e thì G có cấp là 

- Trong trờng hợp ngợc lại, tồn tại số tự nhiên nhỏ nhất n mà gn = e thì G sẽgồm n phần tử khác nhau: e, g, g2, g3, , gn-1 Khi đó G đợc gọi là nhóm Cyclic hữu

hạn cấp n

- Phần tử   G đợc gọi là có cấp d nếu d là số nguyên dơng nhỏ nhất sao

cho d = e Nó có cấp 1 nếu  = e

Trang 7

Chính vì lẽ trên, nhóm Cyclic còn đợc định nghĩa nh sau:

- Nhóm G đợc gọi là nhóm Cyclic nếu tồn tại số g sao cho mọi phần tử trong

G đều là một luỹ thừa nguyên nào đó của g

* Nhóm con: Cho G là một nhóm, cho S  G và S  

- S đợc gọi là nhóm con của G nếu

1 Phần tử trung lập e của G nằm trong S

2 S khép kín đối với luật hợp thành trong G (tức là x*y  S với mọi x, y S)

3 S khép kín đối với phép lấy nghịch đảo trong G (tức x-1  S với mọi xS)

Z = e  Zn, e là nguyên tố cùng nhau với n Tức là e # 0

- Đó là tập các số nguyên dơng < n, nhng nguyên tố cùng nhau với n

* Một số kết quả: Những kết quả sau đã đợc chứng minh, nhắc lại để sử dụng

- Định lý Lagrange: Cho G là nhóm cấp n và g G Khi đó Cấp của g là ớc của n

Trang 8

1 2 Logarit rời rạc

* Khái niệm Logarit rời rạc:

Cho p là số nguyên tố,  là phần tử nguyên thuỷ của Zp,  Z*

Logarit rời rạc chính là việc giải phơng trình x = log  (mod p) với ẩn x Hay phải tìm số x duy nhất sao cho: x   (mod p)

- Bổ đề: Nếu (a, n) = 1 thì tồn tại a-1  Zn thoả mãn a * a-1  1 (mod n)

- Định lý (n) Euler tổng quát): Nếu (a, n) = 1 thì a(n) mod n = 1

- Hệ quả: Với p là một số nguyên tố và (a, p) = 1 thì ap-1 (mod p) = 1

1 3 Thặng d bậc hai và ký hiệu Legendre

* Thặng d bậc hai:

Cho p là số nguyên tố lẻ, x là một số nguyên dơng  p-1

x đợc gọi là thặng d bậc hai mod p, nếu phơng trình

y2  x mod p có lời giải

* Kí hiệu Legendre:

Cho p là số nguyên tố lẻ, và a là một số nguyên dơng bất kỳ

ký hiệu Legendre nh sau:

= 1, nếu a là thặng d bậc hai mod p

b 1, trong các trờng hợp còn lại

1 4 Hàm một phía và hàm cửa sập một phía.

1 Hàm f(x) đợc gọi là hàm một phía nếu tính y = f(x) thì “dễ”,

nhng tính x = f -1 (y) lại rất “khó”

Ví dụ: 1 Hàm f(x) =  x (mod p), với p là số nguyên tố lớn, ( là phần tử nguyênthuỷ mod p) là hàm một phía

- Hàm f(x) đợc gọi là hàm cửa sập một phía nếu tính y = f(x) thì “dễ”,

tính x = f -1 (y) lại rất “khó” Tuy nhiên có cửa sập z để tính x = f -1 (y) là “dễ”

Ví dụ: Hàm f(x) = xa (mod n) (với n là tích của hai số nguyên tố lớn n = p*q)

là hàm một phía Nếu chỉ biết a và n thì tính x = f-1(y) rất khó nhng nếu biết cửa sập

p và q thì tính đợc f-1(y) là khá dễ

1 5 Thuật toán tính nghịch đảo

Cho a  *

n

Z , a-1 đợc gọi là nghịch đảo của a  a*a-1 (mod n) = 1

Một số thuật toán tính nghịch đảo:

1 Cho a-1 chạy từ 2 đến n-1 đến khi đợc a*a-1 (mod n) = 1

2 Nếu biết  (n) thì chỉ cần tính: a-1  a (n)-1 (mod n)

3 Dùng thuật toán Euclidean mở rộng nh sau:

Đầu vào: b và n.

Đầu ra: - nghịch đảo của b theo mod n nếu tồn tại,

Trang 10

1 6 Thuật toán phân tích ra thừa số

Bài toán: cho n là tích của hai số nguyên tố lớn p và q, n = p*q, bài toán đặt ra là

nếu biết n, có cách nào để tìm đợc p và q không?

Hiện nay ngời ta cha có cách nào tính trực tiếp p, q hữu hiệu từ n trừ khi biết

// 0 trong trờng hợp ngợc lại

for( int i = 3; i< = sqrt(n); i+ = 2)

if (!n%i) return i;

return 0;

Trong thuật toán trên vòng lặp là (n1/ 2/2) Nếu n có 512 bit, giá trị lớn nhất của n là 2512 Nếu 1 máy tính thực hiện 106 chỉ lệnh trong 1 giây thì thời gian thực hiện là:

T = n1/ 2 /2  21/2*512 /2 = 2256 /2 = 2255(giây)

 2238 (ngày)  2230 năm

(1 ngày = 60*60*24 = 86400 giây  217 giây

1 năm = 30*12*86400 giây = 31104000 giây  225 giây.)

Nếu kẻ giả mạo muốn tìm p, q theo cách này thì đây là điều không tởng

Trang 11

Chơng II Vấn đề mã hoá

2 1 Đặt vấn đề

Ta biết rằng tin truyền trên mạng rất dễ bị lấy cắp Để đảm bảo việc truyềntin an toàn, ngời ta thờng mã hoá thông tin trớc khi truyền đi Việc mã hoá cần theoquy tắc nhất định gọi là Hệ mật mã Hiện nay có hai loại Mật mã: Mật mã cổ điển

và Mật mã khoá công khai Mật mã cổ điển dễ hiểu, dễ thực thi nhng có độ an toànkhông cao Vì giới hạn tính toán chỉ thực hiện trong phạm vi bảng chữ cái sử dụngtrong văn bản cần mã (ví dụ là Z26 nếu dùng các chữ cái tiếng Anh, Z256 nếu dùngbảng mã ASCII ) Với các hệ mã cổ điển, nếu biết khoá lập mã hay thuật toán lậpmã, ngời ta có thể tìm ra ngay đợc bản rõ Ngợc lại, các hệ mật mã khoá công khaicho biết khoá lập mã K và hàm lập mã ek , thì cũng rất khó tìm đợc cách giải mã Vàviệc thám mã là rất khó khăn do độ phức tạp tính toán lớn Vì thế trong chơng này,

đầu tiên ta định nghĩa khái niệm về mật mã sau đó tìm hiểu Hệ mật mã công khaiRSA vì nó thiết thực cho ký điện tử

Sau đây là khái niệm hệ mật mã

5 D là tập các hàm giải mã Với mỗi kK, có một hàm lập mã e kE,

e k : PC, và một hàm giải mã d kD, d k : CP sao cho d k (e k (x)) = x xP

Trang 12

Đờng đi của thông tin trong sơ đồ mã hoá nh sau:

Ngời gửi G  Ngời nhận N 

Kẻ tấn công H

Ngời gửi G muốn gửi một văn bản cho ngời nhận N, thay vì gửi văn bản bìnhthờng, G mã hoá văn bản đó rồi mới gửi (tất nhiên phải cho ngời nhận biết khoá đểgiải mã) Khi ngời N nhận đợc bản mã, họ dùng khoá do G gửi để giải mã thì mới

đọc đợc Nếu H lấy cắp bản tin này trên mạng thì anh ta cũng không đọc đợc nếukhông có khoá mở

L

u ý:

1 Sau này khi nhắc đến các ký hiệu P, C, K, E, D, ta ngầm định chúng có ý

nghĩa nh trong định nghĩa sơ đồ chữ ký trên

2 Đối với các hàm mã hoá ek(x), hàm lập mã dk(y), thì đó là các ký hiệuchung Còn khi dùng chỉ số khác (nh G, H, N) thì ta ngầm định là do ngời gửi (G),ngời nhận (N), hay kẻ tấn công (H) đa ra

Sau đây ta xét một hệ mật mã cụ thể

Trang 14

2 3 2 Xét độ an toàn trong hệ mật mã RSA

Ta thấy hệ mật mã RSA chỉ đợc an toàn khi giữ bí mật khoá giải mã a và 2 thừa số p và q hay giữ bí mật (n)

Trờng hợp biết đợc p và q thì H dễ dàng tính đợc (n) = (q-1)*(p-1)

Khi biết đợc (n) thì H sẽ tính đợc a theo thuật toán Euclidean mở rộng.Khi biết a thì toàn hệ thống sẽ bị phá vỡ ngay lập tức Vì khi biết a, toàn bộ khoá K = (n, a, b) đều đợc biết và H đọc ngay đợc bản rõ Ngoài ra, H có thể lập mãtrên văn bản khác để gửi tiếp đến N Mà ta biết việc H đọc đợc bản rõ hay lập mã trên văn bản khác là cực kỳ nguy hiểm Nhất là những thông tin liên quan đến an ninh quốc gia, quân đội, ngân hàng

Trang 15

Chơng III Vấn đề ký điện tử

3 1 Khái niệm ký điện tử

* Kí điện tử là gì ?

* Kí điện tử nh thế nào ?

- Truyền trên mạng là các thông tin số hóa, tức là dãy các bít

- Vậy phải kí trên từng bit một

5. V là tập các thuật toán kiểm thử

6 Với mỗi KK, có một thuật toán ký sig KS, sig K : P AA, và một thuật toán kiểm thử ver KV, ver K : PA đúng, sai, thoả mãn điều kiện sau đây với mọi xP, yA:

Ver K (x, y) = đúng, nếu y = sig K (x),

sai, nếu y # sig K (x)

Trang 16

Ta hình dung một quá trình ký, nhận và kiểm thử nh sau:

- Ngời gửi G chuyển văn bản trên mạng cho ngời nhận N Khi nhận đợc, N sẽkiểm thử xem chữ ký đó là đúng hay sai để hồi đáp lại cho G Kẻ tấn công H có thể

đột nhập vào quá trình truyền thông tin từ G đến N, lấy cắp văn bản, giả mạo chữ kýsau đó mới gửi đến N

- Liệu H có thể giả mạo đợc không? Điều này là hoàn toàn có thể khi cácthuật toán verk và sigk là các thuật toán đa thức, tập văn bản và tập chữ ký đều là hữuhạn, thì H sẽ thử mọi trờng hợp có thể để đạt đợc điều kiện kiểm thử đúng

- Cụ thể là để chuyển đi văn bản x, G ký y= sigK(x) sao cho verK(x, y) = true.Khi trộm đợc x, H kiểm tra với mọi y có thể trên x cho đến khi verK(x, y) = true

Hiện nay có nhiều loại sơ đồ chữ ký, sau đây em xin trình bày một số sơ đồ chữ ký

Ngời gửi G

Ngời nhận N

Trang 17

3 2 Sơ đồ chữ ký RSA

Thuật toán ký phải dựa vào hệ mã hoá bởi vì các thông tin cần đợc ký chắc làcác thông tin phải đợc giữ bí mật hoặc là phải tránh bị tấn công, do đó bản ký và cảchữ ký đều cần đợc bảo mật Trên cơ sở một số hệ mật mã, ngời ta đã xây dựng nêncác sơ đồ chữ ký tơng ứng Sơ đồ chữ ký RSA đợc xây dựng dựa trên hệ mật mãRSA

3 2 1 Sơ đồ chữ ký RSA

Cho n = p*q với p, q là số nguyên tố lớn Đặt P = A = Zn

K= (n, p, q, a, b): n = p*q, p, q là các số nguyên tố, a*b  1 (mod (n))

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

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

y = sigK (x) = xa mod n, y  A

verK (x, y) = đúng  x  yb (mod n)

Hình 2: Sơ đồ chữ ký RSA Chú ý

- So sánh giữa sơ đồ chữ ký RSA và sơ đồ mật mã RSA ta thấy có sự tơngứng Việc G ký vào x tơng ứng với việc mã hoá văn bản x Thuật toán kiểm thửchính là việc sử dụng hàm giải mã nh trong RSA để kiểm tra xem sau khi giải mã có

đúng là văn bản trớc khi ký không Khi thuật toán kiểm thử là công khai, bất kỳ aicũng có thể kiểm thử chữ ký đợc

- Nh vậy việc ký chẳng qua là một lần mã hoá, việc kiểm thử lại chính là việc

Trang 18

a Trờng hợp G ký y = sig (x) trớc, sau đó sử dụng hàm mã hoá e để mã hoácả x và y đợc z = eN (x, y) rồi gửi bản mã đến N Khi N nhận đợc, đầu tiên dùnghàm giải mã dN để đợc x, y sau đó kiểm tra verK(x, y) = true?

b Trờng hợp G mã hoá x trớc bằng z = eN(x) sau đó ký:

y = sigG(z) = sigG(eN(x))

Tiếp theo gửi cặp (z, y) đến N N giải mã z đợc x và dùng thuật toán kiểm thửverG với y để đợc x

* Giả sử H lấy cắp đợc thông tin trên đờng truyền từ G đến N

Trong trờng hợp a, H lấy đợc z

Trong trờng hợp b, H lấy đợc (z, y)

- Nếu muốn tấn công văn bản x thì trong cả hai trờng hợp, H đều phải giảimã thông tin lấy đợc Nhng nếu muốn tấn công vào bản ký (để giả mạo) thì sao?

- Trong trờng hợp a, H phải giải mã z thì mới có thể tấn công vào chữ ký

- Trong trờng hợp b, H sẽ thay chữ ký y của G bởi y’ = sigH(eN(x)), sau đógửi đến N Khi nhận đợc, N kiểm thử thấy sai sẽ gửi phản hồi lại G G có thể chứngminh chữ ký đó là giả mạo và gửi văn bản cùng chữ ký đúng cho N nhng quá trìnhtruyền tin sẽ bị chậm lại Nh vậy trong trờng hợp này, H có thể giả mạo chữ ký màkhông cần giải mã

- Vì thế có lời khuyên là ta nên ký trớc khi mã hoá

Trang 19

3 3 Sơ đồ chữ ký điện tử ELGamal

Sơ đồ ELGamal đợc đề xuất năm 1985, phiên bản sửa đổi của sơ đồ này đợcchấp nhận là chuẩn chữ ký số bởi NIST (National Institute of Standards andTechnology – Viện quốc gia về các chuẩn và công nghệ Mỹ) Sơ đồ chữ kýELGamal đợc thiết kế đặc biệt cho mục đích ký Nó có thể sử dụng cả hai hệ mậtmã khoá công khai và sơ đồ chữ ký (điều này khác với RSA)

3 3 1 Sơ đồ chữ ký ELGamal

Giả sử p là số nguyên tố sao cho bài toán log rời rạc trong Zp là khó

Giả sử  là phần tử nguyên thủy của Z * Đặt P = Z * ,

A = Z *  Zp-1 và

K = (p, , a, ): a  Z * ,    a mod p 

Với mỗi K = (p, , a, ), k’ = a bí mật, k” = (p,  ) công khai

Chọn ngẫu nhiên k  Zp* và giữ bí mật, lập chữ ký trên x  P (x  0) sau:

Trang 20

Giả sử G ký trên văn bản x = 112, chọn số ngẫu nhiên k = 235

Hai giá trị đó bằng nhau, chữ ký là đúng

3 3 2 Vấn đề giả mạo chữ ký

- Giả sử H cố gắng giả mạo chữ ký trên x mà không biết trớc a Muốn vậy,anh ta phải tính đợc  và 

* Nếu chọn trớc  thì phải tìm , tức là phải tính log x - Ngợc lại nếuchọn trớc  thì phải tìm  bằng cách giải phơng trình:       x mod p với ẩn 

- Ngời ta cha biết có cách giải nào hữu hiệu nhng phỏng đoán là khó hơn bàitoán logarit rời rạc Có thể có một vài cách tính ,  đồng thời với (, ) là chữ ký?

Đó là câu hỏi đặt ra nhng cha có câu trả lời minh bạch

* Nếu H chọn  và  và sau đó thử tìm x thì anh ta phải đối đầu với bài toánlogarit rời rạc log  -  Vì vậy H không thể ký trên một văn bản ngẫu nhiên bằngcách giải tơng tự Nhng có một phơng thức H có thể ký trên văn bản ngẫu nhiênbằng cách chọn x, ,  đồng thời

Trang 21

Có hai cách giả mạo chữ ký cùng với văn bản đợc ký

Cách 1

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

Lấy các số nguyên i, j sao cho 0  i, j  p-2, (j, p-1) = 1 và tiến hành các phép tính:

 =  i  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) Ta chứng minh(, ) là chữ ký trên văn bản x bằng cách kiểm tra các điều kiện kiểm thử:

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

Khi đó (218, 50) là chữ ký đúng đối với văn bản x = 292, vì:

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

và  x = 2292  322 (mod 467)

Trang 22

ở đây (h  - j ) -1 tính theo mod (p -1)

Có thể thử lại rằng:       x’ mod p,

Tức (, ) là chữ ký đúng đối với văn bản x’

Cả hai cách giả mạo nói trên đều cho chữ ký đúng trên văn bản tơng ứng,

nh-ng văn bản đó khônh-ng phải là văn bản đợc chọn theo ý của nh-ngời giả mạo, các văn bản

đó đều đợc tính sau khi tính chữ ký, vì vậy khả năng sử dụng cho việc giả mạo trongthực tế cũng không có ý nghĩa

Ngày đăng: 25/04/2013, 20:37

HÌNH ẢNH LIÊN QUAN

Hình 1: Sơ đồ hệ mật mã RSA - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
Hình 1 Sơ đồ hệ mật mã RSA (Trang 13)
3. 2. Sơ đồ chữ ký RSA - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
3. 2. Sơ đồ chữ ký RSA (Trang 17)
3. 3. Sơ đồ chữ ký điện tử ELGamal - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
3. 3. Sơ đồ chữ ký điện tử ELGamal (Trang 19)
Hình 4: Sơ đồ chữ ký DSS - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
Hình 4 Sơ đồ chữ ký DSS (Trang 26)
3. 5. Sơ đồ chữ ký 1 lần - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
3. 5. Sơ đồ chữ ký 1 lần (Trang 28)
Hình 7: Giao thức chối bỏ - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
Hình 7 Giao thức chối bỏ (Trang 33)
3. 7. Sơ đồ chữ ký Fail - Stop - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
3. 7. Sơ đồ chữ ký Fail - Stop (Trang 36)
Sơ đồ thực hiện theo các b  ớc: - MỘT SỐ THUẬT TOÁN KÝ VÀ XÁC NHẬN CHỮ KÝ ĐIỆN TỬ
Sơ đồ th ực hiện theo các b ớc: (Trang 39)

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