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

Báo cáo bài tập lớn : an toàn bảo mật hệ thống thông tin đề tài chữ ký số Elgamal và code demo

39 201 7

Đ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 39
Dung lượng 714,19 KB

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

Nội dung

Chữ ký số Elgamal ,Báo cáo bài tập lớn : an toàn và bảo mật hệ thống thông tin đề tài chữ ký số Elgamal, Báo cáo bài tập lớn : an toàn và bảo mật hệ thống thông tin đề tài chữ ký số Elgamal, code demo ,code demo, Báo cáo bài tập lớn : an toàn và bảo mật hệ thống thông tin đề tài chữ ký số Elgamal, Báo cáo bài tập lớn : an toàn và bảo mật hệ thống thông tin đề tài chữ ký số Elgamal, HUMG

Trang 2

BÁO CÁO BÀI TẬP LỚN:

AN TOÀN & BẢO MẬT HỆ THỐNG

Trang 3

LỜI MỞ ĐẦU 1

Giới thiệu chung về chữ ký số 2

Giới thiệu sơ đồ chữ ký elgamal 3

I Bài toán Logarithm rời rạc trong Zp 3

1 tính chất 1 4

2 Các thuật toán cho bài toán Logarithm rời rạc 5

a Thuật toán 3(thuật toán shanks) 6

4 Độ bảo mật từng bit của các logarithm rời rạc 11

II.Sơ đồ chữ ký số Elgamal 13

1/ Tấn công dạng 1: tìm cách xác định khóa bí mật 16

a/ số ngẫu nhiên k bị lộ 16

b/ Dùng k cho 2 lần ký khác nhau 16

c/ Khóa bí mật a quá nhỏ 17

d/ Số ngẫu nhiên k quá nhỏ 17

2/ Tấn công dạng 2 : giả mạo chữ ký 17

a/ Giả mạo chữ ký không cùng với tài liệu được ký 17

b/ Giả mạo chữ ký cùng với tài liệu được ký 18

b2/ Cách 2 19

III Chuẩn chữ ký số 20

1./Sơ đồ Chuẩn chữ ký số DSS 20

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

b/ Ký số: 21

c/ Kiểm tra chữ ký: 21

Ứng dụng chữ ký số tại Việt Nam 23

Code demo 24

Tài liệu tham khảo 35

Trang 4

Ngày nay trong mọi hoạt động của con người, thông tin đóng một vai trò

quan trọng không thể thiếu Xã hội càng phát triển nhu cầu trao đổi thông tin giữa các thành phần trong xã hội ngày càng lớn Mạng máy tính ra đời đã

mang lại cho con người rất nhiều lợi ích trong việc trao đổi và xử lý thông tin một cách nhanh chóng và chính xác Chính từ những thuận lợi này đã đặt ra

cho chúng ta một câu hỏi, liệu thông tin đi từ nơi gửi đến nơi nhận có đảm bảotuyệt đối an toàn, ai có thể đảm bảm thông tin của ta không bị truy cập bất

hợp pháp Thông tin được lưu giữ, truyền dẫn, cùng sử dụng trên mạng lưới

thông tin công cộng có thể bị nghe trộm, chiếm đoạt, xuyên tạc hoặc phá huỷ dẫn đến sự tổn thất không thể lường được Đặc biệt là đối với những số liệu

của hệ thống ngân hàng, hệ thống thương mại, cơ quan quản lý của chính phủ hoặc thuộc lĩnh vực quân sự được lưu giữ và truyền dẫn trên mạng Nếu như

vì nhân tố an toàn mà thông tin không dám đưa lên mạng thì hiệu suất làm

việc cũng như hiệu suất lợi dụng nguồn dữ liệu đều sẽ bị ảnh hưởng Trước

các yêu cầu cần thiết đó, việc mã hoá thông tin sẽ đảm bảo an toàn cho thông tin tại nơi lưu trữ cũng như khi thông tin được truyền trên mạng

Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thểdẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thốngthông tin của tổ chức Vì vậy an toàn thông tin là nhiệm vụ quan trọng, nặng

nề và khó đoán trước đối với các hệ thống thông tin

Một trong những ứng dụng của an toàn thông tin là chữ ký số Với đặc điểm

là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹ thuật

sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hàng, Kế toán…Vì lý

do đó, nhóm chúng em quyết định nghiên cứu về “Chữ ký số Elgamal”

Trang 5

Giới thiệu chung về chữ ký số

• Thông thường chữ ký viết tay trên các văn bản, trên các tài liệu hay

trên các hợp đồng kinh tế v.v thì được dùng để xác nhận người kí

• Sơ đồ chữ kí ( hay còn gọi là chữ ký số ) là phương pháp ký một bức

điện lưu dưới dạng điện tử Chẳng hạn một bức điện có chữ ký được

truyền trên mạng máy tính

• Một sơ đồ chữ ký số thường chứa hai thành phần: Thuật toán ký và

thuật toán xác minh Người A có thể ký bức điện x dùng thuật toán ký

an toàn Chữ ký Sig(x) nhận được có thể kiểm tra bằng thuật toán xác

minh công khai Ver Khi cho trước cặp (x,y) thuật toán xác minh cho

giá trị TRUE hay FALSE tùy thuộc vào việc chữ ký được xác thực như thế nào

• 4 Với mọi K=(K’,K’’) tồn tại một thuật toán ký SigKS và một

thuật toán kiểm thử 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)

o Ver (x,y) FALSE nếu y # Sig(x)

o Với mọi K  K , hàm SigK và VerK là các hàm thời gian đa thức VerK sẽ là hàm công khai còn SigK là hàmmật Ta gọi Alice là người gửi còn Bob là người nhận Không thể dễ dàng tính toán để giả mạo chữ ký của

Trang 7

Giới thiệu sơ đồ chữ ký elgamal

 Sơ đồ chữ ký elgamal đã từng được giới thiệu vào năm 1985 ở Mỹ Bảncả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 chuẩn chữ ký số Sơ đồ chữ ký Elgamal dựa trên tính khó giải bài toán tìm Logarithm rời rạc trên trường hữu

hạn Trước hết ta hãy làm quen với bài toán Logarithm rời rạc trên

trường hữu hạn Zp

Chúng ta sẽ bắt đầu bằng việc mô tả bài toán này khi thiết lập một trường hữuhạn Zp , p là số nguyê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ó khan cho các phương pháp tấn công đã biết, p phải có ít bnhaats

150 chữ số thập phân(≈ 500 bít) và (p-1) phải có ít nhất một thừa số nguyên tốlớn, tốt nhất p có dạng p= 2q + 1 với q là nguyên tố Số nguyên tố p dạng này gọi là số nguyên tố mạnh ( String – prime) dối với hệ Elgamal nói riêng và

cho những hệ mã dộ an toàn dựa vào tính khó giải của bài toán Logarithm rời rạc nói chung Lợi thế của bài toán Logarithm rời rạc trong xây dựng sơ đồ

chữ ký là khó tìm được các Logarithm rời rạc, xong bài toán ngược lấy lũy

thừa lại có thể tính toán hiệu quả theo luật toán bình phương và nhân Nói

cách khác, lũy thừa theo modulo p là hàm một chiều với các số nguyên tố p

thích hợp

Trang 8

Mét điều hiển nhiên là định nghĩa về logarit nên trên giống hệt như định nghĩa

đã có trong trường số thực, do vậy các tính chất về logarit trên trường số thực cũng sẽ có trong trường hữu hạn, ở đây chúng ta chỉ cần quan tâm đến tính

nhất như thuật toán sang bậc 2 để giải có độ phức tập cỡ:

, hay thuật toán sang trường số để giải có độ phức tạp

cỡ :

Tuy nhiên chúng ta còn thấy một điều hieentr nhiên là với p không lớn lắm thì

Trang 9

Ví dụ:

Cho p =2579, α=2, a=756 Khi đó:

β =2756mod2579=949./

2 Các thuật toán cho bài toán Logarithm rời rạc

Trong phần này ta xem rằng p là mét số nguyên tố, α là một phần tử nguyên

tùy theo modulo p Ta lấy p và α là các ssoos cố định Khi đó bài toán

logarithm rời rạc có thể được phát biểu dưới dạng sau: tìm mét

Aduy nhất 0 ≤ a ≤ p – 2 sao cho αa ≡ β (mod p), với β Zp* cho trước

Rõ ràng là bài toán logarithm rời rạc(DL) có thể có được giải bằng một phép tìm kiếm vét cạn với thời gian cỡ O(p) và không gian cỡ O(1) (bỏ qua thừa sốlogarithm) Bằng cách tính toán trước tất cả các giá trị αa có thể và sắp xếp

các cặp thứ tự (a, αa mod p) có lưu ý tới các tọa độ thứ hai của chúng ta, có

thể giải DL với thời gian cớ O(1) bằng O(p) phép tính toán trước và O(p) bé

nhí thuật toán không tầm thường đầu tiên mà chúng ta sẽ mô tả thuật toán tối

ưu hóa thời gian – bé nhí của Daniel Shanks

Trang 10

a Thuật toán 3(thuật toán shanks)

4 Sắp xếp m cặp thứ tự (I, β α-i mod p) có lưu ý tới các tọa đọ thứ

hai của các cặp được sắp xếp sau này, ta sẽ thu được mét danh sách L2

5 Tìm một cặp (j,y) L1 và một cặp (i, y) ) L2

6 Xác định logαβ = mj + I mod (p-1)

-Nếu cần, các bước 1, 2 có thể tính toán trước

- tiếp theo cần lưu ý là nếu (j, y) ) L1 và (i, y) ) L2

αmj = y = β α-i

Bởi vậy αmj + i = β như mong muốn

Ngược lại, đói với β bát kỳ ta có thể viết:

logαβ = mj +i

trong đó, 0 ≤ j, i ≤ m-1 Vì thế phép tìm kiếm ở bước 5 chắc chắn thành công

Có thể áp dụng thuật toán này chạy với thời gian O(m) và với bé nhí cỡ O(m).Chú ý là bước 5 có thể thực hiện một cách (đồng thời) qua tùng danh sách L1

và L2

Trang 12

Danh sách sẽ được sặp xếp để tạo ra L1.

Danh sách thứ 2 chứa các cặp được sắp (i, 525 x(3i)-1 mod 809), với

0 ≤ j ≤ 28

Trang 13

Danh sách này gồm:

Trang 14

Sau khi sắp xếp danh sách này, ta có L2

Bây giờ nếu xử lý đồng thời qua cả 2 danh sách, ta sẽ tìm được(10,644) trong

L1 và (19,644) trong L2 Bởi vậy ta có thể tính

Log3525= 29x10+19=309

Có thể kiểm tra thấy rằng quả thực 3309 ≡ 525(mod 809)

Trang 15

Bây giờ ta xem xét vấn đề thông tin bộ phận của các Logarithm rời rạc và

xem thử việc tính toán các bít riêng của các logarithm rời rạc là khó hay dễ

Cụ thể, xét bài toaans “ Bít thứ i của logarithm rời rạc” được trịnh bày ở trên Bài toán này được gọi là bài toán về bjt thứ i

Trước tiên , ta sẽ chỉ ra rằng, bít thấp nhất của các logarithm rời rạc rất dễ tínhtính toán nói cách khác, nếu i=1 thì bài toán về bít thứ I có thể giải các thặng

dư bình phương theo modulo p, với p là số nguyên tố

Xét ánh xạ f: Zp*Zp* được định nghĩa như sau:

khi và chỉ khi: p|(w – x) (w+x) | diều này xảy ra khi và chỉ khi

w ≡ ± x mod p Ta rút ra: |f-1(y)| =2 với mọi y QR(p) và bởi vậy:

QR(p)1=(p-1)/2

Trang 16

Ở cuối thuật toán, giá trị xi là các bít biểu diễn nhị phân của Logαβ, nghĩa là:

Trang 17

Giả sử p=19, α =2 và β = 6 Vì trong ví dụ này, các giá trị quá nhỏ nên có thể lập bảng các giá trị của Li(y) và L2(y) vói mọi giá trị y Z19* Các giá trị này được cho trên bảng sau:

Bảng các giá trị của L1 và L2 vói p=19, α =2

Sơ đồ Elgamal được thiết kế vỡi mục đích dành riêng cho chữ ký số, điểm

mạnh 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ã khóa côngkhai Elgamal, ở sơ dồ chữ ký RSA ta chỉ thấy trên cùng một sơ dồ với cùng

mét ố nguyên tố p thì ta chỉ có một chữ kí số Điều này có nghiaxw 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 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ý đó

Trang 18

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

βy * yδ ≡ αay * αk δmod p ≡ α(ay+k δ) mod p ≡ αx mod p

Do δ = (x-ay)k-1 mod(p-1) nên (ay + kδ) ≡ x mod(p-1)

Ví dụ:

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

Trang 19

