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

NGHIÊN CỨU HỆ MẬT RSA VỚI SỐ MŨ GIẢI MÃ LỚN VÀ ỨNG DỤNG CHO CHỮ KÝ SỐ

26 637 1

Đ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 26
Dung lượng 720,94 KB

Nội dung

Việc sử dụng chữ ký số ngày càng có ứng dụng nhiều trong thực tế, không chỉ ứng dụng trong nghành công nghệ thông tin, nghành mật mã mà còn được áp dụng trong một số lĩnh vực khác như tr

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 2

Luận văn được hoàn thành tại:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS Nguyễn Khắc Lịch

Phản biện 1: ……… Phản biện 2: ………

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông

Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:

- Thư viện của Học viện Công nghệ Bưu chính Viễn thông

HÀ NỘI - 2013

Trang 3

MỞ ĐẦU

1 Lý do chọn đề tài

Trong mật mã vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong 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 được vấn đề xác thực người ta đưa ra một cách vừa đơn giản vừa hiệu quả là sử dụng chữ ký

số Việc sử dụng chữ ký số ngày càng có ứng dụng nhiều trong thực tế, không chỉ ứng dụng trong nghành công nghệ thông tin, nghành mật mã mà còn được áp dụng trong một số lĩnh vực khác như trong lĩnh vực ngân hàng để xác thực người gửi, người nhận, lĩnh vực viễn thông để sử dụng các thẻ thông minh

RSA thường được sử dụng trong các ứng dụng mà vấn đề bảo mật được ưu tiên hàng đầu Bên cạnh đó RSA cũng được các nhóm phân tích nhằm tìm ra các mức không an toàn của nó Các phân tích này chủ yếu là minh họa cho các mối nguy hiểm của việc sử dụng RSA không đúng cách Thật vậy an toàn khi sử dụng RSA là một nhiệm vụ không hề tầm thường Một cách tấn công cổ điển đến RSA là chỉ ra rằng hệ mật không an toàn nếu d < n1/4(d là số mũ giải mã) Trong nhữ năm gần đây các nhà nghiên cứu đã chỉ ra rằng hệ RSA sẽ không an toàn nếu số mũ giải mã có kích thước ngắn và trong tấn công Boneh-Durffe đã chỉ

ra rằng hệ mật thực sự không an toàn nếu số mũ giải mã d < n 0,292 Vậy để RSA an toàn thì

ta phải có số mũ giải mã d càng lớn càng tốt mặc dù quá tình giải mã sẽ chậm hơn

Làm thế nào để có được d lớn? ta biết trong RSA để mã hóa người ta sẽ chọn ngẫu nhiên p, q là hai số nguyên tố lớn phân biệt; xác định modulus n = p.q ; tính φ(n)= (p-1)(q-1) rồi thông qua các tham số đó tính e ( thường là chọn e nhỏ để quá trình mã hóa đơn giản); sau đó tính d theo công thức de = 1 + k.φ(n)và thường e nhỏ thì d có được cũng nhỏ Muốn tìm được d lớn người ta làm ngược lại đó là chọn e, tìm p,q thỏa mãn điều kiện đủ nào đó sao cho với cách này ta sẽ có được d có kích thước gần bằng modulus n

Luận văn sẽ nghiên cứu về hệ mật RSA với số mũ giải mã lớn và ứng dụng cho chữ

ký số để chữ ký số an toàn và bảo mật hơn

2 Mục đích nghiên cứu

Phân tích tính an toàn của hệ mật RSA Đưa ra một giải pháp nhằm tăng tính an toàn cho chữ ký số RSA đó là : chọn số mũ giải mã lớn và ứng dụng vào chữ ký số

Trang 4

3 Đối tượng và phạm vi nhiên cứu

- Hệ mật RSA là đối tượng nghiên cứu chính của đề tài nhằm phát hiện các phương pháp tấn công , bẻ gẫy RSA ; qua đó ứng dụng thử nghiệm trên chữ ký số RSA với thuật toán chọn số mũ giải mã lớn

- Phạm vi nghiên cứu: đề tài nghiên cứu cách ngăn ngừa một kiểu tấn công trong trường hợp sử dụng số mũ giải mã d nhỏ Sau đó xây dựng và cài đặt thật toán thử nghiệm trên chữ ký số giúp tăng tính an toàn cho chứ ký số RSA

