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

Tiểu luận chữ ký số elgamal

28 433 11

Đ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 28
Dung lượng 262,65 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 tiểu luận chi tiết về thuật toán elgamal từ đó ứng dụng áp dụng xây dựng sơ đồ chữ kí số elgamal. Trong đó có đánh giá về độ an toàn của các thuât toán mã hóa và thám mã

Trang 1

Mục Lục

Trang 2

Mở đầu

Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật

và an toàn thông tin Trên thế giới, mật mã học đã được ra đời từ thời La Mã cổđại và ngày càng nghiên cứu, phát triển đạt được những thành tựu to lớn Trongmật mã học, vấn đề bảo mật luôn đi đôi với vấn đề xá thực thông tin, đặc biệttrong hệ thống mã hóa khóa công khai vấn đề xác thực là vô cùng quan trọng

Để giải quyết vấn đề trên người ta đưa ra một cách giải quyết hiệu quả, đó là chữ

Mật mã học khóa công khai tạo ra chữ ký số và ứng dụng vào các tài liệu

Hệ mã hóa ELGAMAL – hệ mã hóa điển hình của mật mã công khai cùng vớihàm băm mật mã học một chiều chính là một trong những công cụ chính trongviệc tạo ra chữ kí số điện tử

Khi nói đến chữ ký số, chúng ta luôn lấy mục tiêu an toàn lên hàng đầu.Một chữ ký số chỉ thực sự được áp dụng trong thực tế nếu như nó được chứngminh là không thể giả mạo Mục tiêu lớn nhất của kẻ tấn công các sơ đồ chữ kýchính là giả mạo chữ ký, điều này có nghĩa kẻ tấn công sẽ sinh ra được chữ kýcủa người ký lên thông điệp, mà chữ ký này sẽ được chấp nhận bởi người xácnhận Trong thực tế các hành vi tấn công chữ ký điện tử là hết sức đa dạng Vìvậy trong bài tiểu luận em xin phép nghiên cứu vấn đề: Phân tích xây dựng sơ

đồ chữ ký số Elgamal và các cách thám mã

Trang 3

Nội Dung

1 Tổng quan về chữ ký số

1.1 Giới thiệu chung

Trong đời sống hàng ngày, chữ kí trên một văn bản là một minh chứng về

“bản quyền” hoặc ít nhất cũng là sự tán đồng, thừa nhận các nội dung trong vănbản Chẳng hạn như việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng muabán, chuyển nhượng, thừa kế, tố tụng, … Chữ ký viết tay được chính tay người

ký nên không thể sao chụp được Thông thường chữ ký viết tay trên văn bảnđược dùng để xác nhận người ký nó Những yếu tố nào làm nên sức thuyết phụccủa nó? Ta có thể xem xét các yếu tố sau:

- Chữ ký là bằng chứng thể hiện người ký có chủ định khi ký văn bản

- Chữ ký thể hiện chủ quyền, nó làm cho người nhận văn bản biết rằng aiđích thị là người đã ký văn bản

- Văn bản đã ký không thể thay đổi được

- Chữ ký không thể giả mạo và cũng là thứ không thể chối bỏ

Trong đời sống bình thường, việc tạo một mô hình lý tưởng như trên làkhông dễ vì việc ký trên văn bản giấy có thể giả mạo chữ ký, nhưng với khảnăng kiểm định sát sao thì việc làm thay đổi không phải là dễ Tuy nhiên trongthế giới máy tính thì vấn đề ký như trên thực tế gặp phải nhiều khó khăn: cácdòng thông tin trên máy tính có thể thay đổi dễ dàng, hình ảnh của chữ ký taycủa một người cũng dễ dàng sang truyền từ một văn bản này sang văn bản khác,

và việc thay đổi nội dung một văn bản điện tử cũng chẳng để lại dấu vết gì vềphương diện tẩy, xóa

Để có được những đặc tính như trên, giao thức kí trong thế giới điện tửcần phải có sự hỗ trợ của công nghệ mã hóa Sơ đồ chữ ký số là phương pháp kýmột thông báo được lưu dưới dạng điện tử Giao thức cơ bản của chữ ký số dựatrên ý tưởng của Diffie và Hellman:

- Người gửi ký văn bản bằng cách mã hóa nó với khóa bí mật của mình

- Người gửi chuyển văn bản cho người nhận

- Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóa côngkhai của người gửi để giải mã văn bản

