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

Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic

34 2,1K 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 34
Dung lượng 1,11 MB

Nội dung

Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-BÁO CÁO BÀI TẬP LỚN Môn:Lý thuyết mã hóa thông tin

Đề tài: Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic

G.V hướng dẫn:GV.Mai Thanh Hồng Nhóm thực hiện: NHÓM 22 KHMT3-K3

1 Đào Xuân Đức

2 Nguyễn Thị Thu Hà

3 Đỗ Quốc Vinh

Hà nội,ngày 15 tháng 11 năm 2011

Trang 2

Mục lục

LỜI MỞ ĐẦU 3

PHẦN I: HỆ MÃ HÓA RSA 4

I Giới thiệu hệ mã hóa RSA 4

II Hệ mật mã RSA 5

1.Khái niệm 5

2 Chi tiết các bước thực hiện mã hóa: 7

3 Độ an toàn của hệ RSA 13

4 Một số tính chất của hệ RSA 14

6 Đánh giá RSA 17

III Chương trình sử dụng hệ mật mã RSA 18

PHẦN II: HỆ MẬT ĐƯỜNG CONG ELLIPTIC 18

I Cơ sở toán học 18

1 Phương trình đồng dư bậc 2 và thặng dư bậc 2 18

2 Tiêu chuẩn Euler 18

3.Định lý 1: 19

II:Đường cong Elliptic 20

1.Định nghĩa 20

2.Giới thiệu một số hệ đường cong Elliptic trên trường số thực 21

3.Tính chất của đường cong Elliptic: 23

4.Đường cong Elliptic trên trường hữu hạn 23

5.Các phép toán trên đường cong Elliptic: 24

III: Hệ mật đường cong Elliptic 28

1.Đặt vấn đề: 28

2.Nhúng bản rõ lên đường cong 28

3 Logarit rời rạc trên đường cong Elliptic 29

4.Vấn đề trao đổi khoá Diffie- Hellman(D- H) trên Elliptic 30

5.Hệ mật mã hóa Elgamal trên đường cong Elliptic 30

6 Một số chuẩn sử dụng hệ mật Eliptic 31

Trang 4

quá trình truyền từ nơi gửi đến nơi nhận Với sự phát triển rất nhanh của công nghệ mạng máy tính đặc biệt là mạng INTERNET thì khối lượng thông tin ngày càng chuyển tải nhiều hơn Những tập đoàn công nghiệp, những công ty đa quốc gia, thị trường chứng khoán tiến hành xử lý và truyền nhận những thông tin đắt giá, những phiên giao dịch hay mua bán cổ phiếu, trái phiếu đều được tiến hành qua mạng Giờ đây với sự tăng trưởng nhanh của các siêu thị điện tử, thương mại điện tử thì hàng ngày có một khối lượng tiền rất lớn được lưu chuyển trên mạng toàn cầu INTERNET, vấn đề khó khăn đặt ra là làm sao giữ được thông tin bí mật và giữ cho tiền đến đúng được địa chỉ cần đến

Bạn sẽ ra sao nếu như bạn gửi thư cho một người bạn nhưng lại bị một kẻ lạ mặt nào đó xem trộm và sửa đổi nội dung bức thư trái với chủ ý của bạn, tệ hại hơn nữa là khi bạn ký một hợp đồng, gửi thông qua mạng và lại bị kẻ xấu sửa đổi những điều khoản trong đó, và sẽ còn nhiều điều tương tự như vậy nữa Hậu quả sẽ như thế nào nhỉ ? Bạn bị người khác hiểu nhầm vì nội dung bức thư bị thay đổi, còn hợp đồng bị phá vỡ bởi những điều khoản đã không còn nguyên vẹn Như vậy là cả tình cảm, tiền bạc của bạn và nói rộng hơn là cả sự nghiệp của bạn đều bị đe dọa nếu như những thông tin mà bạn gửi đi không đảm bảo được tính nguyên vẹn của chúng Mã hoá thông tin là một trong các phương pháp đảm bảo được tính trong suốt của thông tin

