Mó húa khụng đối xứng (Mó húa khúacụng khai)

Một phần của tài liệu BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ (Trang 30 - 38)

II. Bố cục của luận văn

2. Mó húa khụng đối xứng (Mó húa khúacụng khai)

2.1. Định nghĩa

Thuật toỏn mó húa cụng khai là thuật toỏn đƣợc thiết kế sao cho khúa mó húalà khỏc so với khúa giải mó. Mà khúa giải mó húa khụng thể tớnh toỏn đƣợc từ khúa mó húa .Khúa mó húa gọi là khúa cụng khai (public key ), khúa giải mó đƣợc gọi là khúa riờng (private key)

Hỡnh 6: Mó húa với khúa mó và giải mó khỏc nhau

Đặc trƣng nổi bật của hệ mó húa cụng khai là cả khúa cụng khai (public key ) và bản tin mó húa (ciphertext) đều cú thể gửi đi trờn một kờnh thụng tin khụng an toàn

2.2.Cỏc điều kiện của một hệ mó húa cụng khai

Việc tớnh toỏn ra cặp khúa cụng khai KB và bớ mật kB dựa trờn cơ sở cỏc điều kiện ban đầu phải đƣợc thực hiện một cỏch dễ dàng, nghĩa là thực hiện trong thời gian đa thức .

Ngƣời gửi A cú đƣợc khúa cụng khai của ngƣời nhận B và cú bản tin P cần gửi đi cú thể dễ dàng tạo ra đƣợc bản mó C.

C =EKB(P) = EB (P)

Cụng việc này cũng trong thời gian đa thức .

Ngƣời nhận B khi nhận đƣợc bản tin mó húa C với khúa bớ mật kB thỡ cú thể giải mó bản tin trong thời gian đa thức

Bản rõ Giải mã Bản rõ

Khóa mã Khóa giải

P =DkB (C) = DB [EB(M)]

Nếu kẻ địch biết khúa cụng khai KB cố gắng tớnh toỏn khúa bớ mật thỡ khi đú chỳng phải đƣơng đầu với trƣờng hợp nan giải, trƣờng hợp này đũi hỏi nhiều yờu cầu khụng khả thi về thời gian

Nếu kẻ địch biết đƣợc cặp (KB,C) và cố gắng tớnh toỏn ra bản rừ P thỡ giải quyết bài toỏn khú với số phộp thử vụ cựng lớn, do đú khụng khả thi

2.3. Thuật toỏn mó húa RSA

a. Khỏi niệm hệ mó húa RSA

Khỏi niệm hệ mật mó RSA đó đƣợc ra đời năm 1976 bởi cỏc tỏc giả R.RivetsK,A.Shamir , và L.Adleman. Hệ mó húa này dựa trờn cơ sở của hai bài toỏn

 Bài toỏn Logarith rời rạc

 Bài toỏn phõn tớch thành thừa số

Trong hệ mó húa RSA cỏc bản rừ, cỏc bản mó và cỏc khúa (public key và private key) là thuộc tập số nguyờn ZN ={1,…,N-1}. Trong đú tập ZN với N =pxq là cỏc số nguyờn tố khỏc nhau cựnh với phộp cộng, phộp nhõn mođun N tạo ra mođun số học N

Khúa mó húa EKB là cặp số nguyờn (N, KB) và khúa giải mó DkB 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ó húa và giải mó húa là rất dễ dàng.

Cụng việc mó húa là sự biến đổi bản rừ P (Plaintext) thành bản mó C

(ciphertext) dựa trờn cặp khúa cụng khai KBvà bản rừ P theo cụng thức sau đõy

C = EKB(P) = pKB (mod N) (1)

Cụng việc giảI ma 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 khúa bớ mật kB, mođun N theo cụng thức sau :

P =DkB(C) =CkB (mod N) (2)

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ó đú:

P =DkB (EKB(P)) (3) Thay thế (1) vào (2) ta cú:

( PKB)kB =P (mod N) (4)

Ta thấy N =pxq với p, q là số nguyờn tố. 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)) (5)

Trong đú (N) =LCM(p-1, q-1 ).

Núi một cỏch khỏc, đầu tiờn ngƣời nhận B lựa chọn một khúa cụng khai KB một cỏch ngẫu nhiờn. Khi đú khúa 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).

Hỡnh

Hình 7:Sơ đồ cỏc bƣớc thực hiện mó húa theo thuật toỏn RSA

