Giới thiệu về hệ mật RSA.DOC

10 1.1K 7
Giới thiệu về hệ mật RSA.DOC

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giới thiệu về hệ mật RSA

Trang 1

Chơng I : Giới thiệu về hệ mật RSA I Cơ sở toán hệ mật RSA.

1 Hàm cửa sập một chiều và độ bảo mật của hệ mật khoá công khai.

Nh đã trình bày trong phần trớc, một khái niệm cơ bản khi nghiên cứu các hệ mật khoá công khai nói chung và hệ mật RSA nói riêng là khái niệm về hàm cửa sập một chiều,

Định nghĩa 1: Hàm f: X đY đực gọi là hàm một chiều nếu tính y=f(x) với

mọi x ẻ X là dễ nhng việc tìm x khi biết y lại là vấn đề khó.

Thực ra phát biểu trên chỉ là định nghĩa phi hình thức (do thuật ngữ “khó” đ-ợc dùng đến là không định lợng và thậm chí sau này chúng ta đã biết là ngay cả khi đã định lợng bằng sự không tồn tại thuật toán giải bài toán ngợc trong phạm vi đa thức thì khía niệm “khó” nêu trên có tồn tại hay không cũng cha đ-ợc ai khẳng định rõ ràng) và điều đáng tiếc hơn nữa là tất cả các hàm ứng cử viên cho khái niệm này cho đến nay chỉ mới “đợc coi là một chiều.

Chúng ta dễ dàng thống nhất đợc với nhau là chỉ riêng hàm một chiều là không đủ để xây dựng thành một luật mã theo kiểu công khai hàm mã hoá do vì chính bản thân chủ nhân của bức điện mật cũng gặp phải hoàn cảnh tơng tự nh ngời khác Nh vậy để có thể giải mã một cách hữu hiệu thì ngời giải mã phải có một “hiểu biết tuyệt mật “ nào đó về khoá giải (một hiểu biết theo kiểu nếu biết nó thì cách giải dễ dàng) “hiểu biết tuyệt mật” này đợc gọi là cửa sập Hàm một chiều nh trên đợc gọi là hàm một chiều có cửa sập.

Dĩ nhiên dù không biết cửa sập thì ngời thám mã vẫn có thể sử dụng hiểu biết về hàm f để lần lợt tính tất cả các giá trị f(x) cho mọi bản rõ x cho tới khi tìm đợc bản rõ thoả mãn y=f(x) Bản rõ tìm đợc trên chính là kết quả giải mã của y Ngoài ra ngời thám mã còn có thể sử dụng nhiều phơng pháp tấn công khác nhằm vào đặc thù riêng của từng hàm f để tìm ra bản rõ trong các trờng hợp riêng rẽ khác chứ không nhất thiết phải giải bài toán ngợc.

Tóm lại đọc an toàn của hệ mật khoá công khai không chỉ phụ thuộc vào độ khó của việc giải bài toán ngợc mà tính bền của sự an toàn này còn phụ thuộc vào các phơng pháp tấn công của các thám mã, vả lại nh đã trình bày ở trên thì toàn bộ các hê khoá mật công khai đang đợc sử dụng đều cha đực sự khẳng định về tính “khó” mf ngay cả khi đã có sự đảm bảo này thì có sự tiến bộ không ngừng của công nghệ tính toán tghì hiển nhiên nhiều vấn đề cha thể chứp nhận đợc trong hjiện tại sẽ đợc chấp nhận trong tơng lai Thực tế không chỉ đối với các hệ mât khoá công khai do vậy quan niêm mới về tính an toàn tơng đối mà với nó đã nẩy sinh ra các hệ mật khoá công khai đồng thời cũng đặt cho chúng ta nhiều bài toán nghiêm túc phải giải quyết khi sử dụng hệ mật này trong

Trang 2

khuôn khổ của đề tài này, chúng tôi không có tham vọng trình bày kỹ lỡng tất cả các vấn đề nảy sinh đối với việc sử dụng các hệ mật khoá công khai mà chỉ giới tghiệu cụ thể mọt hệ mật mà với nó sự an toàn cũng nh khả năng ứng dụng của nó đã đợc các bộ óc vĩ trên thế giới thừa nhận là hệ mật khoá công khai sáng giá nhất, đó là hệ mật khoá công khai RSA.

