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

Tìm hiểu về chữ ký số sử dụng giải thuật RSA Thạc sĩ PTIT

20 1,2K 2

Đ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 20
Dung lượng 637,14 KB

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

Nội dung

Tuy nhiên, ngày nay trong lĩnh vực hợp đồng điện tử, một trong những thử thách chính là đạt được một cơ chế khác thay thế chữ ký bằng tay, nhưng nó phải thực hiện đúng chức năng như chữ

Trang 1

MỤC LỤC

I- TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ VÀ ỨNG DỤNG 1

1 Chữ ký điện tử 1

2 Ứng dụng chữ ký điện tử 3

-II- THUẬT TOÁN RSA 6

1 Khởi tạo khoá RSA 6

2 Sử dụng RSA 7

3 Cơ sở của RSA 7

III ỨNG DỤNG THUẬT TOÁN RSA TRONG CHỮ KÝ ĐIỆN TỬ 8

IV BẢO MẬT TRONG RSA 9

1 Các cách tấn công khóa RSA: 10

2 Các vấn đề an ninh khác: 12

-V- XÂY DỰNG ỨNG DỤNG 13

1 Giới thiệu chính: 13

2 Hướng dẫn sử dụng chương trình: 13

3 Trình bày các thuật toán trong lập trình: 17

Trang 2

-LỜI MỞ ĐẦU

Ngày nay với sự phát triển bùng nổ của công nghệ thông tin, hầu hết các thông tin của doanh nghiệp như chiến lược kinh doanh, các thông tin về khách hàng, nhà cung cấp, tài chính, mức lương nhân viên,… đều được lưu trữ trên hệ thống máy tính Ngoài ra, cùng với sự phát triển yêu cầu doanh nghiệp cần phải chia sẻ thông tin của mình cho nhiều đối tượng khác nhau qua Internet Đây chính

là cơ hội để kẻ gian đánh cắp thông tin của doanh nghiệp

Việc mất mát, rò rỉ thông tin có thể ảnh hưởng nghiêm trọng đến tài chính, danh tiếng của công ty và quan hệ với khách hà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ống thông tin của doanh nghiệp Vì vậy an toàn và bảo mật thông tin là nhiệm vụ hết sức cấp bách hiện nay

Bởi vậy mà nhóm 3 đã tiếp cận và tìm hiểu đề tài: “Tìm hiểu về giải thuật

tạo chữ ký số sử dụng RSA” Tuy nhiên, do kiến thức còn hạn chế, đề tài không

tránh khỏi những thiếu sót Rất mong thầy giáo và các bạn đóng góp để đề tài của nhóm được hoàn thiện hơn

Nhóm thực hiện

Trang 3

I- TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ VÀ ỨNG DỤNG

1 Chữ ký điện tử

1.1 Đặt vấn đề

Kể từ khi con người phát minh ra chữ viết, các chữ ký thường luôn được sử dụng hàng ngày, chẳng hạn như ký một biên nhận trên một bức thư nhận tiền từ ngân hàng, ký hợp đồng hay một văn bản bất kỳ nào đó Chữ ký viết tay thông thường trên tài liệu thường được dùng để xác định người ký nó

Tuy nhiên, ngày nay trong lĩnh vực hợp đồng điện tử, một trong những thử thách chính là đạt được một cơ chế khác thay thế chữ ký bằng tay, nhưng nó phải thực hiện đúng chức năng như chữ ký bằng tay, cụ thể là: Đảm bảo tính đồng nhất của các bên tham gia ký kết hợp đồng, ràng buộc mỗi nhà thầu về cam kết mục đích của họ và cuối cùng là nội dung của hợp đồng

Giải pháp cho vấn đề này chính là chữ ký điện tử Nó là biện pháp sử dụng các phương tiện điện tử ràng buộc các nhà thầu bằng hợp đồng hay xác nhận tài liệu, vì vậy đảm bảo được các chức năng như chữ ký bằng tay

Trang 4