Vớ dụ:

N=11413=101x113, (N) =100x112 =11200 =26x52x7. KB phải chọn sao cho khụng chia hết cho 2,5, 7. Chọn, chẳng hạn KB =3533 khi đú kB =KB-1 =6579mod11200. Và ta cú khúa cụng khai là (N,KB)=(11413,3533) khúa bớ mật là 6759. Phộp lập mó và giải mó là

EKB(P) =PKB (mod N) =P3533 (mod 11413) DkB(C) =CkB (mod N) =C6579 (mod 11413)

Chẳng hạn với PC =9726, ta cú C =5761

b. Độ 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. Tớnh bảo mật của RSA chủ yếu dựa vào việc giữ bớ mật khúa giải mó hay giữ bớ mật cỏc thừa số p, q của N. Ta thử xột một vài phƣơng thức

Chọn khóa kB Bản mã c Bản rõ P KB kB Tính N=pxq Chọn p và q C=PKB (mod N) Chọn khóa KB Tính (N) Bản rõ gốc P=ckB(mod N)

tấn cụng điển hỡnh của kẻ địch nhằm giải mó trong thuật toỏn này (nhằm xõm phạm tới cỏc yếu tố bớ mật đú).

Trƣờng hợp 1: chỳng ta xột đếnơtrƣờng hợp khi kẻ địch nào đú biết đƣợc mođun N, khúa cụng khai KBvà bản tin mó húa 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 cụngvà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ố mụ đun 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) + (p-1) (q-1) và khoỏ bớ mật KB. 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 N1/2bƣớc, bởi vỡ cú một số nguyờn tố nhỏ hơn N1/2.

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.

Phƣơng thức thứ hai:

Phƣơng thức tấn cụng thứ hai vào hệ mó húa 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à khúa cụng khai KB tức là cú cặp (KB, C).

Trƣờng hợp 2: Chỳng ta xột trƣờng hợp khi kẻ địch nào đú biết đƣợc mođun N và (N), khi đú kẻ địch sẽ tỡm ra bản tin gốc (Plaintext) bằng cỏch sau:

Biết (N) thỡ cú thể tớnh p, q theo hệ phƣơng trỡnh:

P * q = N, (p -1) (q-1) = (N)

Do đú p và q là nghiệm của phƣơng trỡnh bậc hai:

x2- (n - (N) +1 ) + n = 0.

Vớ dụ: n = 84773093, và biết (N) = 84754668. Giải phƣơng trỡnh bậc hai tƣơng ứng ta sẽ đƣợc hai nghiệm p = 9539 và q = 8887.

c. Một số tớnh chất của hệ RSA

Trong cỏc hệ mật mó RSA, một bản tin cú thể được mó húa trong thời thời gian tuyến tớnh.

Đối với cỏc bản tin dài, độ dài của cỏc số đƣợc dựng cho cỏc khúa cú thể đƣợc coi nhƣ là hằng. Tƣơng tự nhƣ vậy, nõng một số lờn lũy thừa đƣợc thực hiện trong thời gian hằng. Thực ra tham số này che dấu nhieeuf chi tiết cài đặt cú liờn quan đến việc tớnh toỏn với cỏc con số 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 khúa của chỳng là cỏc số lớn.

Cỏc khúa cho hệ mó húa 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ó húa cụng khai thỡ khúa giải mó

(Privatekey) KBvà 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 KB hay

khụng nếu cho trƣớc N và KB. Rất khú cú thể tỡm ra đƣợc KBtừ 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ầntớ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.

Số cỏc chữ số trong số đƣợc phõn tớch Thời gian phõn tớch 50 4 giờ 75 104 giờ 100 74 năm 200 4.000.000 năm 300 5 * 1015năm 500 4 *1025năm

Bảng: Thời gian dự đoỏn thực hiện phộp tớnh.

d. ứng dụng của RSA.

Hệ mó húa RSA đƣợc ứng dụng rộng rói chủ yếu cho web và cỏc chƣơng trỡnh email. Ngày nay, RSA cũn đƣợc sử dụng rộng rói trong cỏc cụng nghệ bảo mật sử dụng cho thƣơng mại điện tử (vớ dụ nhƣ cụng nghệ bảo mật SSL v).

2.4. Hàm băm.