Định nghĩa tập khóa K={(p,α,a,β): β ≡ αa mod p}

Các giá trị (p,α,β) được công khai, còn giá trị a được giữ bí mật

bài toán căn bản để bảo đảm độ an toàn cho sơ đồ chữ ký Elgamal chính là

bài toán tính logarithm rời rạc Biết khóa cũng khai β ≡ αa mod p Nên có thể xác định khóa bí mật a bằng cách tính logαβ

Trang 20

Khóa bí mật a có thể bị phát hiện, nếu khóa ngẫu nhiên k bị lộ, hoặc dùng k

cho hai lần bất kỳ khác nhau

a/ số ngẫu nhiên k bị lộ

Nếu k bị lộ, kẻ thám mã sẽ tính được khóa bí mật a=(x-kδ)y-1 mod

(p-1) Giải pháp phòng tránh: càn thận trọng trong việc sử dụng số ngẫu

nhiên k, không được ddeer lộ số k được dùng

Trang 21

p’= p−1 d

Khi đó đồng dư thức (1) trở thành: x’ ≡ k δ’(mod p’)

Vì (δ’ , p‘) = 1 nên tính ε = x’*ε +i*p’mod(p-1), với giá trị nào đó, 0≤ i ≤

d-1.Thử với giá trị nào đó, ta tìm được k (điều kiện thử để xác định k là: y= α’

mod p

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

Giải pháp phòng tránh: mỗi lần ký sử dụng một số k khác nhau

d/ Số ngẫu nhiên k quá nhỏ

Tương tự như đối với khóa bí mật a, số ngẫu nhiên k cũng phải bí mật Trong trường hợp các tham số này quá nhỏ thì bằng phương pháp dò tìm đơn giản

người ta cũng có thể tìm được chúng Khi đó, sơ đồ chữ ký sẽ bị mất an toàn Nếu k bị lộ, kẻ thám mã sẽ tính được khóa bí mật a

Giải pháp phòng tránh: chọn số ngẫu nhiên k là những số nguyên lớn, có

kích thước gần số modulo n

2/ Tấn công dạng 2 : giả mạo chữ ký

a/ Giả mạo chữ ký không cùng với tài liệu được ký

+ Tin tặc H cố gắng gải mạo chữ ký trên x mà không hề biết khóa bí mật a

Như vậy, yêu cầu H phải tính được y và δ

 Nếu chọn trước y, thì H phải tính y qua phương tình:

Trang 22

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

 Nếu chọn trước y, δ sau đó tính x, thì tin tặc H phải đói đầu với bài toánlogarithm rời rạc

o Ta có: βyyδ ≡αx= mod p (E2)

Như vậy: x= logααx ≡ logαβyyδ

b/ Giả mạo chữ ký cùng với tài liệu được ký

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

Trang 23

b2/ Cách 2

 Nếu (y, δ )là chữ ký tren tài liệu x có từ trước, thì có thể giả mạo 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, (ky –jδ, p-1)=1 và tính:

Trang 24

Chuẩn chữ ký số (DSS: Digital Signature Standard) được đề xuất năm

1991, là cải biên của sơ đồ chữ ký ElGamal, và được chấp nhận là chuẩn vàonăm 1994 để dùng trong một số lĩnh vực giao dịch ở USA

Thông thường tài liệu số được mã hoá và giải mã 1 lần Nhưng chữ ký lại liên

quan đến pháp luật,chữ ký, có thể phải kiểm thử sau nhiều năm đã ký Do

đó chữ ký phải được bảo vệ cẩn thận.

Số nguyên tố p phải đủ lớn (chẳng hạn dài cỡ 512 bit) để bảo đảm an

toàn, nhiều người đề nghị nó phải dài 1024 bit Tuy nhiên, độ dài chữ ký theo

sơ đồ Elgamal là gấp đôi số bit của p, do đó nếu p dài 512 bit thì độ dài chữ

ký là 1024 bit

Trong ứng dụng dùng thẻ thông minh (Smart card) lại mong muốn có

chữ ký ngắn, nên giải pháp sửa đổi là một mặt dùng p với độ dài từ 512 bit

đến 1024 bit (bội của 64), mặt khác trong chữ ký (, ), các số ,  có độ dài biểu diễn ngắn, ví dụ 160 bit Khi đó chữ ký là 320 bit

Điều này được thực hiện bằng cách dùng nhóm con cyclic Zq* của Zp* thay cho Zp*, do đó mọi tính toán được thực hiện trong Zp*, nhưng thành phần

Trang 25

2/ Ký số: Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật rZ q*.

Chữ ký trên xZp* là Sig k’(x, r) = (, ), trong đó

 = (r mod p) mod q,  = ((x + a *  ) * r-1 mod q

(Chú ý rZ q*, để bảo đảm tồn tại r-1 mod q).

3/ Kiểm tra chữ ký: Với e1 = x * -1 mod q, e2 =  * -1 mod q.

Ver k” (x, , ) = đúng  (e1 * he2 mod p) mod q = 

Ví dụ:

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

Chọn p = 7649, q = 239 là ước nguyên tố của p-1, t = 32.

Tức là p -1 = t * q hay p = t * q + 1 = 32*q + 1 = 32*239 + 1 = 7649.

Chọn g =3 Z7649 là phần tử sinh  = gt mod p = 3 32 mod 7649 = 7098.

Chọn khóa mật a = 85, khóa công khai h = a mod p = 709885 mod 7649 =

5387

2/ Ký số: Dùng 2 khóa ký: a và khóa ngẫu nhiên r = 58 Z q*, r-1 mod q =

136

+ Chữ ký trên x = 1246 là Sig k’(x, r) = (, ) = (115, 87) , trong đó

 = (r mod p) mod q = (709858 mod 7649)mod 239 = 593 mod 239 = 115

 = (x + a *  ) * r-1 mod q = (1246 + 85 * 115) *136 mod 239 = 87

3/ Kiểm tra chữ ký: (, ) = (115, 87) là chữ ký đúng trên x = 1246.

e1 = x* -1 mod q = 1246 * 11 mod q = 83, e2 =  * -1 mod q = 115*11

mod q = 70

Điều kiện kiểm thử đúng ? (e1 * he2 mod p) mod q = ,với -1 = 11.

(709883 *538770 mod 7649) mod 239 = 593 mod 239 = 115 = 

Chú ý

1) Liên quan tới các tính toán cụ thể trong sơ đồ:

+ Chú ý rằng phải có  0 (mod q) để bảo đảm có -1mod q trong điều kiện

kiểm thử (tương đương UCLN(, p-1) = 1) Vì vậy nếu chọn r mà không

Trang 26

+ Độ dài cố định của p là 512 bit Nhiều người muốn p có thể thay đổi lớn

hơn

Vì thế NIST sửa đổi là p có độ dài thay đổi, là bội của 64: từ 512 đến 1024

bit

+ Nếu dùng chữ ký RSA với thành phần kiểm thử chữ ký là nhỏ, thì việc

kiểm thử nhanh hơn việc ký Đối với DSS, ngược lại, việc ký nhanh hơn kiểmthử

sơ đồ chữ ký ít liên quan đến thẻ

Nhưng tình huống đặt ra là một thẻ thông minh có thể sinh ra chữ ký vàcũng có thể kiểm thử chữ ký, do vậy rất khó kết luận ?

NIST trả lời rằng thời gian kiểm thử và sinh chữ ký, cái nào nhanh hơn khôngquan trọng, miễn là đủ nhanh

Trang 27

Hiện nay, công nghệ chữ ký số tại Việt Nam có thể sử dụng trong các giaodịch để mua bán hàng trực tuyến, đầu tư chứng khoán trực tuyến Ngoài ra,

Bộ Tài chính cũng đã áp dụng chữ ký số vào kê khai, nộp thuế trực tuyến qua mạng internet và các thủ tục hài quan điện tử như khai báo hải quan và thong quan trực tuyến mà không phải in các tờ khai, đóng dấu của công ty và chạy

đến cơ quan thuế xếp hàng và ngồi đợi để nộp tờ khai này Trong tương lai,

chữ ký số có thể sử dụng với các ứng dụng chính phủ điện tử bởi cơ quan nhà nước Sắp tới, sẽ làm việc với người dân hoàn toàn thông qua các dịch vụ

công trực tuyến và một cửa điện tử Khi cần làm thủ tục hành chính hay một

sự xác nhân gì của cơ quan nhà nước, người dân chỉ cần ngồi ở nhà khai báo

mẫu đơn và ký số để gửi là xong

Ngày đăng: 23/06/2021, 16:22

TỪ KHÓA LIÊN QUAN

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

w