Trước hết, chúng ta sẽ thảo luận một vài điểm khác biệt cơ bản giữa chữ ký thông thường và chữ ký điện tử Đầu tiên là vấn đề ký một tài liệu Với chữ ký thông thường nó là một phần vật lý của tài liệu Tuy nhiên, một chữ ký điện tử không gắn theo kiểu vật lý vào bức điện nên thuật toán được dùng phải là “không nhìn thấy” theo cách nào đó trên bức điện

Thứ hai là vấn đề kiểm tra Chữ ký thông thường được kiểm tra bằng cách so sánh nó với các chữ ký xác thực khác Ví dụ, ai đó ký một tấm séc để mua hàng, người bán sẽ so sánh chữ ký trên mảnh giấy đó với chữ ký nằm ở mặt sau thẻ tín dụng để kiểm tra Mặt khác, chữ ký số có thể kiểm tra bằng một thuật toán kiểm tra một cách công khai Như vậy, bất kỳ ai cũng có thể kiểm tra được chữ ký điện tử Việc sử dụng một sơ đồ ký an toàn có thể ngăn chặn được khả năng giả mạo

Sự khác biệt cơ bản giữa chữ ký điện tử và chữ ký thông thường là ở chỗ: một bản copy tài liệu có chữ ký được đồng nhất với bản gốc Nói cách khác, tài liệu có chữ ký trên giấy thường có thể khác biệt với bản gốc điều này để ngăn chặn một bức điện được ký khỏi bị dùng lại

1.2 Khái niệm Chữ ký điện tử

Chữ ký điện tử (tiếng Anh: electronic signature) là thông tin đi kèm theo 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ý điện tử được sử dụng trong các giao dịch điện tử Xuất phát từ thực tế,

Trang 5

Một số định nghĩa pháp lý

Nhiều luật được ban hành trên thế giới công nhận giá trị pháp lý của chữ ký điện tử nhằm thúc đẩy các giao dịch điện tử xuyên quốc gia

Luật Giao dịch điện tử (Việt Nam), điều 4 định nghĩa:

(1) Chứng thư điện tử là thông điệp dữ liệu do tổ chức cung cấp dịch vụ chứng thực chữ ký điện tử phát hành nhằm xác nhận cơ quan, tổ chức, cá nhân được chứng thực là người ký chữ ký điện tử

(2) Chứng thực chữ ký điện tử là việc xác nhận cơ quan, tổ chức, cá nhân được chứng thực là người ký chữ ký điện tử

(5) Dữ liệu là thông tin dưới dạng ký hiệu, chữ viết, chữ số, hình ảnh, âm thanh hoặc dạng tương tự

(12) Thông điệp dữ liệu là thông tin được tạo ra, được gửi đi, được nhận và được lưu trữ bằng phương tiện điện tử

Bộ luật ESIGN (Hoa Kỳ), điều 106 định nghĩa:

(2) Điện tử (electronic)- chỉ các công nghệ liên quan tới điện, số, từ, không

dây, quang, điện từ hoặc các khả năng tương tự

(4) Văn bản điện tử (electronic record)- Các hợp đồng hoặc các văn bản

khác được tạo ra, lưu trữ, trao đổi dưới dạng điện tử

(5) Chữ ký điện tử (electronic signature)- Các tín hiệu âm thanh, ký hiệu, quá trình gắn (vật lý hoặc logic) với hợp đồng hay văn bản và được thực hiện bởi

người muốn ký vào hợp đồng hay văn bản đó

Bộ luật GPEA (Hoa Kỳ), điều 1710 định nghĩa

(1) Chữ ký điện tử (electronic signature) - là cách thức ký các văn bản điện

tử đảm bảo:

(A) Nhận dạng và xác thực cá nhân đã tạo ra văn bản

(B) Chỉ ra sự chấp thuận của người ký đối với nội dung trong văn bản

Trang 6

2 Ứng dụng chữ ký điện tử