Trang 4

Khái niệm:

Chữ ký số là mô hình sử dụng các kỹ thuật mã hóa mật mã để gắn với mỗi người sử dụng một cặp khóa công khai-bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua chứng thực khóa công khai.

1.2 Vị trí, vai trò của chữ kí số

Xu hướng quốc tế hóa và toàn cầu hóa đã và đang ảnh hưởng đến sự pháttriển của thế giới Việc trao đổi thông tin cũng từ đó yêu cầu nhanh gọn, chínhxác và đặc biệt là phải an toàn Việc trao đổi thông tin, chứng thực thông tin theophong cách truyền thống làm giảm tốc độ, cũng như sự chính xác của thông tin.Những công việc đó mang tính chất thủ công gây ra sự chậm chễ và thiếu chínhxác trong trao đổi

Chính khó khăn đã nảy sinh sự phát triển mạnh mẽ của công nghệ thôngtin và công nghệ mã hóa Hiện nay ở tất cả các nước phát triển cũng như đangphát triển, mạng máy tính đang ngày càng đóng vai trò thiết yếu trong mọi lĩnhvực hoạt động của toàn xã hội và nhu cầu bảo mật thông tin đặt lên hàng đầu.Điển hình là việc mã hóa bảo mật các thông tin số của doanh nghiệp, dùng chữ

ký số xác thực email trao đổi thông tin, kiểm soát truy cập vào các sàn thươngmại điện tử và các đơn đặt hàng, ngân hàng điện tử, mua sắm trực tuyến… màvai trò chủ yếu là chữ kí số điện tử

Trên thực tế chữ kí số không chỉ được thực hiện cho các giao dịch điện tửtrên mạng internet mà còn qua hệ thống mạng viễn thông di động Đặc biệt, hiệnnay nhiều nước trên thế giới không chỉ triển khai ứng dụng chữ ký số trên mạngmáy tính mà còn áp dụng trên mạng điện thoại di động để thực hiện các giaodịch điện tử Hướng đi này giúp đẩy nhanh giao dịch, đơn giản hóa mua sắmtrực tuyến và giúp người dùng có thể truy cập mọi lúc mọi nơi

Sự ra đời của chữ kí số khẳng định được lợi ích to lớn về chiến lược vàkinh tế, đồng thời các vấn đề liên quan đến chữ kí số cũng là những chủ đề quantrọng nhất của mật mã học

Trang 5

1.3 Sơ đồ tổng quan của chữ kí số

Chúng ta có thể hiểu nôm na về chữ ký số điện tử như sau: là những thôngtin đi kèm với dữ liệu nhằm xác định chủ của người gởi nó

Chữ ký số điện tử bao gồm 3 thành phần: thuật toán tạo ra khóa, hàm tạochữ ký và hàm kiểm tra chữ ký

Hàm tạo ra chữ ký là hàm tính toán chữ ký trên cơ sở khóa mật và dữ liệucần ký

Hàm kiểm tra chữ ký là hàm kiểm tra xem chữ ký đã cho có đúng vớikhóa công cộng không Khóa này mọi người có quyền truy cập cho nên mọingười đều có thể kiểm tra được chữ ký

Định nghĩa: Sơ đồ chữ ký bao gồm các thành phần sau

5 Thuật toán tạo chữ ký Sign: M ×KS

Đối với bất kỳ khóa mật của chữ ký skK

, tương ứng với khóa côngcộng để kiểm tra chữ ký là pkK', bất kỳ bản tin mM

và chữ ký sS

cần thỏamãn điều kiện sau:

Trang 6

if True Verify pk m s

,