2 Hệ mật RSA.

a Hệ mật RSA.

Cho n=p*q với p và q là hai số nguyên tố.

Kí hiệu e, d là hai số thoả mãn e*dº1 mod j(n) ở đây j(n)=(p-1)(q-1).

Hàm f: Zn đ Zn đợc xác định nh sau: f(x)º xe mod n " xẻ Zn

Ngời ta đã coi rằng f là hàm một chiều và chúng ta dễ dàngkiểm tra hàm ngợc của f là f-1 đợc xác định nh sau:

f-1(x)º yd mod n " xẻ Zn

nh vậy nếu biết đợc d thì việc tính f-1 sẽ trở nên vấn đề “dễ” vậy giá trị d trên chính là cửa sập của f.

Tất nhiên hiện nay ngời ta cũng cha tìm đợc thuật toán hữu hiệu nào cho phép tìm đợc d mà không cần tìm p,q do vậy có thể ngầm hiểu rằng việc tìm đ-ợc d cũng tơng đơng việc tìm đđ-ợc p, q Tuy nhiên ở phần sau chúng ta sẽ thấy thậm chí việc biết d cũng không giúp ích gì lắm cho việc tìm p và q.

b Xây dựng mạng thông tin theo hệ mật RSA.

Trong hệ mật RSA thì không gian các bản rõ P, không gian xác các bản mã chính là Zn còn không gian khoá K={(e,d,n): ở đây n là tích của hai số nguyên

tố p và q với e*d º1 mod j(n)}

Mạng thông tin theo hệ mật RSA đợc thiết lập nh sau:

Mỗi thành viên Mi trong hệ thống chọn cho mình một khoá (ei,di,ni) ẻK Công bố ei và ni làm thông tin công khai để mọi ngời mã hoá thông tin muốn gửi cho anh ta theo luật Cº Xei mod ni và giữ thông tin “cửa sập” di để giải mã các bản mã thông tin gửi cho mình theo luật Cº Xdi mod ni.

c Tính khả thi của thuật mã hoá và giải mã trong hệ RSA

Ta thấy rằng để mã hoá hay giải mã một thông báo theo luật RSA chính lf việc thực hiện một phép tính luỹ thừa modulo n Việc tính toán này chỉ cần thực

Trang 3

hiện trong thời gian O(log3 n) với đơn vị tính là thời gian để thực hiện một thao tác cơ sở của máy tính Với một số công bố gần đây ngời ta đã chỉ ra rằng thời gian tính đó chỉ còn là O(log2 n) với việc sử dụng biến đổi Furier nhanh.

Theo các tài liệu công bố hiện nay thì những thiết bị phần cứng mật mã RSA hiệu quả nhất hiện nay chỉ đạt tốc dộ khoảng 600 Kb/s tức là chậm hơn 1500 lần so với hệ mật DES (1 Gb/s) nh vậy việc mã dịch bằng luật RSA vẫn còn bị hạn chế về mặt thờ gian do về mặt thực tế thì hệ mật RSA có lẽ chỉ dùng đẻ thực hiện các tính năng u việt của nó nh phân phối mầm khoá tự động, xác thực

3 Độ an toàn của hệ mật RSA.

a Bài toán phân tích số và việc phá hệ mật RSA.

Cách tấn công dẽ thấy nhất đối với hệ mật RSA là ngời thám mã sẽ cống gắng phân tích n rathừa số nguyên tố n=p*q và khi đó anh ta dễ dàng tính đợc j(n)=(p-1)(q-1) và do đó tìm đợc thông tin cửa sập D tơng ứng với thông tin mã hoá E bằng thuật toán Euclide Nh vậy chúng ta thấy ngay rằng việc phá hệ mật RSA là “dễ hơn” bài toán phân tích số nguyên ra thừa số nguyên tố tuy nhiên cũng cha có một kết quả nào chỉ ra rằng bài toán phân tích số là thực sự khó hơn cho nên ngời ta thờn thừa nhận rằng bài toán phá hệ RSA là tơng đơng với bài toán phân tích số nguyên thành thừa số ngời.