Nó có thể giải quyết các vấn rắc rối ở trên giúp bạn, một khi thông tin đã được mã hoá

và gửi đi thì kẻ xấu rất khó hoặc không thể giải mã được

Với mong muốn phục vụ những thông tin được truyền đi trên mạng được nguyên vẹn Nhiều phương pháp được tạo ra nhằm tối ưu sự bảo mật, nổi bật hơn cả là 2 phương pháp mã hóa khóa công khai là RSA và hệ mật đường cong Elliptic với độ an toàn cao được trình bày dưới đây

PHẦN I: HỆ MÃ HÓA RSA

I Giới thiệu hệ mã hóa RSA

Với đề tài xây dựng thư viện các hàm mã hoá dùng cho việc bảo mật thông tin trao đổi trong mô hình Client/Server, thì cần thiết một phương pháp mã

hoá để áp dụng, thuật toán mã hoá công khai RSA đã được lựa chọn cho giải

pháp này Phương pháp này có những ưu điểm, nhược điểm, đặc tính gì đó

Trang 5

là phần sẽ trình bày trong chương này

* Khái niệm hệ mật mã RSA

* Phân phối khoá công kkai trong RSA

* Độ an toàn của hệ RSA

+ Bài toán Logarithm rời rạc (Discrete logarith)

+ Bài toán phân tích thành thừa số

Trong hệ mã hoá RSA các bản rõ,các bản mã và các khoá (public key và private key)

là thuộc tập số nguyên ZN = {1, , N-1} Trong đó tập ZN với N=p×q là các ốs nguyên tố khác nhau cùng với phép cộng và phép nhân

Modulo N tạo ra modulo số học N

Khoá mã hoá EKB là cặp số nguyên (N,KB) và khoá giải mã D kB là cặp số nguyên (N,kB), các số là rất lớn, số N có thể lên tới hàng trăm chữ số

Các phương pháp mã hoá và giải mã là rất dễ dàng

Công việc mã hoá là sự biến đổi bản rõ P (Plaintext) thàn h bản mã C

(Ciphertext) dựa trên cặp khoá công khai KB và bản rõ P theo công thức sau đây :

Công việc giải mã là sự biến đổi ngược lại bản mã C thành bản rõ P dựa trên cặp khoá

bí mật kB , modulo N theo công thức sau :

Trang 6

Dễ thấy rằng, bản rõ ban đầu cần được biến đổi một cách thích hợp thành bản mã, sau

đó để có thể tái tạo lại bản rõ ban đầu từ chính bản mã đó :

Thay thế (1) vào (2) ta có :

Trong toán học đã chứng minh được rằng, nếu N là số nguyên tố thì công thức (4) sẽ

có lời giải khi và chỉ khi KB.kB = 1 (mod N-1), áp dụng thuật toán ta thấy N=p×q với p, q là số nguyên tố, do vậy (4) sẽ có lời giải khi và chỉ khi :

KB.kB ≡1 (mod γ(N)) (5)

trong đó γ(N) = LCM(p-1,q-1)

LCM (Lest Common Multiple) là bội số chung nhỏ nhất

Nói một cách khác, đầu tiên người nhận B lựa chọn một khoá công khai KB

một cách ngẫu nhiên Khi đó khoá bí mật kB được tính ra bằng công thức

(5) Điều này hoàn toàn tính được vì khi B biết được cặp số nguyên tố (p,q)

thì sẽ tính được γ(N)

Trang 7

Hình 1 Sơ đồ các bước thực hiện mã hoá theo thuật toán RSA

2 Chi tiết các bước thực hiện mã hóa:

2.1 Tạo khóa RSA

Mỗi bên tự tạo ra một cặp khóa công khai-khóa riêng theo các bước sau:

B1.Chọn ngẫu nhiên 2 số nguyên tố đủ lớn p#qB2.Tính n=pq

Trang 8

B4.Chọn ngẫu nhiên khóa mã hóa e sao cho và là