4 Giả thiết khoa học

Cài đặt thuật toán thành công sẽ cho ta được số mũ giải mã lớn; điều này có thể chống lại các cách tấn công của M.Wiener[8] và Boneh Durfee[3] và làm tăng tính an toàn cho hệ mật RSA và chữ ký số RSA

5 Phạm vi đề tài

- Nghiên cứu cơ chế hoạt động của hệ mật RSA

- Các cách tấn công bẻ gẫy RSA

- Xây dựng, cài đặt thuật toán có số mũ giải mã lớn nhằm nâng cao an toàn cho chữ

ký số RSA

6 Phương pháp nghiên cứu

- Phân tích thuật toán mã hóa RSA Tìm hiểu các cách tấn công RSA Từ đó lựa chọn giải pháp nhằm tăng tính an toàn cho chữ ký số RSA

- Kết hợp với toán học và lý thuyết tính toán chỉ ra giải pháp lựa chọn là đúng đắn

- Thu thập các tài liệu, các bài báo trên tạp chí khoa học trong nước, nước ngoài, và các tài liệu trên mạng internet có liên quan đến nội dung nghiên cứu

- Tham khảo, vận dụng và kế thừa các thuật toán, mã đã có

Trang 5

Các nội dung chính trình bày:

Chương 1: TỔNG QUAN VỀ LÝ THUYẾT MẬT MÃ

Ở chương này luận văn sẽ đi tìm hiểu về khái niệm mật mã, cơ sở toán học của mật

Chương 2: HỆ MẬT KHÓA CÔNG KHAI RSA

Ở chương này luận văn sẽ tìm hiểu và nghiên cứu hệ mật RSA, các khả năng tấn công

và bẻ gẫy RSA, thuật toán RSA với số mũ giải mã lớn

Chương 3: THỬ NGHIỆM CHỮ KÝ SỐ RSA VỚI SỐ MŨ GIẢI MÃ LỚN

Trong chương này sẽ giới thiệu về chữ ký số và áp dụng lý thuyết đã tìm hiểu ở các chương trước để xây dựng chữ ký số RSA với số mũ giải mã lớn

KẾT LUẬN VÀ KIẾN NGHỊ

Tổng kết các kết quả đã đạt được và các mong muốn, kiến nghị để phát triển hệ thống

Trang 6

CHƯƠNG 1: TỔNG QUAN VỀ LÝ THUYẾT MẬT MÃ

1.1 Các khái niệm cơ bản

Trong lý thuyết mật mã có một số thuật ngữ cơ bản sau:

Bản rõ (PlainText): là nội dung của thông điệp cần gửi đi yêu cầu được đảm bảo an

toàn

Bản mã (CipherText): là thông điệp gửi đi được mã hóa

Mã hóa (Encryption): quá trình chuyển đổi thông tin từ bản rõ sang bản mã Trong

quá trình này thông tin trong bản rõ sẽ được ẩn đi và do đó bất kỹ một người nào đọc thông

điệp này cũng không hiểu được trừ trường hợp người đó có thể giải mã (PlainText

CipherText)

Giải mã (Decryption): là quá tình giải mã để lấy lại thông tin ban đầu, ngược với quá

trình mã hóa (CipherText PlainText)

Trong luận văn này có sử dụng thêm các kí hiệu sau:

A, B: Hai người muốn trao đổi thông tin

Mm: Kẻ thù muốn lấy cắp thông tin

Hệ mật hiện đại cần phải đáp ứng được những yêu cầu sau:

- Tính bảo mật (Confidentiality): đảm bảo dữ liệu được truyền đi một cách an toàn và

không bị lộ nếu như ai đó cố tình muốn có được thông điệp gốc ban đầu Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu

- Tính xác thực (Authentication): giúp cho người nhận thông điệp các định được chắc

chắn thông điệp mà họ nhận là thông điệp gốc ban đầu Kẻ giả mạo không thể giả dạng một người khác hay nói cách khác không thể mạo danh để gửi thông điệp Người nhận có khả năng kiểm tra nguồn gốc thông điệp mà họ nhận được

Trang 7

- Tính toàn vẹn (Integrity): người nhận thông điệp có thể kiểm tra thông điệp không

bị thay đổi trong quá trình truyền đi Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban đầu bằng dữ liệu giả mạo

- Tính không thể chối bỏ (Non – repudation): người gửi, người nhận không thể chối bỏ

sau khi đã gửi hoặc nhận thông điệp

1.2 Phân loại các hệ mật mã

Công nghệ thông tin phát triển, việc sử dụng máy tính gia tăng cùng với tốc độ phát triển mạnh mẽ của Internet càng làm tăng nguy cơ bị đánh cắp các thông tin độc quyền Với mối đe dọa đó có nhiều biện pháp để đối phó song mã hóa là một phương pháp chính để có thể bảo vệ các giá trị của thông tin điện tử Có thể nói mã hóa là công cụ tự động, quan trọng nhất cho an ninh mạng và truyền thông Có hai hình thức mã hóa được sử dụng phổ

biến là mã hóa đối xứng (symmetric – key cryptography) và mã hóa bất đối xứng (asymmetric key cryptography)

Định nghĩa mã hóa bất đối xứng: là hệ mật mã bao gồm một tập hợp các phép biến

đổi mã hóa {Ee} và một tập hợp các phép biến đổi giải mã {Dd} được gọi là mật mã khóa công khai hoặc mật mã bất đối xứng nếu với mỗi cặp khóa (e, d) trong đó khóa mã hóa e được gọi là khóa công khai (có giá trị mà ai cũng biết), khóa giải mã d được gọi là khóa riêng hay khóa bí mật Hệ mật mã này phải đảm bảo an toàn để không có khả năng tính được d từ e

Nguyên tắc hoạt động: Người nhận B sinh ra cặp khóa gồm: khóa công khai Kp và khóa bí mật Kr Sau đó B sẽ gửi Kp cho A và khóa này được công khai ai cũng có thể biết A

sẽ dùng Kp để mã hóa thông điệp và gửi thông điệp đã mã hóa cho B Lúc này, B sẽ cùng Kr

để giải mã thông điệp mà A gửi

Trang 8

1.3 Một số khái niệm toán học

Trong phần này luận văn trình bày lại các lý thuyết và kết quả cơ bản nhất của lí thuyết số có liên quan đến mật mã

1.3.2 Số nguyên tố và nguyên tố cùng nhau

Số nguyên tố là số nguyên lớn hơn 1, không chia hết cho số nguyên dương nào ngoài

1.3.4 Thuật toán Euclid và Euclid mở rộng

Thuật toán Euclid như sau:

Output: gcd (a, b)

-

1 While b≠0 do

r ←a mod b, a ←b, b ←r

Trang 9

2 return (a)

Thuật toán Euclid mở rộng

Output: gcd(a,b) và 2 số nguyên x, y thỏa mãn ax + by = d

Thuật toán Euclid mở rộng có độ phức tạp là O((lg n)2) phép toán bit

1.3.5 Các phép toán cơ bản trong không gian Modulo

Toán tử modulo còn được gọi là toán tử mod; a mod n là phần dư của a chia n được

kí hiệu r = a mod n, nói cách khác a = q*n + r trong đó q là một số nguyên, r thuộc tập các

số nguyên {0, 1, 2, ……, n-1}

Định nghĩa đồng dư:

Cho a và b là các số nguyên, a được gọi là đồng dư với b theo modulo n, ký hiệu là a

≡ b (mod n) nếu a-b = k*n với k là số nguyên bất kỳ (hay a-b chia hết cho n)

1.3.6 Thặng dư bậc hai

Định nghĩa 1: Cho a ∈ Zn*, a được gọi là thặng dư bậc hai modulo n nếu tồn tại một

số x ∈ Zn* thỏa mãn x2 ≡ a (mod n) Nếu không tồn tại một số x như vậy thì a được gọi là không thặng dư bậc hai modulo n Tập tất cả các giá trị thặng dư bậc hai modulo n được kí hiệu Qn và tập tất cả các giá trị không thặng dư bậc hai modulo n được kí hiệu Q n.

1.3.7 Các thuật toán trong Zn

Thuật toán tính nghịch đảo nhân trong Z n [9]:

Trang 10

-

1 Sử dụng thuật toán Euclid mở rộng để tìm x, y thỏa mãn d = ax + ny trong đó d = gcd (a,n)

2 Nếu d > 1 thì a-1 mod n không tồn tại Ngược lại, return (x)

Thuật toán bình phương và nhân để tích lũy thừa trong Z n [9]

1.4.1 Khái niệm cơ bản

Định nghĩa 1: Kích thước đầu vào là số lượng bit cần thiết dùng để biểu diễn dữ liệu đầu

vào

Định nghĩa 2: Thời gian thực hiện thuật toán trên dữ liệu đầu vào là số lượng các phép toán

cơ bản hoặc “các bước” được thực hiện

1.4.2 Kí hiệu tiệm cận

Một số định nghĩa:

(i) f(n)= O (g(n)) nếu tồn tại một hằng số c dương và một số nguyên dương n0 thỏa mãn 0 ≤ f(n)≤ c.g(n)với mọi n ≥ n0.

Trang 11

(ii) Một thuật toán được gọi là có độ phức tạp đa thức, hoặc có thời gian đa thức, nếu

số các phép tính cần thiết khi thực hiện thuật toán không vượt quá O(logkn), trong đó n là độ lớn cảu đầu vào, và k là số nguyên dương nào đó

Nói cách khác, nếu đầu vào là số d-bit thì thời gian thực hiện thuật toán là O(dk), tức

là tương đương với một đa thức bậc k

(iii) Các thuật toán với thời gian O(nα) với α > 0 , được gọi là thuật toán với độ phức tạp mũ hoặc thời gian mũ Cũng có thuật toán có độ phức tạp là trung gian giữa đa thức và

mũ ta thường gọi là thuật toán dưới mũ

Trang 12

CHƯƠNG 2: HỆ MẬT MÃ KHÓA CÔNG KHAI RSA

2.1 Hệ mật RSA

Độ an toàn của RSA dựa trên hai bài toán lớn:

1 Bài toán phân tích ra thừa số nguyên tố của các nguyên tố lớn ( The integer Factorization Problem (IFP)):

“ Cho trước một nguyên tố n ∈ N, tìm số các nguyên tố Pj, j = 1, 2, …, r ∈ N, với P1

< P2 <…< Pr thỏa mãn n =

1

j

r e j j

p

=

∏ , trong đó ej ≥ 1”

Bảng sau đây chỉ ra khoảng thời gian cần thiết để phân tích một số nguyên n ra thừa

số nguyên tố bằng thuật toán tốt nhất hiện nay; ta xem máy tính được sử dụng tốc độ khoảng 1 triệu phép tính/giây được mô tả trong [9] như sau:

Số chữ số thập phân Số phép tính bit Thời gian

Bảng 2.1: Bảng thời gian để phân tích số n ra thừa số nguyên tố

2 Bài toán RSA: cho số nguyên dương n, n = p*q với p, q là các số nguyên tố

phân biệt, cho trước một số nguyên c và e sao cho số nguyên e thỏa mãn gcd(e, (p - 1)*(q - 1)) = 1 tìm một số nguyên m sao cho me ≡ c ( mod n)

2.1.1 Tạo khóa cho hệ mật RSA

Mỗi người sử dụng đều có thể tạo ra một khóa RSA công khai và một khóa bí mật tương ứng theo các bước sau:

1 Tạo 2 số nguyên tố lớn p và q ngẫu nhiên, có kích thước như nhau

2 Tính n = p*q và φ = (p-1)*(q-1)

3 Chọn ngẫu nhiên một nguyên tố e, 1< e < φ, thỏa mãn gcd(e,φ) = 1

Trang 13

4 Sử dụng thuật toán Euclid mở rộng để tính số nguyên d duy nhất, 1 < d < φ thỏa

mãn ed ≡ 1(mod φ)

5 Khi đó căp khóa công khai là(n,e) và khóa bí mật là d

Số nguyên e và d được tạo ra trong thuật toán trên được gọi là số mũ mã hóa và số

mũ giải mã còn n được gọi là modulus của RSA

2.1.2 Quá trình mã hóa RSA

Bây giờ, giả sử A là người muốn gửi một thông điệp m cho B và B là người phải giải

mã Sử dụng RSA, người sử dụng A cần làm theo các bước sau:

1 Xác thực khóa công khai(n,e)

2 Biểu diễn thông điệp như là một số nguyên m trong đoạn[0, n-1]

3 Tính c = me mod n(sử dụng thuật toán bình phương và nhân liên tiếp để tính lũy thừa modulus n)

4 Gửi bản mã hóa c đến B

2.1.3 Quá trình giải mã RSA

Để có được bản rõ m từ c, B làm như sau:

Sử dụng khóa bí mật d để khôi phục m = cd mod n

Ví dụ : Ở đây ta sử dụng thông điệp A gửi cho B là một số; chúng ta giả thiết rằng giữa A và B

có một cách để chuyển dỗi giữa văn bản và số Các bước sẽ thực hiện như sau:

1 B sẽ chọn hai số nguyên tố chúng ta giả sử p = 23 và q = 41 Thực tế B cần phải chọn hai số lớn hơn rất nhiều

2 B sẽ tính ra tích của p*q Ta có p*q = 23*41 = 943 vậy n = 943; giá trị này sẽ được chuyển đến A

3 B sẽ chọn một số nguyên e là nguyên tố cùng nhau với (p-1)*(q-1) Trường hợp này ta có (p-1)*(q-1) = 22.40 = 880, e chọn là 7, e chính là thành phần khóa công khai

4 A đã có (n,e) =(943,7) do b gửi đến A sẽ sử dụng cặp khóa này để mã hóa thông điệp m và gửi cho B Ta giả sử thông điệp m = 35

5 A tính giá trị của c: c = me (mod n) = 375 (mod 943) = 545 Giá trị 545 là bản mã

và được A gửi cho B

6 B muốn giải mã thông điệp 545 thì B phải tìm số d thỏa mãn e*d = 1(mod (p 1)*(q -1)) Trường hợp này, 7d = 1 (mod 880); d = 503

Trang 14

-7 Sau khi có d, B cần tính cd(mod n) = 545503(mod 943) Sử dụng thuật toán bình phương và nhân liên tiếp để tính lũy thừa modulus n (1.3.7) vào tính 545503 (mod 943)

Ta có : k = 50310 = 11111101112 K được viết lại là 11101111112

Bảng 2.2: Minh họa ví dụ giải mã RSA

i 0 1 2 3 4 5 6 7 8 9

A 545 545 923 400 633 857 795 215 18 324

B 545 416 432 568 806 721 719 35

Vậy B sẽ giải mã thông điệp là m = 35

2.2 Các khả năng tấn công lên hệ mật RSA

Hệ mật RSA là hệ mật phổ biến nhất hiện nay, nó được triển khai và ứng dụng trong nhiều hệ thống thương mại nhằm cung cấp tính bảo mật cũng như xác thực của dữ liệu Từ khi được công bố, RSA đã được phân tích tính an toàn bởi nhiều nhà khoa học Và đã có một số cuộc tấn công lên hệ mật RSA xong chúng chủ yếu là minh họa cho việc sử dụng RSA không đúng cách Vấn đề thám mã đối với RSA hiện nay đang được các nhà khoa học tập trung vào các kẽ hở của RSA và được chia làm 4 loại: tấn công cơ bản, tấn công số mũ công khai hoặc số mũ bí mật nhỏ và tấn công cài đặt

2.2.1 Tấn công cơ bản

2.2.1.1 Modul chung

Để tránh việc phân tích modul n= p*q khác nhau cho các người dùng khác nhau, chúng ta lấy n chung cho tất cả Cùng một n được sử dung cho tất cả người sử dụng Trung tâm xác thực có thể cung cấp cho người sử dụng i với một cặp ei, di và người sử dụng i có một khóa công khai là (n,ei) và khóa riêng là (n,di)

2.2.1.2 Mù (Blinding)

Marvin chọn ngẫu nhiên một số r ∈ Z*n và đặt m’ = re m mod n Sau đó anh ta nhờ Bob ký lên m’ Bob có thể cung cấp chứ ký của mình là s’ lên m’ Nhưng từ cách tính s’= (m’)d mod n, Marvin có thể đơn giản tính s = s’/r mod n để có được chữ ký của Bob là s trên m

Ngày đăng: 04/05/2016, 22:15

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w