để đảm bảo tính khó phân tích ra thừa số của n=p*q thì yêu cầu đầu tiên là p,q là các số nguyên tố lớn xấp xỉ bằng nhau và là số nguyên tố “mạnh “ Khái niệm “mạnh” ở đây chỉ bắt nguồn từ ý nghĩa khó phân tích do vậy nó sẽ đợc bổ xung cùng với kết quả có đợc của khả năng phân tích số Nói một cách khác là khái niệm “mạnh” bao gồm sự loại trừ các lớp số nguyên tố mà với chúng tồn tại thuật toán phân tích hiệu quả, chúng ta có thể biết đén một khái niệm sơ khai của tính “mạnh” đó là các số nguyên tố p mà p-1 và p+1 có chứa thừa số nguyên tố lớn.

b Việc tấn công hệ mật RSA khác phơng pháp phân tích số.

Trong [Stínon] đa ra chứng minh một kết quả thú vị là một thuật toán bất kỳ để tính số mũ giải mã D đều có thể đợc dùng nh một chơng trình con trong thuật toán xác suất kiểu Las Vegas để phân tích n.

Nh vậy mặc dù rằng nếu D bi lộ thì việc phân tích n cũng không còn ý nghĩa theo quan điểm phá hệ mật tuy nhiên kết quả trên dù sao cũng cho ta một thuật toán phân tích số n khi biết D với xác suất thành công không quá 1/2 của mỗi lần chọn số ngẫu nhiên làm đầu vào cho thuật toán.

Trang 4

4 Các thuật toán phân tích số.

Trong phần này em giới thiệu một số thuật toán phân tích số nguyên đợc coi là “mạnh nhất” theo nghĩa thời gian tính tốt nhất hiện nay Việc trình bày của chúng tôi dựa trên quan điểm không phải là đa ra thuật toán chi tiết nhằm mục đích phân tích số nguyên mà chủ yếu nêu ra ý tởng của thuật toán và quan trọng nhất là đa ra thông số về thời gian tính của chúng nhằm chứng minh cho kích thớc tối thiểu của các modulo đợc sử dụng trong mật mã theo dạng tích hai số nguyên tố lớn.Các thuật toán đợc kể đến bao gồm thuật toán sàng bậc hai, thuật toán phân tích trên đờng cong Elliptic, thuật toán sàng trờng số nh-ng do hai thuật toán sau đều cần phải có kiến thức bổ trợ khá cồnh-ng kềnh về đại số hiện đại vả lại điều kiện về tài liệu lại không đủ chi tiết nên em chỉ trình bày thuật toán sàng bậc hai và cũng dừng ở những nét chính yếu nhất.

a thuật toán sàng bậc hai.

T tởng chủ đạo của một loạt khá lớn các thuật toán phân tích số nh phơng pháp đặc biệt của Euler, phơng pháp phân tích các dạng chính phơng của Danien Shanks, phơng pháp triển khai liên phân số của Morrison và Brillhart, phơng pháp sàng bậc hai của Pomerance là cố tìm đồng d thức x2 º y2 mod N sao cho xạ± y mod N, còn kỹ thuật tìm cụ thể nh thế nào thì chính là nội dung riêng của từng thuật toán.

Đối với thuật toán sàng bậc hai của Pomerance đợc thực hiện nh sau: - Chọn k là số nguyên tố đầu tiên và gọi là cơ sở phân tích.

- Chọn B là một số nào đó gọi là ngỡng tìm các thặng d bậc hai nhỏ.

- Tìm k+1 các thặng d bậc hai nhỏ hơn B và phân tích đợc hoàn toàn trong tập cơ sở trong lớp các số dạng Q(x) º ((m+x)2- N) mod N với k là số phần tử của cơ sở, m = [ √N ] còn x=0, ±1, ±2,

- Xây dựng đồng d thức x2 º y2 mod N từ k+1 thặng d bậc hai tìm đợc trên Cơ sở thuật toán chủ yếu dựa vào thứ nhất là khả năng tìm đợc k+1 thặng d bậc hai và tiếp đến là xây dựng đồng d thức x2 º y2 mod N nh thế nào.

Trớc hết chúng ta cùng xem xét đến vấn để thứ hai.

Giả sử thặng d bậc hai thứ i tìm đợc ở trên là ri = ci2= q1a1 q2a2 qkak (qj là số nguyên tố thứ j của B), ta đặt tơng ứng với véc tơ vi ẻ [GF(2)]k nh sau ri khác nhau đợc ứng cùng với véc tơ v nhng một cách hình thức ta có thể coi có k+1 véc tơ khác nhau thu từ việc ứng k+1 giá trị r có đợc ở trên.