số nguyên tố cùng nhau với

Một số lưu ý:

thêm: số học môđun)

cũng là số tự nhiên Khi đó sử dụng giá trị

.Công bố khóa mã hóa công khai KU={e,n} trong đó:

e : Số mũ công khai hay số mũ mã hóa

Một dạng khác của khóa bí mật bao gồm:

+ p, q :2 số nguyên tố chọn ban đầu

+ d mod(p-1) và d mod(q-1)

+(1/q) mod p (thường gọi là iqmp)

Trang 9

Dạng này cho phép thực hiện giả mã và ký nhanh hơn với việc sử dụng Định lý số dư Trung Quốc.Ở dạng này tất cả các thành phần của khóa bí mật phải được giữ bí mật.

Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình Ở đây, p và

q giữ vai trò rất quan trọng Chúng là các phân tố của n và cho phép tính d khi biết e

Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay

sau khi thực hiện xong quá trình tạo khóa

2.2:Mã hóa

Giả sử Bob muốn gửi đoạn thông tin M cho Alice Đầu tiên Bob chuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được

thỏa thuận trước

Lúc này Bob có m và biết n cũng như e do Alice gửi Bob sẽ tính c là bản mã hóa của

Trang 10

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dư Trung Quốc, ta có:

.hay:

+Công bố khóa công khai KU={7,187}

+Giữ bí mật khóa riêng KR={23,187}

_Hủy bỏ các giá trị bí mật p=17 và q=11

*/ Thực hiện RSA

Trang 11

Hình2.Mô tả thực hiện RSA

*/ Lưu ý về việc chọn tham số trong mã hóa RSA:

+Cần chọn p, q đủ lớn

+Thường chọn e nhỏ

+Thường có thể chọn cùng giá trị của e cho tất cả người dung

+Trước đây ta hay lấy giá trị của e là 3nhưng hiện nay thì nó lại được coi là quá nhỏ

ta tìm được nghịch đảo của 17 modulo Φ(3233) là

Trang 12

d phải được giữ bí mật

Viết kết quả ngay ra đây, thì các bạn thấy qúa dễ dàng Vấn đề ở chỗ là tìm ra trị số của 855 khi được nâng lên luỹ thừa 2753 .Đây là chỗ mà ta áp dụng phương pháp bình phương liên tiếp :

Trang 13

855^1024 ≡ 1160^2 (mod 3233) ≡ 672 (mod 3233)855^2048 ≡ 672^2 (mod 3233) ≡ 2197 (mod 3233)

509315554967564501055628612082559978744245428110054383498654289336384930246451441507851720917966547826353070996380353873265008966860747718297458229503429504079035818459409563779385865989368838083602840132509

Đó mới chỉ với hai số P =61 và Q =53

3 Độ an toàn của hệ RSA

Một nhận định chung là tất cả các cuộc tấn công giải mã đều mang mục đích không tốt Trong phần độ an toàn của hệ mã hoá RSA sẽ đề cập đến một vài phương thức tấn công điển hình của kẻ địch nhằm giải mã trong

Trang 14

thuật toán này

Chúng ta xét đến trường hợp khi kẻ địch nào đó biết được modulo N, khoá công khai KB và bản tin mã hoá C, khi đó kẻ địch sẽ tìm ra bản tin gốc (Plaintext) như thế nào Để làm được điều đó kẻ địch thường tấn vào hệ thống mật mã bằng hai phương thức sau đây:

 Phương thức thứ nhất :

Trước tiên dựa vào phân tích thừa số modulo N Tiếp theo sau chúng sẽ tìm cách tính toán ra hai số nguyên tố p và q, và có khả năng thành công khi đó sẽ tính được λ(N) và khoá bí mật k B Ta thấy N cần phải là tích của hai số nguyên tố, vì nếu N là tích của hai số nguyên tố thì thuật toán phân tích thừa số đơn giản cần tối đa N bước, bởi vì có một số nguyên tố nhỏ hơn N

Mặt khác, nếu N là tích của n số nguyên tố, thì thuật toán phân tích thừa số đơn giản cần tối đa N1/n bước

Một thuật toán phân tích thừa số có thể thành phức tạp hơn, cho phép phân tích một số

N ra thành thừa số trong O( P ) bước, trong đó p là số chia nhỏ nhất của N, việc chọn hai số nguyên tố là cho thuật toán tăng hiệu quả

 Phương thức thứ hai :

Phương thức tấn công thứ hai vào hệ mã hoá RSA là có thể khởi đầu bằng cách giải quyết trường hợp thích hợp của bài toán logarit rời rạc Trường hợp này kẻ địch

đã có trong tay bản mã C và khoá công khai KB tức là có cặp (KB,C)

Cả hai phương thức tấn công đều cần một số bước cơ bản, đó là :

O(exp lnNln(lnN) ), trong đó N là số modulo

số này che dấu nhiều chi tiết cài đặt có liên quan đến việc tính toán với các con số

Trang 15

dài, chi phí của các phép toán thực sự là một yếu tố ngăn cản sự phổ biến ứng dụng của phương pháp này Phần quan trọng nhất của việc tính toán có liên quan đến việc mã hoá bản tin Nhưng chắc chắn là sẽ không có hệ mã hoá nào hết nếu không tính ra được các khoá của chúng là các số lớn

2.Các khoá cho hệ mã hoá RSA có thể được tạo ra mà không phải tính toán quá nhiều

Một lần nữa, ta lại nói đến các phương pháp kiểm tra số nguyên tố Mỗi số nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn, sau đó kiểm tra các số kế tiếp cho tới khi tìm được một số nguyên tố Một phương pháp đơn giản thực hiện một phép tính trên một con số ngấu nhiên, với xác suất 1/2

sẽ chứng minh rằng số đ ược kiểm tra không phải nguyên tố Bước cuối cùng là tính p dựa vào thuật toán Euclid

Như phần trên đã trình bày trong hệ mã hoá công khai thì khoá giải mã (private key) kB và các thừa số p,q là được giữ bí mật và sự thành công của phương pháp là tuỳ thuộc vào kẻ địch có khả năng tìm ra được giá trị của k B hay không nếu cho trước N và KB Rất khó có thể tìm ra được kB từ KB cần biết về p và q, như vậy cần phân tích N ra thành thừa số để tính p và q

Nhưng việc phân tích ra thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật hiện đại ngày nay thì cần tới hàng triệu năm để phân tích một số có 200 chữ số ra thừa

số

Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn Bảng dưới đây cho biết các thời gian dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây

Trang 16

5 Một số biến thể của hệ mã hóa RSA

Hệ mã RSA là một hệ mã có tính an toàn rất cao Nhưng nó có một nhược điểm lớn là tốc độ mã hóa chậm (nhất là so với các hệ mã đối xứng có cùng độ an toàn ) Bởi vậy nó chỉ được sử dụng với các văn bản ngắn , và thường dùng trong giao thức xác nhận chủ thể mà ta sẽ nói qua dưới đây .Xác nhận chủ thể là việc đảm bảo khi người nhận có được mật thư thì biết chắc chắn

ai là tác giả bức thư đó Và cũng đảm bảo việc không ai có thể mạo danh người khác

Để làm được điều đó , khi anh U muốn gửi bức thư P cho anh V Đầu tiên anh

U dùng khóa lập mã Ev ( được công khai của anh V ) để mã hóa P thu được Ev ( P ) Sau đó dùng khóa giải mã của mình là Du ( bí mật ) để tính Du (Ev ( P )) = C và gửi

Ta chỉ biết đó là một hàm đựơc công khai trên toàn hệ thống Khi cần gửi văn

Trang 17

bản , người ta sẽ gửi kèm theo bản giá trị băm của văn bản , sau khi nhận được người

ta sẽ băm văn bản lại lần nữa và so sánh với giá trị băm của bên gửi , nếu trùng khớp thì có thể khẳng định văn bản đã không bị thay đổi trên đường đi …