Chỳng ta cú thể thấy rằng cỏc sơ đồ chữ kớ núi chung chỉ cho phộp kớ cỏc bức điện nhỏ. Thụng thƣờng khi sử dụng một sơ đồ chữ ký, chữ ký đƣợc sinh ra cú độ dài lớn hơn so với văn bản ký, do vậy kớch thƣớc văn bản sau khi ký sẽ tăng lờn rất nhiều. Và trờn thực tế ta cần ký trờn cỏc bức điện rất dài, chẳng hạn, một tài liệu về phỏp luật cú thể dài nhiều Megabyte.

Một cỏch đơn giản để giải bài toỏn này là chia cỏc bức điện dài thành nhiều đoạn sau đú kớ lờn cỏc đoạn đú độc lập nhau. Điều này cũng tƣơng tự nhƣ mó húa một chuỗi dài bản rừ bằng cỏch mó húa mỗi kớ tự bản rừ độc lập nhau sử dụng cựng một bản khúa. (Vớ dụ: Chế độ ECB trong mó húa).

Biện phỏp này cú một số vấn đề trong việc tạo ra cỏc chữ kớ số. Trƣớc hết, với một bức điện dài, ta kết thỳc bằng một chữ kớ rất lớn. Nhƣợc điểm khỏc là cỏc sơ đồ chữ kớ “an toàn” lại chậm vỡ chỳng dựng cỏc phƣơng phỏp số học phức tạp nhƣ số mũ modulo. Tuy nhiờn, vấn đề nghiờm trọng hơn với phộp toỏn này là bức điện đó kớ cú thể bị sắp xếp lại cỏc đoạn khỏc nhau, hoặc một số đoạn trong chỳng cú thể bị loại bỏ và bức điện nhận đƣợc vẫn xỏc minh đƣợc. Ta cần bảo vệ sự nguyờn vẹn của toàn bộ bức điện và điều này khụng thể thực hiện đƣợc bằng cỏch kớ độc lập từng mẩu nhỏ của chỳng.

Giải phỏp cho tất cả cỏc vấn đề này là dựng hàm HASH mó húa khúa cụng khai nhanh. Hàm này lấy một bức điện cú độ dài tuỳ ý và tạo ra một bản túm lƣợc thụng bỏo cú kớch thƣớc quy định (vớ dụv: 160 bớt với DSS) sau đú bản túm lƣợc thụnng bỏo sẽ đƣợc kớ thay vỡ kớ trực tiếp trờn văn bản gốc.

Khi Bob muốn kớ bức điện x, trƣớc tiờn anh ta xõy dựng một bản túm lƣợc thụng bỏo z = h(x) và sau đú tớnh y = sigk(z). Bob truyền cặp (x,y) trờn kờnh. Xột thấy cú thể thực hiện xỏc minh (bởi ai đúb) bằng cỏch trƣớc hết khụi phục bản

túm lƣợc thụng bỏo z = h(x) bằng hàm h cụng khai và sau đú kiểm tra xem

verk(x,y) cú = true, hay khụng.

Bức điện X cú độ dài bất kỡ

Hỡnh 8:Ký một bản túm lƣợc thụng bỏo

Bản túm lƣợc (giỏ trị của hàm băm) cũn đƣợc gọi là đại diện văn bản (Message digest). Một message digest là cú chiều dài cố định với cỏc đặc điểm nhƣ sau:

 Giỏ trị trả lại của hàm băm duy nhất đối với mỗi giỏ trị đầu vào. Bất kỳ sự thay đổi nào của dữ liệu vào cũng đều dẫn đến một kết quả

sai.

Bản túm lƣợc thụng bỏo z = h(x)

 Từ đại diện văn bản khụng thể suy ra đƣợc dữ liệu gốc là gỡ, chớnh vỡ điều này mà ngƣời ta gọi là one -way.

Nhƣ đó đề cập trong phần mó húa khúa khúa cụng khai, nú cú thể sử dụng khúa bớ mật của bạn choviệc mó húa và khúa khúa cụng khai cho việc giải mó. Cỏch sử dụng cặp khúa nhƣ vậy khụng đƣợc dựng khi cần cú sự bớ mật thụng tin, mà chủ yếu nú dựng để “ký” cho dữ liệu. Thay vào việc đi mó húa dữ liệu, cỏc phần mềm kớ tạo ra message digest của dữ liệu và sử dụng khúa bớ mật để mó húa đại diện đú. Hỡnh 1.8 đƣa ra mụ hỡnh đơn giản húa việc chữ kớ số đƣợc sử dụng nhƣ thế nào để kiểm tra tớnh toàn vẹn của dữ liệu đƣợc ký.

Trong hỡnh 1.8 cú hai phần đƣợc gửi cho ngƣời nhận: Dữ liệu gốc và chữ kớ số. Để kiểm tra tớnh toàn vẹn của dữ liệu, ngƣời nhận trƣớc tiờn sử dụng khúa khúa cụng khai của ngƣời kớ để giải mó đại diện văn bản (Message digest) đó đƣợc mó húa và khúa bớ mật của ngƣời ký. Dựa vào thụng tin về thuật toỏn băm trong chữ ký số, ngƣời nhận sẽ tạo ra đại diện văn bản từ dữ liệu gốc và mới. Nếu cỏc đại diện này giống nhau tức là dữ liệu khụng bị thay đổi từ lỳc đƣợc ký. Nếu khụng giống nhau cú nghĩa là dữ liệu đó bị giả mạo điều này cũng cú thể xảy ra khi sử dụng hai khúa khoỏ khúa cụng khai và khúa bớ mật khụng tƣơng ứng. Compare K K a, Using conventional encryption

Compare Kprivate Kpublic M es sa g e M es sa g e M es sa g e E H D H M es sa g e M es sa g e M es sa g e E H D H

b, Using public-key encryption

Hỡnh 9:Sử dụng chữ ký số để kiểm tra tớnh toàn vẹn của dữ liệu.

Nếu nhƣ hai đại diện văn bản giống nhau, ngƣời nhận cú thể chắc chắn rằng khúa khúa cụng khai đƣợc sử dụng để giải mó chữ ký số là tƣơng ứng với khúa bớ mật đƣợc sử dụng để tạo ra chữ ký số. Để xỏc thực định danh của một đối tƣợng cũng cần phải xỏc thực khúa khúa cụng khai của đối tƣợng đú.

Trong một vài trƣờng hợp, chữ ký số đƣợc đỏnh giỏ là cú thể thay thế chữ ký bằng tay. Chữ ký sốchỉ cú thể đảm bảo khi khúa bớ mật khụng bị lộ. Khi khúa bớ mật bị lộ thỡ ngƣời sở hữu chữ ký khụng thể ngăn chặn đƣợc việc bị giả mạo chữ ký.

iii. CHỮ KÍ Số

chữ kớ của một ngƣời trờn một tài liệu (thƣờng đặt ở cuối bản tin ) để xỏc nhận nguồn gốc hay trỏch nhiệm với tài liệu đú.

Với tài liệu “số hoỏ” (điện tử),nếu chữ kớ cũng đặt ở cuối bản tin, thỡ việc sao chộp lại “chữ kớ số” là hoàn toàndễ dàng và khụng thể phõn biệt dƣợc bản gốc với bản saovỡ chữ kớ số là cỏc số 0,1.

Vậy một “chữ kớ số” đặt cuối “tài liệu loại số” khụng thể chịu trỏch nhiệm đối với toàn bộ nội dung văn bản . “Chữ kớ số” thể hiện trỏch nhiệm đối với toàn bộ tài liệu phải là chữ kớ trờn từng bit của tài liệu đú.

Trong chƣơng này, em trỡnh bày cỏc vấn đề cơ bản nhất về chữ kớ số, cỏc khỏi niệm, cỏc tớnh chất, cỏc sơ đồ kớ hiện đang đƣợc sử dụng.

Chỳng ta khụng thể kớ trờn bất kỡ tài liệu nào với độ dài tuỳ ý, vỡ nhƣ vậy chữ kớ sẽ cú đọ dài rất lớn, ớt nhất cũng dài bằng độ dài của tài liệu đƣợc kớ. Với tài liệu dài, ngƣời ta kớ trờn đại diện của nú. Đại diện của bản tin đƣợc thiột lập qua Hàm băm.

1. Chữ kớ số

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ớ số 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 “khụng nhỡn thấy” theo cỏch nào đố trờn bức điện.

Thứ hai là vấn đề về 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,nƣời bỏn phải so sỏnh chữ kớ trờn mảnh giấy với chữ kớ nằm ở mặt su

Một phần của tài liệu BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ (Trang 30 - 38)

Tải bản đầy đủ (PDF)

(84 trang)