Chữ ký điện tử chỉ dùng được trong môi trường số, giao dịch điện tử với máy tính và mạng Internet Trong môi trường số không thể dùng chữ ký tay được, tuy nhiên lại có rất nhiều ứng dụng đòi hỏi phải cần đến một cơ chế ký và xác thực người dùng như chữ ký tay, các công nghệ mã hóa và chữ ký số ra đời để giúp giải quyết vấn đề này Như vậy chữ ký điện tử có thể sử dụng trong tất cả các trường hợp giao dịch cần đến ký tay nhưng lại phải thực hiện trong môi trường số

- Bạn có thể sử dụng chữ ký điện tử trong các giao dịch thư điện tử, ký vào các email để các đối tác, khách hàng của bạn biết có phải bạn là người gửi thư không

- Bạn có thể sử dụng dụng chữ ký điện tử này để mua bán hàng trực tuyến, đầu

tư chứng khoán trực tuyến, có thể chuyển tiền ngân hàng, thanh toán trực tuyến mà không sợ bị đánh cắp tiền như với các tài khoản VISA, Master

- Bạn có thể sử dụng với các ứng dụng chính phủ điện tử, các cơ quan nhà nước trong tương lai sẽ làm việc với nhân dân hoàn toàn trực tuyến và một cửa Khi cần làm thủ tục hành chính hay xin một xác nhận của cơ quan nhà nước bạn chỉ cần ngồi ở nhà khai vào mẫu và ký số vào để gửi là xong

- Bạn có thể sử dụng để kê khai nộp thuế trực tuyến, khai báo hải quan và thông quan trực tuyến mà không phải in các tờ kê khai, đóng dấu đỏ của công ty và chạy

xe ôm đến cơ quan thuế để chen lấn, xếp hàng và ngồi đợi vài tiếng đồng hồ có khi đến cả ngày để nộp tờ khai này

- Bạn có thể sử dụng chữ ký điện tử với các ứng dụng quản lý của doanh nghiệp của mình với mức độ tin cậy, bảo mật và xác thực cao hơn rất nhiều

- Bạn có thể dùng chữ ký điện tử để ký hợp đồng làm ăn với các đối tác hoàn toàn trực tuyến trên mạng mà không cần ngồi trực tiếp với nhau, chỉ cần ký vào file hợp đồng và gửi qua email

Trang 7

Chữ ký điện tử tương đương với chữ ký tay nên nó có giá trị sử dụng trong các ứng dụng giao dịch điện tử cần tính pháp lý cao Tuy nhiên ngoài việc là một phương tiện điện tử được pháp luật thừa nhận về tính pháp lý, chữ ký điện tử còn

là một công nghệ mã hóa và xác thực rất mạnh, nó có thể giúp đảm bảo an toàn, bảo mật cao cho các giao dịch trực tuyến, nhất là các giao dịch chứa các thông tin liên quan đến tài chính, chuyển tiền chẳng hạn

Những tiện ích của chữ ký điện tử:

- Bằng cách sử dụng chữ ký điện tử, thông tin và dữ liệu được gửi bằng điện tử được bảo vệ tốt

- Chữ ký điện tử cho phép nội dung của thông điệp được gửi là duy nhất, không thể huỷ bỏ và thay đổi

- Nó tạo điều kiện thuận lợi cho việc nhận dạng cả hai người gửi và người nhận

Trang 8

Mặt hạn chế:

Hệ thống này tự nó có thể hỏng, điều này có nghĩa là nó rất cần sử dụng một hệt thống thích hợp để phân loại các mật mã riêng

Hệ thống phân loại cần được bảo vệ một cách hợp lý và quản lý bởi một cá nhân hay tập thể được uỷ quyền tuyệt đối để làm việc đó

RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở MIT (Trường Đại học Công nghệ Massachusetts) vào năm 1977 RSA