,

) , (

) (

) (

m sk

m sk

Sign s

Sign s

=

Bởi vì tài liệu cần ký thường có chiều dài khá dài Một biện pháp để ký làchia tài liệu ra các đoạn nhỏ và sau đó ký lên từng đoạn và ghép lại Nhưngphương pháp có nhược điểm là chữ ký lớn, thứ hai là ký chậm vì hàm ký là cáchàm mũ, thứ ba là chữ ký có thể bị đảo loạn các vị trí không đảm tính nguyênvẹn của tài liệu Chính vì điều đó mà khi ký thì người ta ký lên giá trị hàm hashcủa tài liệu, vì giá trị của hàm hash luôn cho chiều dài xác định Hàm hash sẽđược xem trong chương sau

Có nhiều cách để tạo ra chữ kí Ta có thể sử dụng một sơ đồ sau:

Chức năng của chữ ký số điện tử:

- Xác thực được nguồn gốc tài liệu: Tuy thuộc vào từng bản tin mà có thểthêm các thông tin nhận dạng, như tên tác giả, nhản thời gian…vv

Trang 7

- Tính toàn vẹn tài liệu Vì khi có một sự thay bất kỳ vô tình hay cố ý lênbức điện thì gía trị hàm hash sẽ bị thay đổi và kết quả kiểm tra bức điện sẽkhông đúng.

- Chống từ chối bức điện Vì chỉ có chủ của bức điện mới có khóa mật để

ký bức điện

Các khả năng tấn công đối với chữ ký điện tử:

1 Tội phạm có thể giả mã mạo chữ ký tương ứng với văn bản đã chọn

2 Tội phạm thử chọn bức điện mà tương ứng với chữ ký đã cho

3 Tội phạm có thể ăn trộm khóa mật và có thể ký bất kỳ một bức điệnnào nó muốn giống như chủ của khóa mật

4 Tội phạm có thể dã mạo ông chủ ký một bức điện nào đó

5 Tội phạm có thể đổi khóa công cộng bởi khóa của mình

2 Sơ đồ chữ ký số Elgamal

2.1 Hệ mã Elgamal

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

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ố, α ∈ Zp là phần tử nguyên thuỷ , β∈ Zp*Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 ≤ a ≤ p-2 sao cho:

αa≡ β (mod p)

Ta sẽ xác định số nguyên a bằng logαβ

Hệ mật khoá công khai Elgamal trong Zp *

Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khógiải Cho α ∈ Zp* là phần tử nguyên thuỷ.Giả sử P = Zp* ,C = Zp* × Zp* Tađịnh nghĩa:

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

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 ∈ Zp-1, ta xác định:

Trang 8

ek (m,k) = (y1 ,y2 )trong đó

y1 = αk mod p

y2 = mβk mod pvới y1 ,y2 ∈ Zp* ta xác định:

m=dk(y1 ,y2 ) = y2 (y1 a )-1 mod p

2.2 Sơ đồ chữ ký số Elgamal

Sơ đồ chữ ký Elgamal được giới thiệu năm 1985 Sơ đồ này thiết kế dànhriêng cho chữ ký số khác với sơ đồ RSA dành chung cho cả hệ thống mã côngkhai và chữ ký số Tuy nhiên về tư tưởng thì cũng tương tự như hệ mã elgamal

Sơ đồ chữ ký số Elgamal:

Tạo khóa:

Quá trình tạo khóa giống như qúa trình tạo khóa của hệ mật Elgamal, tức

là Alic chọn số nguyên tố p đủ lớn để bài toán logarith rời rạc trên Zp là khó giải,

là phần tử nguyên thủy, chọn x A < p−1 là số nguyên làm khóa

mật và tính khóa công cộng yA=αx A(mod p )

Alice tạo ra số ngẫu nhiên k thỏa mãn k< p−1

và UCLN(k,p-1)=1 và hình thành nên chữ ký là cặp (r,s), ở đây

).

1 )(mod (

), (mod

p r

Trang 9

) (mod )

(mod)

( 1

p p

r

.Chúng ta thấy Alice hình thành chữ ký với khóa mật xA và cả số nguyênngẫu nhiên k Việc thẩm tra chữ ký chỉ bằng thông tin công khai

Sử dụng sơ đồ chữ kí số ở trên ta xây dựng lại cho sơ đồ chữ kí sốElgamal

Trang 10

Alice muốn ký lên bức điện m=100, thì Alice chọn số ngẫu nhiên k, ví dụAlice chọn k=213 (UCLN(213,467)=1) và tính 213-1(mod 466)=431 Khi đó:

r=2213 mod 467=29s=431(100-127.29) mod 466=51Bob hay bất kỳ ai cũng có thể thẩm tra được chữ ký này bằng cách:

) 467 (mod 189 2

) 467 (mod 189 29

132

100

51 29

Trang 11

so=( int )(so/ 2 );

while ( len (x)< 64 ):x.insert( 0 , 0 );

Trang 12

with open(fname, "rb") as f:

for chunk in iter(lambda: f.read( 4096 ), b""):

#tao chu ky cho file ("file.txt")

# ta can biet cac tham so khoa cong khai (p,ap,bt) van ban (m) , va cac khoa bi mat(a,k)

Trang 13

with open(fname, "rb") as f:

for chunk in iter(lambda: f.read( 4096 ), b""):

if (kq1==kq2): print ("CHU KY PHU HOP")

else: print ("CHU KY KHONG PHU HOP")

#kiem tra file

# ta can biet cac tham so: khoa cong khai (p,ap,bt), van ban (m) va chu ky (s,r)

2.3.1 Sơ đồ chữ ký Schnorr

Đây là sơ đồ chữ ký thuộc họ của Elgamal nhưng có những tính chất tốthơn so với sơ đồ Elgamal

Trang 14

Sơ đồ chữ ký được cho ở dưới

Thiết lập tham số hệ thống:

1 Chọn hai số nguyên tố p và q, thỏa mãn điều kiện q|p-1 Và các số này

được chọn sao cho kích thước

3 Lựa chọn hàm hash H:{ }0 , 1* Z q

(Ví dụ có thể chọn SHA-1)

Các tham số (p,q,g,H) sẽ phân bố giữa các người dùng hệ thống

Hình thành khóa mật và khóa công cộng:

Alice tạo ra số ngẫu nhiên

q xe l s

r m H e

p g

||

( '

), (mod '

r m H e

p y

g

r s e

Trang 15

Verify (p,q,g,y,h) (m,(s,e))=TRUE, nếu như e’=e.

Chú ý rằng khi tạo ra các tham số hệ thống, việc tạo phần tử sinh g có thểđược xác định rất nhanh bởi vì q|p-1

Việc thẩm tra chữ ký đúng nếu như cặp (m,(s,e)) đúng là cặp “bức chữ ký”, được tạo ra bởi Alice Nghĩa là:

điện-)(mod' g y g y y g y g r p

thành chữ ký và thẩm định chữ ký: trong sơ đồ Schonorr tốn O(log log2 )

Sơ đồ chữ ký được miêu tả như sau:

Thiết lập tham số hệ thống:

Các tham số hệ thống giống như sơ đồ chữ ký Schnorr Và chuẩn DSSchọn hàm hash là SHA-1 Các tham số của hệ thống là (p,q,g,H) xem sơ đồSchnorr

Tạo khóa:

Alice tạo ra số ngẫu nhiên xZ p

là khóa mật và tính khóa công cộng:

)

(mod p g

yx

.

Trang 16

Tham số công khai của Alice bao gồm (p,q,g,y,H) còn x là tham số mật.

Hình thành chữ ký

Để ký lên bức điện m { }*

1,0

).

)(mod )

( (

), ))(mod (mod

(

l s

q p

), (mod )

(

), (mod

2 1 1

q rw

u

q w m H u

q s

g q p

g

) )](mod (mod

[ ) )](mod )(mod

Nhứng ưu điểm, những chú ý tương tự sơ đồ chữ ký Schnorr

2.3.3 Chuẩn chữ ký của Liên Xô Gost 34-10.94

Sơ đồ này ra đời sau chuẩn DSS của Mỹ nên nó được kề thừa và bổ sungnhững ưu việt của mình

Sơ đồ chuẩn chữ ký GOST 3410.94

Hình thành tham số hệ thống:

Cho p là số nguyên tố, kích thước từ 509 đến 512 bít, q là số nguyên tố

sao cho q|p-1 Số g < p-1 có bậc là q, nghĩa là g q ≡1(mod p)

Trang 17

Alice muốn ký lên bức điện M, thì Alice thực hiện các bước sau:

1 Lựa chọn số ngẫu nhiên k

Bob muốn kiểm tra chữ ký (r,s) có tương ứng với bản tin M và các tham

số mở (p,q,g,y) không, thì Bob thực hiện các bước tính sau:

5 Và Bob kiểm tra đẳng thức sau:

Verify(p,q,g,y)(m,(r,s)=TRUE, nếu u=r

Chúng ta xem hàm kiểm tra chữ ký là hợp lý bằng dãy biến đổi sau:

))](mod)(mod

g xr kM M q q x q r M q q

Trang 18

=[( gxrM q−2(modq)+kxrM q−2(modq))(mod p )](mod q ) =

r q p

• Giả sử ta thử giả mạo chữ kí trên bức điện m cho trước mà không biết xa

thì ta có thể chọn r và tìm s tương ứng Tức ta phải tính logarithm rời rạcLogrαmya-r

• Hoặc ngược lại nếu ta chọn s thì ta phải giải phương trình Yarrs=αm(modp) Phương trình này còn khó hơn và hiện nay nó chưa có lời giải hoặcchưa được nghiên cứu

• Nếu ta chọn (r,s) và thử tìm bức điện m thì ta phải tính Logαyarrs

• Mặt khác nếu ta tấn công đánh cắp khóa mật xa bằng cách tính Logαya, ta

có thể kí lên bất kì bức điện nào để mạo danh người gửi

Chúng ta đánh giá độ an toàn của sơ đồ chữ ký Elgamal qua một số cảnhbáo sau

Trang 19

Chúng ta thấy bức điện m’ với chữ ký (r’,s’) thỏa mãn điều kiện:

)(mod)