Hiển nhiên trong không gian k chiều GF(2)k thì tập k+1 véc tơ vi

(i=1,2, ,k+1) chắc chắn phụ thuộc tuyết tính, giả sử ta có tổ hợp tuyết tính đặc trng cho phụ thuộc đó là:

Trang 5

ai=1 Q(Xi) theo định nghĩa sẽ là x2 mod N, mặt khác do điều kiện đặt ra ở trên là Q(xi) phân tích đợc hoàn toàn trong tập cơ sở cùng với điều kiện

ai Q(Xi) chứa toàn các số mũ chẵn đối với các thừa số trong cơ sở do vậy nó cũng là một thặng d bậc hai y2 nào đó Nừu xạ±y mod N thì chúng ta sẽ thành công việc phân tích N với các thừa số tơng ứng là gcd(x±y,N) Ngời ta chỉ ra rằng khả năng thành công xảy ra với xác xuất là 0.5 do vậy thời gian tính của thuật toán chủ yếu phụ thuộc vào giai đoạn tìm thặng d bậc hai nhỏ và giai đoạn tìm hệ thức phụ thuộc tuyến tính (thông thờng bằng phép khử Gauss).

Với việc tìm các thặng d bậc hai nhỏ thoạt tiên chúng ta nhận thấy rằng do Q(x+rpa) º [(m+x+rpa)2 -N] mod N º {[(m+x)2 - N] + rpa[2(m+x) + rpa]} mod N º Q(x) + rpa [2(m+x) + rpa] mod N nên :

Nếu pa là ớc của Q(x) thì nó cũng là ớc của Q(x + rpa) với mọi số nguyên r.

Từ kết quả trên chúng ta thấy rằng nếu tồn tại giá trị x theo yêu cầu Q(x) phân tích hoàn toàn trong cơ sở và không quá B thì ta có thể tìm đ ợc nó chỉ cần

Nh vậy không phải toàn bộ các số nguyên tố trong cơ sở đều phải đợc biểu diễn (đúng hơn là chỉ có khoảng một nửa số nguyên tố trong cơ sở là có mặt trong biểu diễn các Q(x)) do đó để thu đợc hệ phụ thuộc tuyến tính nêu trong phân tích trên thì thờng chỉ cần số phơng trình khoảng già nửa số các số nguyên tố trong cơ sở là đủ.

Nếu pº 3 mod 4 thì giá trị x º -m ± N(p+1)/4 mod p là các giá trị < p thoả mãn p là ớc của Q(x) Nếu pº 1 mod 4 thì việc tìm các giá trị x tơng ứng có thể bằng một thuật toán gần đa thức.

Trang 6

Nếu x<pa thoả mãn pa là ớc của Q(x) và pa+1 không là ớc của Q(x) thì giá trị y< pa+1 có pa+1 là ớc của Q(y) có thể tìm đợc là y=x+r pa với r là nghiệm

của phơng trình đồng d bậc nhất sau

(x+m)2- N

2(x+m)- N (chú ý rằng phơng trình trên luôn luôn có duy nhất một nghiệm).

Với hai kết quả trên rõ ràng chúng ta luôn luôn tìm đợc toàn bộ giá trị x trong một phạm vi B cho trớc nào đó mà với chúng Q(x) có ớc lẻ trong tập cơ sở phân tích Trờng hợp p=2 việc thu đợc kết quả na ná nh trên ta có phức tạp hơn, em không có đủ tài liệu để mô tả tờng minh việc tìm đó ở đây.

Tóm lại quá trình tìm thặng d bậc hai nhỏ có thể mô tả nh sau :

- Chọn một ngỡng B nào đó và sàng để tìm giá trị x nhỏ nhất <B mà với chúng pa là ớc của Q(x).

- Các thặng d bậc hai nhỏ Q(x) = R2 = q1a1 q2a2 qkak nếu có thì chỉ cầm tìm theo r= 0, ±1, ±2, tại những giá trị Q(x) với x= x0+ s q1a1 q2a2 qkak, ở đây x0 là giá trị nhỏ nhất để q1a1 q2a2 qkak là ớc của Q(x) mà ta có thể phát hiện đợc ở bớc trên.