6 Đánh giá RSA

1.RSA đơn giản, dễ hiểu, dễ cài đặt.

2.Hiệu suất hoạt động : RSAchạy chậm do việc phát sinh khóa công khai-khóa

bí mật hay quá trình mã hóa-giải mã tốn nhiều thời gian vì phải tính toán trên các số nguyên dương cực lớn, có chiều dài vượt quá khả năng chứa của thanh ghi nên phải giả lập, thực hiện lại nhiều lần và sử dụng nhiều đến bộ xử lý.Do đó,Rsa không được

sử dụng vào mục đích mã hóa các khối lượng dữ liệu lớn mà chỉ ứng dụng trong chữ

ký điện tử để mã hóa thông điệp ngắn đã qua hàm băm, giả thuật trao đổi khóa bí mật(khóa dùng cho các hệ thống mã hóa đối xứng-hay khóa riêng), hay chỉ mã hóa một lượng dữ lệu nhỏ

3.Tính bảo mật:Như đã trình bày ở trên , độ an toàn của RSA dựa tren bài toán phân tích ra thừa số nguyên tố.Do đó, chiều dài số càng lớn thì càng khó phân ticchs

tự, thời gian cần để đặt m thành thừà số sẽ tăng gấp đôi Vì khi thêm vài ký tự vào R

là làm cho nó lớn thêm hàng trăm hay ngàn lần nhiều hơn, tức là gia tăng danh sách các cặp thừa số có thề dùng làm p và q Vậy nếu giả như bất ngờ có ai tìm ra được một kỹ thuật mới giúp cho việc đặt thành thừa số có thể thực hiện hàng tỷ tỷ lần nhanh hơn, thì ta chỉ cần chọn một số m khác dài hơn chừng mười ký tự, tình trạng sẽ trở lại như ban đầu Thuật toán RSA chỉ bị phá vỡ khi tìm được một cách nào đó cho ta trực tiếp các thừa

số nguyên tố của một số Cho đến bây giờ việc đó chưa được chứng minh là bất khả Nhưng nếu chúng ta biết rằng các số nguyên tố đã được nghiên cứu từ cả ngàn năm nay, và trong vòng vài thập niên qua được nghiên cứu rầm rộ trở lại thì câu trả lời có

vẻ còn rất xa vời Nhưng nếu tìm ra được một phương pháp như thế, thì thuật toán mã

Trang 18

Sau khi hệ mã RSA xuất hiện , đã có rất nhiều hệ mã công khai khác được ra đời với rất nhiều cải tiến Và với sự phát triển của mật mã khóa công khai , có lẽ sẽ có lúc việc mã hóa không còn là việc xa lạ với mọi người nữa , mà có thể mã hóa sẽ được áp dụng rộng rãi trong đời sống chúng ta Có thể lúc đó , trong danh thiếp của mỗi người , ngoài số điện thoại và địa chỉ , còn có thêm khóa lập mã của họ.

III Chương trình sử dụng hệ mật mã RSA

PHẦN II: HỆ MẬT ĐƯỜNG CONG ELLIPTIC

I Cơ sở toán học

1 Phương trình đồng dư bậc 2 và thặng dư bậc 2

Ta xét phương trình đồng dư bậc 2 có dạng như sau:

Trong đó n là số nguyên dương, a là số nguyên với gcd(a,n) 1,và x là ẩn số.Phương trình đó không phải bao giờ cũng có nghiệm,khi nó có nghiệm thí ta gọi a là thặng dư bậc 2 mod n.Ngược lại thì a gọi là một bất phương trình thặng dư bậc 2 mod n

Các thặng dư bậc 2 mod n, và tập các bất thặng dư bậc 2 mod n

2 Tiêu chuẩn Euler

1(mod p)

Ký hiệu Lengendre

Cho p là một số nguyên tố, với p>2, số a>=0 là số nguyên Ta đinh nghĩa (a/p) như sau:

Ngày đăng: 11/04/2015, 20:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w