I. là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay Nó dựa trên các phép toán lũy thừa trong trường hữu hạn các số nguyên theo modulo nguyên tố Cụ thể, mã hoá hay giải mã là các phép toán luỹ thừa theo modulo số rất lớn Việc thám mã, tức là tìm khoá riêng khi biết khoá công khai, dựa trên bài toán khó là phân tích một số rất lớn đó ra thừa số nguyên tố Nếu không có thông tin gì, thì ta phải lần lượt kiểm tra tính chia hết của số đó cho tất cả các số nguyên tố nhỏ hơn căn của nó Đây là việc làm không khả thi

Người ta chứng minh được rằng, phép lũy thừa cần O((log n)3) phép toán, nên có thể coi lũy thừa là bài toán dễ

II. Cần chú ý rằng ở đây ta sử dụng

III. các số rất lớn khoảng 1024 bit, tức là cỡ 10350 Tính an toàn dựa vào

độ khó của bài toán phân tích ra thừa số các số lớn Bài toán phân tích ra thừa số yêu cầu O(e log n log log n) phép toán, đây là bài toán khó

V.

Trang 9

1 Khởi tạo khoá RSA

 Mỗi người sử dụng tạo một cặp khoá công khai – riêng như sau:

 Chọn ngẫu nhiên 2 số nguyên tố lớn p và q

 Tính số làm modulo của hệ thống: N = p.q

o Ta đã biết Ф(N) = (p-1)(q-1)

o Và có thể dùng Định lý Trung Hoa để giảm bớt tính toán

 Chọn ngẫu nhiên khoá mã e

o Trong đó 1< e < ФN), gcd(e,Ф(N))=1

 Giải phương trình sau để tìm khoá giải mã d sao cho:

e.d=1 mod Ф(N) với 0 ≤ d ≤ Ф(N)

 In khoá mã công khai KU={e,N}

 Giữ khoá riêng bí mật KR={d,p,q}

2 Sử dụng RSA

 Để mã hoá mẩu tin, người gửi:

o Lấy khoá công khai của người nhận KU={e,N}

o Tính C = Me mod N, trong đó 0 ≤ M < N

Trang 10

 Để giải mã hoá bản mã, người sở hữu nhận:

o Sử dụng khóa riêng KR = {d,p,q}

o Tính M = Cd mod N

 Lưu ý rằng bản tin M < N, do đó khi cần chia khối bản rõ

3 Cơ sở của RSA

 Theo Định lý Ole

o aФ(n)mod N = 1 trong đó gcd(a,N)=1

o Ta có N = p.q

o Ф(N) = (p-1)(q-1)

o e.d = 1 mod Ф(N)

o e.d = 1 + k.Ф(N) đối với một giá trị k nào đó

Suy ra

o Cd = (Me)d = M1+k.Ф(N) = M1.(MФ(N))k suy ra

o Cd

modN = M1.(1)k modN = M1 modN = M modN

Trang 11

III- ỨNG DỤNG THUẬT TOÁN RSA TRONG CHỮ KÝ ĐIỆN TỬ

Dựa vào ưu điểm của hệ mã RSA, nếu thiết lập được sơ đồ chữ ký dựa trên bài toán phân tích ra thừa số nguyên tố thì độ an toàn của chữ ký sẽ rất cao Việc thiết lập sơ đồ xác thực chữ ký RSA rất đơn giản, ta chỉ cần đảo ngược hàm mã hoá và giải mã Sau đây là sơ đồ chữ ký RSA

Cho n = p*q, trong đó p, q là các số nguyên tố Đặt P = A = Zn và định nghĩa:

K = {(n, p, q, a, b): n=p*q, p và q là các số nguyên tố, ab ≡ 1 (mod (n))} Các giá trị n và b là công khai; còn p, q, a là bí mật

Với K = (n, p, q, a, b), ta xác định:

sigK(x) = xa mod n

(sigK(x):thuật toán ký, verK(x,y) :thuật toán xác minh )

Thông thường, chữ ký được kết hợp với hàm mã hoá công khai Giả sử A muốn gửi một bức điện đã được mã hoá và đã được ký đến cho B Với bản rõ x cho trước, A sẽ tính toán chữ ký của mình y = sigA(x) và sau đó mã hoá cả x và y

sử dụng khoá công khai eB của B, kết quả nhận được là z = eB(x, y) Bản mã z sẽ được gửi tới B, khi B nhận được z, đầu tiên anh ta giải mã với hàm giải mã dB của mình để nhận được (x, y) Sau đó anh ta dùng hàm xác minh công khai của A để kiểm tra xem verA(x,y) = TRUE hay không

Song nếu đầu tiên A mã hoá x , rồi sau đó mới ký lên bản mã nhận được thì sao? Khi đó, A sẽ tính:

y = sigA(eB(x))

A sẽ truyền cặp (z, y) tới B, B sẽ giải mã z và nhận được x, sau đó xác minh chữ

ký y trên x nhờ dùng verA Một vấn đề nảy sinh nếu A truyền (x, y) kiểu này thì một người thứ ba C có thể thay chữ ký y của A bằng chữ ký của chính mình:

Trang 12

y‟ = sigC(eB(x))

Chú ý rằng, C có thể ký lên bản mã eB(x) ngay cả khi anh ta không biết bản

rõ x Khi đó nếu C truyền (z, y‟) đến B, chữ ký của C được B xác minh bằng verC

và do đó, B cho rằng bản rõ x xuất phát từ C Do khó khăn này, hầu hết người sử dụng được khuyến nghị “ký trước khi mã”

- Về mặt lý thuyết RSA có thể bẻ khóa được, do có hai thành phần là public (n,e) bài toán bẻ khóa RSA trở về bài toán tìm hai số nguyên tố từ một tích cho trước (n)

- Khóa công cộng dễ tấn công hơn khóa bí mật, do một thành phần khóa đã được truyền tự do trên mạng Việc công phá hoàn toàn có thể thực hiện được với điều kiện có đủ tài nguyên và thời gian xử lý

- Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho m e =c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã.

Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n ra thừa

số nguyên tố Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ bí mật

d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán Nếu

kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1) và qua đó xác định d từ e Chưa có một phương

pháp nào được tìm ra trên máy tính để giải bài toán này trong thời gian đa thức

- Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên

tố có độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá Với khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong

Trang 13

phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm có sẵn Nếu n

có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999 Một thiết bị lý thuyết có tên là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu hỏi về độ an toàn của khóa 1024 bít Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít

- Năm 1993, Peter Shor công bố thuật toán Shor chỉ ra rằng: máy tính lượng tử

có thể giải bài toán phân tích ra thừa số trong thời gian đa thức Tuy nhiên, máy tính lượng tử vẫn chưa thể phát triển được tới mức độ này trong nhiều năm nữa

- Gần đây, các nhà khoa học thuộc Đại học Michigan đã công bố phát hiện một

kẽ hở trong hệ thống mật mã hoá RSA Cách phá vỡ hệ thống, lấy khoá bí mật RSA 1024 bit chỉ trong vài ngày thay vì vài năm nếu tấn công theo cách thông thường - tấn công bằng brute force Các nhà khoa học tạo một điện thế lớn để gây lỗi hệ thống, từ đó giúp tìm ra khoá bí mật Việc tấn công được thực hiện trên một FPGA Báo cáo được trình bày tại hội nghị DATE 2010 diễn ra tại Dresden, Đức tháng 3 năm 2010

1 1 Các cách tấn công khóa RSA:

1 Phương pháp sử dụng ∅(n):

- Giả sử người tấn công biết được giá trị f(n) Khi đó việc xác định giá trị p, q

được đưa về việc giải hai phương trình sau:

n = p × q

- Thay q = n/p, ta được phương trình bậc hai :

∅ (n)=( p−1) (q−1)

p2

- p, q chính là hai nghiệm của phương trình bậc hai này Tuy nhiên vấn đề phát

hiện được giá trị ∅(n) còn khó hơn việc xác định hai thừa số nguyên tố của n

Ngày đăng: 07/12/2016, 20:57

TỪ KHÓA LIÊN QUAN

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

w