Tấn công kiểu như thế này là không thể nếu như r < p, bởi vì trong trườnghợp này giá trị r’ được tính toán theo bước 3 ứng dụng định lý phần dư TrungHoa theo modulo p(p-1)

và p), thì cần phải kiểm tra một số lần rằng α

là số ngẫu nhiên (điều này

có thể áp dụng hàm tạo số giả ngẫu nhiên)

Giả sử rằng các tham số mở α

và p được lựa chọn bởi tội phạm Oscar.Tham số p hình thành trên cơ sở phương pháp chuẩn: Giả sử p-1=bq, với q là sốnguyên tố đủ lớn, nhưng b có thể có thừa số nguyên tố nhỏ, và tính toánlogarithm trong nhóm bậc b không khó)

Chúng ta biết rằng việc tính toán logarith rời rạc của khóa mở yA là bài

toán khó Thế nhưng tính toán logarith của độ lớn

q A

)(mod)

y q q z

A = α

Trang 20

Khi tính được giá trị z thì Oscar có thể giả mạo chữ ký của Alice bằng cáclệnh sau đây:

).

1 )(mod (

m t s

cq

r β

Chúng ta xem việc thẩm tra chữ ký:

)(mod)

y r

y cq t m cqz cqz m cqz m

A s r

Cảnh báo 3:

Trong cảnh báo này thì liên quan đến chiều dài của tham số k Tạo ra chữ

ký theo sơ đồ Elgamal là thuật toán ngâu nhiên bởi vì tham số k được hình thànhngẫu nhiên

Alice không bao giờ dùng khóa để ký các bức điện khác nhau là có thờigian sống ngắn Nếu như tham số k sử dụng trở lại đối với chữ ký của hai bức

điện m1 và m2, mà hai bức điện thỏa mãn m1 ≠m2(mod p−1), thì từ phương trìnhtính s của sơ đồ chữ ký chúng ta có:

) 1 (mod )

)1)(mod/(

)( 1 2 1 2

l

,

Trang 21

Bước 1: Tính alpha mj mod p với 0<=j<=m-1.

Bước 2: Sắp xếp các cặp (j, alphamj mod p) theo alphamj mod p và lưu vàodanh sách L1

Bước 3: Tính beta*alpha-i mod p với 0<=i<=m-1

Bước 4: Sắp xếp các cặp (i, beta*alpha-i mod p) theo beta*alpha-i mod p

và lưu vào danh sách L2

Bước 5: Tìm trong hai danh sách L1 và L2 xem có tồn tại cặp ( j, alphamj

mod p ) và ( i, beta*alpha-i mod p ) nào mà alphamj mod p = beta*alpha-i mod p(tọa độ thứ hai của hai cặp bằng nhau )

Bước 6: Tính a= ( mj + i ) mod ( p - 1 ).

b, Code

Trang 22

l1.append([ pow (ap,m*i,p),i])

l2.append([(bt* pow (ap,i,p))%p,i])

Trang 23

Bước 2 Đối với từng số nguyên tố q, qα || p−1

, chúng ta tìm log (mod )

α

q b

a

Đặt

)(mod

)(mod

1 1

0

α α

α

q b

, với 0≤ x iq−1

Ta có b=aα(mod p) nên:

) (mod/

) 1 )(

( /

) 1

b pqx +x q+ +xα−qα− pq

/ ) 1 ( /

) 1

) (mod )

( 1 ( 1 ) / 1 ( 1 ) /

1 1

1(mod

loga b p

theo định lý phần dư trung hoa

Định lí phần dư trung hoa

Ngày đăng: 13/05/2019, 22:19

TỪ KHÓA LIÊN QUAN

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

w