Tất cả các phân tích đợc nêu ở trên mặc dù cha đủ chặt chẽ cho sự đảm bảo thành công việc tìm thặng d bậc hai nhỏ trong lớp Q(x) mà chỉ dừng ở mức độ thể hiện một mô tả bớc tìm kiếm này sẽ đợc thông qua một quá trình “sàng” theo cơ sở của những kết quả nêu trên nhằm loại bỏ các giá trị không thể là ứng cử viên cho các thặng d bậc hai nhỏ Một số tài liệu (xem [Dixon], [Lenstra], ) đã phân tích về thời gian tính của thuật toán và số liệu khả quan nhất về vấn đề này của Lenstra là:

O(e(1+O( 1)( ln N ln ln N)1/2

với O(1) là một hàm tiến tới 0 khi NđƠ.

b Thời gian tính của một số thuật toán phân tích khác.

Thuật toán phân tích dựa trên đờng cong elliptic cũng là một thuật toán có thời gian tính khá tốt Thuật toán thực sự là mở rộng của thuật toán kiểu phân tích p-1 của Pollard theo ý thay cho sự “phải phân tích đợc p-1 ra các thừa số” bằng một cái gì đó gần nh thế mà cơ sở của nó là sự có cấu trúc của các điểm trên đờng cong elliptic Thời gian tính của thuật toán này đợc đánh giá là :

O(e(1+O( 1)( 2ln N ln ln N )1/2

với p là ớc nhỏ nhất của N.

Thoạt tiên ta có thể thấy ngay thuật toán này tỏ ra hơn hẳn thuật toán sàng bậc hai nếu hai ớc của N chênh lệch nhau nhiều Tuy nhiên nếu hai ớc của N xấp xỉ nhau thì thuật toán sàng bậc hai thờng tỏ ra hiệu quả hơn.

Trang 7

Thuật toán sàng trờng số là thuật toán mới nhất, thuật toán này cũng phân tích số nguyên N bằng cách xây dựng đồng d thức x2 º y2 mod N nhng việc thực hiện bằng các tính toán trên các vành đại số Sàng trờng số đang trong thời kỳ nghiên cứu tuy nhiên theo dự đoán chung thì nó chứng tỏ nhanh nhất với các số có trên 125 chữ số thập phân Thời gian tính của thuật toán sàng trờng số là:

O(e(1 92+O( 1))ln1/3 N ln ln2/3 N)

để phân tích các số RSA thì phơng pháp sàng bậc hai là thành công nhất Vào năm 1983 thuật toán sàng bậc hai đã phân tích thành công các số có 69 chữ số thập phân Tới năm 1989 số chữ số thập phân của các số phân tích đợc là 106 chữ số thập phân bởi việc phân bố việc tính toán phân tích trên hàng trăm máy tính làm việc riêng biệt Gần đây nhất trong tháng 4 năm 1994 Atkin, Graff, Lenstra và Leyland đã phân tích đợc một số có 129 chữ số thập phân Việc phân tích con số trên phải thực hiện trong hàng năm tính toán trên máy 5000 MIPS (Triệu lệnh trên một giây) do 600 nhà nghiên cứu trên toàn thế giới thực hiện.

II Những ứng dụng của hệ mật RSA

1 Sơ đồ chữ ký hệ mật RSA.

Chữ ký thông thờng trên một tài liệu là phơng tiện dùng để xác nhận tài liệu đó clà của ngời ký nó Chữ kí điện tử là phơng pháp ký một bức điện dới dạng điện tử đợc lu hoặc truyền trên mạng máy tính.

Vậy sự khác nhau cơ bản của chữ ký thông thờng và chữ ký điện tử là gì ? Trớc hết chữ ký thông thờng là một phần vật lý của chính văn bản, trong khi chữ ký điện tử không gắn kết theo kiểu vật lý vào bức điện nên thuật ngữ toán đợc dùng phải “không nhìn thấy” theo một nghĩa 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ác so sánh nó với mẫu đã đăng ký trớc về nó Ûong khi chữ ký điện tử phải đợc kiểm tra công khai bằng một thuật toán mà khi bất cứ ai cũng có thể kiểm tra đợc đồng thời phải thoả mãn yêu cầu chống trả khả năng giả mạo cao.

Một sơ đồ ký gồm hai thành phần: Thuật toán ký và thuật toán kiểm tra chữ ký Dới đây là định nghĩa hình thức về chữ ký.

định nghĩa 2.1 Một sơ đồ chữ ký là một bộ 5 gồm (P,AS,K,S,V) Trong đó:  P là tập hữu hạn các bức điện có thể có.

 A là tập hữu hạn các chữ ký có thể có.

Trang 8

 K là tập hữu hạn có thể có thẻ có thoả mãn điều kiện kẻK tồn tại một thuật

toán ký SigK ẻS và một thuật toán kiểm tra VerK ẻ V trong đó SigK : PđA và

VerK PxA đ {true/false} là những hàm số sao cho với mỗi bức điện x ẻ P vàchữ ký y ẻ A ta có:

VerK (x,y)=true khi và chỉ khi y= SigK(x).

Thờng thì mỗi K thì VerK , SigK là các hàm thời gian đa thức VerK sẽ là hàm công khai còn SigK là hàm bí mật.

Nh Vậy sẽ không thể tính toán để giả mạo chữ ký trên bức điện x đợc, nghĩa là với x cho trớc thì chỉ có chủ nhân của nó mới có thể “ký” trên có theo công thức đã nêu y = SigK(x) để đảm bảo VerK(x,y) =true.

Cũng nh đối với các hệ mật khoá công khai khác, sơ đồ chữ ký trên không thể an toàn vô điều kiện vì đối với x cho trớc “kẻ giả mạo” có thể dùng phơng pháp vét cạn để kiểm tra bằng hàm công khai VerK(x,y) cho tất cả các chữ ký y cho đến khy tìm ra y để VerK(x,y)=true.

Với mục đích tìm một sơ đồ chữ ký an toànvề mặt tính toán ngời ta đề xuất sử dụng hệ RSA dùng trong mục đích trên nh sau :

Với hệ RSA nh trình bày ở phần trớc thì hàm giải mã đợc dùng làm hàm ký Sig, chữ ký chính là giá trị yº xd mod n hàm kiểm tra Ver(x,y) = true khi va chỉ khi x º ye mod n

Hiển nhiên sơ trên thoả mãn yêu cầu về một sơ chữ ký và đợc gọi là sơ đồ chữ ký RSA.

2/ Tạo dãy số giả ngẫu nhiên RSA.

Một ứng dụng ít phổ biến hơn nhng cũng khá quan trọng là việc tạo ra các xâu bit giả ngẫu nhiên trong mật mã bằng hệ RSA.

Trớc hết chúng ta da ra định nghĩa về việc tạo dãy ngẫu nhiên nh sau.

Định nghĩa 3.1 cho k, l là các số nguyên dơng sao cho l > k+l Một bộ tạo bit ngẫu nhiên (k,l) là hàm f : Z2 đ Zl

2 tính đợc trong thời gian đa thức (nh một hàm của k ).

Giá trị đầu vào S0 ẻ Zk

2 dợc gọi là mầm và giá trị đầu ra F( S0 ) là một xâu các bit ngẫu nhiên.

Nh chúng ta đã quen thuộc thì để tạo đợc hệ mật có khoá hoàn thiện thì các dùng phải một lần và là xâu bit ngẫu nhiên cùng độ dài với xâu bit ngẫu nhiên cùng độ dài với xâu bit biểu diễn bản rõ với mã pháp là phép cộng mod 2 các bit tơng ứng của rất rõ và xâu khoá Phơng pháp tạo xâu bit ngẫu nhiên có thể giải quyết vấn đề trên trong các sơ đồ mật mã khoá sinh tự động.

Trong sơ đồ trên ngời gửi và ngời nhận thoả thuận với nhau cùng một bộ sinh khoá giả ngẫu nhiên và thông báo cho nhau về mầm khoá trên một kênh

Trang 9

bảo mật Nh vậy mầm khoá có chức năng nh khoá mật thông thờng và bộ sinh (k,l) có chức năng tạo khoá dùng cho hệ mật dòng quen thuộc.

Với mục đích trên ngời ta đã đề xuất xây dựng một bộ tạo dãy ngẫu nhiên dựa trên cơ sở loại bài toán phân tích số trong hệ mật RSA nh sau:

 p và q là các số k/2bít, n=p*q.

 chọn e với (e,j(n))=1, trong đó j(n)=(p-1)*(q-1)  Công khai e,n (dùng để đồng bộ tạo dãy)

 Chọn ngẫu nhiên S0 ẻ Z* có k bít Luật sinh f đợc xác định nh sau: F(S0)= (t1,t2, ,tl)

Với ti =Si mod s còn Si đợc tính theo công thức Si º (Si-1)b mod n.

Dãy đầu ra của luật sinh trên với một số điều kiện nào đó của mầm S0 đã đợc chứng tỏ là các dãy giả ngẫu nhiên tốt đợc dùng trong mật mã tyu nhiên việc sinh dãy này còn gặp một nhợc điểm đó là thời gian sinh dãy quá lâu nên khó lòng đợc sử dụng trong các hệ mật dòng tự động.

3 Vấn đề phân phối khoá tự động và xác thực ngời nhận.

Việc phân phối khoá tự động thực chất là một yêu cầu mà từ đó dẫn đến sự ra đời của các hệ mật khoá công khai nói chung và của hệ RSA nói riêng Do để có thể truyền một thông tin mật nào đó đến một ngời nào đó thì theo cách xây dựng hệ mật RSA chúng ta thấy rằng ngời gửi chỉ cần biết khoá công khai của ngời nhận là đủ “Khoá” ở đây đợc hiểu là quy ớc thông thờng để đồng bộ quá trình mã dịch của cá hệ mật truyền thống Vấn đề đợc đặt ra một cách tự nhiên là việc truyền khoá phải thoả mãn yêu cầu:

 Ngời nhận dễ dàng tính đợc thông tin cần truyền đến cho mình

 Bất cứ ngời nào (tất nhiên ngời gửi và ngời nhận) đều không tính đợc thông tin truyền trên.

Hai yêu cầu trên đợc phát biểu nh một bài toán về xác thực chủ quyền của ngời nhận Về việc thoả mãn các yêu cầu nêu trên là hiển nhiên vì nó chính là yêu cầu đầu tiên của hệ mật khoá công khai nói chung và của hệ mật RSA nói riêng.

Kết luận.

Với những u việt đã biết trong các lĩnh vực: Thiết kế hệ mật khoá công khai, chữ ký số, tạo bít giả ngẫu nhiên Với độ bền mật mã có tính thức tế của các hệ mật RSA nh đã trình bày, việc tìm hiểu, xây dựng và thực thi một số tính năng RSA là một nhu cầu cấp bách Với đề tài này do khả năng có hạn nên em

Trang 10

đặt mục tiêu đầu tiên là thiết kế một qui trình phân phối mầm khoá tự động RSA bao gồm cả xác thực của hai phía (ngời gửi và ngời nhận) và thực hiện việc mã dịch văn bản bằng một biến dạng của việt tạo dãy giả ngẫu nhiên bằng hệ mật RSA nói trên Việc lập trình mô phỏng quá trình đó trên C++ và các phân tích liên quan đế các thuật toán tính toán trên các số lớn sẽ đợc trình bày lần lợt ở các chơng sau.

Cuối cùng em trình bày một mạng liên lạc mật, có các khả năng phân phối khoá tự động, xác thực ngời nhận, xác thực ngời nhận theo sơ đồ RSA mà em sẽ lập trình mô phỏng nh sau.

Việc thiết lập mạng liên lạc giống nh đã đựơc trình bày ở phần trên tuy nhiên thuật mã hoá và giả mã đợc tiến hành nh sau:

Thông tin x (đồng thời là mầm khoá và chữ ký mật) đợc A (với khoá công khai (eA,nA) và khoá mật (dA,nA) gửi cho B ( với khoá công khai (eB,nB) và khoá mật (dB,nB) trớc hết phải ẻ Zn với n=min(nA,nB) đợc mã hoá thành y tính bằng công thức:

y º (xdA mod nA)eB mod nB Trong trờng hợp nA < nB và bằng công thức:

B sẽ khôi phục lại mầm khoá đồng thời cũng là thông tin để chứng minh B là ngời gửi cho mình x bằng công thức:

x º (ydB mod nB)eA mod nA Trong trờnghợp nA < nB và bằng công thức.

Ngày đăng: 24/08/2012, 21:01

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan