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

MẬT MÃ ỨNG DỤNG TRONG THANH TOÁN ĐIỆN TỪ.DOC

4 735 5
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mật mã ứng dụng trong thanh toán điện tử
Tác giả GS. TS. Phan Đình Diệu
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Mật mã học
Thể loại bài viết
Thành phố Hà Nội
Định dạng
Số trang 4
Dung lượng 166 KB

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

Nội dung

MẬT MÃ ỨNG DỤNG TRONG THANH TOÁN ĐIỆN TỪ

Trang 1

ài này nhằm bổ sung cho bài “An toàn thông tin

trong thơng mại điện tử”[1]bằng một số trình

bầy chi tiết hơn, có tính chất toán học và kĩ

thuật, về các nội dung của lý thuyết mật mã, cơ

sở của các giải pháp đã đợc đề cập trong bài trớc

[1]

I Mật mã và cơ sở lý thuyết mật mã

hiện đại

1 Mật mã khoá

Mật mã đã đợc nghiên cứu và sử dụng từ rất

lâu trong lịch sử loài ngời Tuy nhiên chỉ vài ba

chục năm gần đây, nó mới đợc nghiên cứu công

khai và tìm đợc các lĩnh vực ứng dụng trong đời

sống công cộng với sự phát triển của kỹ thuật

tính toán và viễn thông hiện đại Và từ đó, ngành

khoa học này đã phát triển rất mạnh mẽ, đạt đợc

nhiều kết quả lý thuyết sâu sắc và tạo cơ sở cho

việc phát triển các giải pháp bảo mật và an toàn

thông tin trong mọi lĩnh vực hoạt động của con

ngời ở thời đại mà công nghệ thông tin đợc ứng

dụng rộng khắp

Việc ra đời các máy tính điện tử có năng lực

tính toán lớn cùng với việc phát hiện nhiều loại

bài toán đòi hỏi những năng lực tính toán còn

lớn hơn gấp bội đã đa đến việc nghiên cứu về độ

phức tạp tính toán, và một quan niệm về bí mật

gắn với độ phức tạp tính toán Một giải pháp đợc

gọi là bí mật lý tởng, nếu để “phá” đợc giải

pháp đó (tức là giải đợc bí mật đó) cần phải thực

hiện một quá trình tính toán cực kì phức tạp

(chẳng hạn đòi hỏi tính toán hàng triêụ năm trên

máy tính), phức tạp đến mức mà ta coi là

“không thể đợc” trên thực tế

Với quan niệm mới về “bí mật” đó, ngời ta đã

cải tiến và tạo mới nhiều giải pháp mật mã chỉ

có thể thực hiện đợc bằng các công cụ tính toán

hiện đại Các hệ thống mật mã theo phơng thức

“khoá đối xứng” cổ điển, nhng lấy “độ phức tạp tính toán” làm tiêu chuẩn cho độ bảo mật, nh hệ DES, đã đợc chọn làm chuẩn cho truyền tin bảo mật trong mấy chục năm gần đây

ở đây, ta sẽ giới thiệu chủ yếu các hệ thống mật mã khoá công khai là cống hiến mới của lý thuyết mật mã hiện đại, cùng nhiều ứng dụng của nó mà các giải pháp mật mã cổ điển không thể có đợc

2.Mật mã khoá công khai là gì?

Cơ sở của các hệ thống mật mã khoá công khai là lý thuyết toán học về các “hàm một phía” hay “hàm cửa sập một phía”, đợc định nghĩa nh sau:

Hàm số học f là hàm một phía, nếu biết x, tính

y = f(x) là dễ, còn ngợc lại, biết y, tìm x sao cho f(x) = y, hay x = f -1 (y), là rất khó

Hàm f là hàm cửa sập một phía, nếu nó là hàm

một phía, nhng có một chốt cửa sập z để nếu biết

chốt z đó thì việc tính ngợc x từ y sẽ trở thành

dễ (Dễ, là có độ phức tạp tính toán chấp nhận đ-ợc; rất khó là có độ phức tạp tính toán không vợt qua nổi trên thực tế)

Thí dụ: Giả sử p là một số nguyên tố rất lớn,

g là một căn nguyên thuỷ modulo p (tức g là

phần tử sinh của nhóm Z p gồm các số bé hơn p

và nguyên tố với p).

Ta có Hàm y = f(x) = g x (mod p) là hàm một

phía, vì biết x tính y là khá đơn giản, nhng biết y

để tính x thì với các thuật toán đã biết hiện nay

đòi hỏi một khối lợng tính toán cỡ

O(exp(lnp.lnlnp) 1/2 ) phép tính (nếu p là số

nguyên tố cỡ 200 chữ số thập phân, thì khối l-ợng tính toán trên đòi hỏi một máy tính 1 tỷ phép tính/giây làm việc không nghỉ trong

GS TS Phan Đình Diệu

Trang 2

khoảng 3000 năm!) Giả sử n = p.q là tích của

hai số nguyên tố lớn p, q và e là một số nguyên

tố với ϕ(n) = (p-1)(q-1) Biết p, q, dễ tính đợc d

sao cho de 1 mod ϕ(n).

Hàm y= f(x) = x e mod n là hàm một phía, vì

biết x tính y và biết y để tính x (trong trờng hợp

chỉ biết n) là rất khó, đòi hỏi một khối lợng tính

toán cũng tơng tự nh cách trích trên

O(exp(lnp.lnlnn) 1/2 ) Tuy nhiên, nếu biết thêm d

(hay biết p, q, vì từ đó cũng dễ tính ra d), thì từ y

tìm x lại khá dễ, vì y d = x de = x (mod n) Nh vậy,

y = f(x) là hàm cửa sập một phía, và d là chốt

cửa sập

Trên đây là hai thí dụ điển hình, và cũng là hai

trờng hợp đợc sử dụng rộng rãi, về hàm một phía

và hàm cửa sập một phía Vì đây là những điểm

then chốt của lý thuyết mật mã khoá công khai,

nên việc tìm kiếm các loại hàm một phía và cửa

sập một phía đợc nghiên cứu rất khẩn trơng, và

đến nay tuy có đạt đợc một số kết quả, nhng

việc tìm kiếm vẫn tiếp tục, đầy hứng thú nhng

cũng đầy khó khăn

II Mật mã khoá công khai với an

toàn thông tin

1 Truyền tin bảo mật:

Trong các hệ thống bảo mật cổ điển, hai ngời

muốn truyền tin bí mật cho nhau phải thoả thuận

một khoá mật mã chung K, K vừa là khoá để lập

bản mật mã C từ bản rõ P, và cũng là khoá để

giải mã từ C tìm lại P theo các phép lập mật mã

C = E K (P) và phép giải mã P = D K (C) Tất nhiên

ta có D K (E K (P)) = P Khoá K phải giữ kín, chỉ

có hai ngời biết

Mật mã khoá công khai dựa trên ý tởng sau

đây: có thể tách riêng hai quá trình lập mã và

giải mã với hai khoá riêng biệt Bí mật là dành

cho ngời nhận tin, nên khoá giải mã phải đợc

giữ mật cho ngời nhận tin, còn việc lập mã để

gửi đến một ngời A có thể công khai để mọi

ng-ời có thể dùng để gửi thông tin mật cho A ý

t-ởng đó đợc thực hiện nhờ vào các hàm cửa sập

một phía Thí dụ về hàm cửa sập một phía kể

trên là cơ sở của hệ mật mã khoá công khai nổi

tiếng RSA (do Rivest-Shamir-Adleman đề xuất)

Một ngời A chọn một số nguyên n ( n = pq nh

trên) và một số e A công bố công khai khoá lập

Kp = (n, e) và giữ bí mật cho riêng mình

khoá giải mã Ks = d Ai cũng có thể gửi thông

báo bí mật đến A, cụ thể, nếu thông báo là P (để

tránh phức tạp cho trình bầy, ta giả thiết P đã

đ-ợc qui về dạng con số modulo n), thì bản mật mã

tơng ứng là C = P e mod n A nhận đợc C, và chỉ

riêng A giải đợc từ C tìm lại P, vì P = C d mod n

Muốn phá mã thì phải biết d, mà biết d tơng

đ-ơng với việc tìm ra p, q là việc rất khó nh đã nói ở

phần trên

Một hệ mật mã khoá công khai khác xây dựng trên cơ sở bài toán phân tích số nguyên thành thừa số nguyên tố là hệ mật mã Rabin Giả sử A

chọn một số nguyên n = pq, với p, q là các số

nguyên tố lớn dạng 4m+3, và một số B Khoá

công khai là Kp = (n, B), và khoá bí mật là Ks = (p, q) Thuật toán lập mã E Kp và giải mã D Ks

trong trờng hợp này là:

E Kp (p) = P(P + B) mod n,

D Ks (c) = B 2 / 4 + C - B/2 mod p

Thuật toán giải mã là dễ thực hiện nếu biết p, q; do đó chỉ có A là giải mã đợc dễ dàng, còn

ngời khác không biết p, q thì tính D Ks cũng khó

tơng đơng với việc tìm các thừa số p, q.

Ta giới thiệu thêm một hệ mật mã khoá công khai khác là hệ ElGamal Giả sử hệ xác định

một số nguyên tố lớn p và một căn nguyên thuỷ

g mod p p và g có thể dùng chung cho cả hệ

thống gồm nhiều ngời Mỗi thành viên A chọn

và giữ bí mật một số a (Ks = a); tính b = g a mod

p và công bố công khai b (Kp = b) Mỗi lần một

thành viên khác muốn gửi bí mật một thông báo

P cho A thì làm nh sau: chọn ngẫu nhiên một số

r p-1, rồi tính

E Kp (P, r) = (C 1 , C 2 ),

trong đó

C 1 = g r mod p, C 2 = Pb r mod p.

C = (C 1 , C 2 ) là bản mật mã đợc gửi đến A

Với khoá Ks = a, A sẽ giải mã nh sau: D Ks (C) =

C 2 (C 1 ) -1 mod p.

Dễ thử lại rằng D Ks (C) = P.

Hệ mật mã này có một đặc điểm quan trọng: mỗi lần lập mã, ngời gửi có thể chọn thêm một yếu tố ngẫu nhiên để tăng độ mật của bản mã,

nh vậy trên thực tế mỗi lần lập mã đều có sử dụng thêm một khoá riêng

Tính u việt của mã khoá công khai là ở chỗ: trong một hệ truyền tin bảo mật không ai phải trao đổi khoá bí mật trớc với ai cả, mỗi ngời chỉ giữ cái mật mã riêng của mình mà vẫn truyền tin bảo mật đợc với mọi ngời khác Điều này đặc biệt quan trọng khi việc truyền tin đợc phát triển trên các mạng rộng, nh Internet với số ngời sử dụng gần nh không hạn chế Mặt khác, nh trên

Trang 3

đã nói, mật mã khoá công khai không chỉ có tác

dụng với bảo mật, mà còn nhiều ứng dụng đặc

sắc khác nh sẽ đợc trình bầy trong các phần sau

2- Bài toán xác nhận.

Trong cách giao thiệp truyền thống, một chữ kí

viết tay của ngời gửi dới một văn bản không có

tẩy, xoá là đủ để xác nhận ngời gửi là ai, ngời

gửi có trách nhiệm về văn bản và sự toàn vẹn

của văn bản, và cũng không thể chối bỏ trách

nhiệm về chữ kí của mình Nhng trong truyền

tin điện tử, văn bản chỉ là một dãy bit mà “chữ

kí” cũng chỉ có thể là một dãy bit, nên nếu mã

hoá phần văn bản riêng, phần chữ kí riêng rồi

ghép lại thì không còn có đợc tính chất nh theo

cách truyền thống nói trên “Chữ kí điện tử”, để

thực hiện đợc các chức năng xác nhận nh nói

trên, của một ngời gửi trên một văn bản phải làm

sao vừa mang dấu vết không chối cãi đợc của

ngời gửi, vừa phải gắn bó với từng bit của văn

bản mà nếu thay đổi dù chỉ là một bit của văn

bản thì chữ kí cũng không còn đợc chấp nhận

Những yêu cầu đó, may thay, lại có thể đợc giải

quyết bằng phơng pháp mật mã khoá công khai

Chẳng hạn, với thí dụ của hệ RSA, hệ này

cũng có thể đợc dùng một cách đối ngẫu, để đợc

một sơ đồ chữ kí, gọi là sơ đồ chữ kí RSA:

Một ngời dùng A chọn K p = (n, e) là khoá

công khai và giữ K s = d là khoá mật của mình

Bây giờ để kí trên một văn bản M, A dùng thuật

toán kí sig A trên M:

sig A (M) = M d mod n

M d mod n là chữ kí của A trên văn bản M (M

n; thông thờng, văn bản có thể dài, nhng ta

muốn có chữ kí ngắn Để làm điều đó ngời ta

dùng kĩ thuật hàm băm biến mỗi văn bản có độ

dài tuỳ ý thành một digest có độ dài ≤ n, và kí

trên digest đó Kĩ thuật hàm băm là một vấn đề

quan trọng, có thể đợc đề cập trong một dịp khác

Chú ý rằng chỉ có A mới tạo ra đợc chữ kí đó

(vì có khoá mật d) A gửi (M, sig A (M)) đến ngời

nhận Dùng khoá công khai K p = (n, e), ta có

một điều kiện kiểm thử ver A (x, y) để xác nhận y

có đúng là chữ kí của A trên văn bản x hay

không Trong trờng hợp này, ver A (x, y) = df (y e

x mod n)

Rõ ràng ver A (x, y) đúng nếu x = M, y = sig A (M)

Ngời nhận thử, nếu thấy ver A nghiệm đúng, thì

xác nhận chữ kí của A trên M và cả tính toàn

vẹn của M.

Trong thực tế, ngời ta thờng dùng các sơ đồ

chữ kí do cải tiến hoặc bổ sung từ sơ đồ chữ kí ElGamal sau đây: Giả sử ta chọn chung một số

nguyên tố lớn p và một căn nguyên thuỷ g mod

p Mỗi thành viên A chọn một khoá bí mật a, và

công bố khoá công khai b ( = g a mod p) Thuật

toán kí sig A và điều kiện kiểm thử ver A đợc xác

định nh sau: Để kí văn bản M, A lấy thêm một

số ngẫu nhiên (và giữ bí mật) r , rồi lập chữ kí sig A (M, r) = (y, z), trong đó:

y = g r mod p ; z = (M - ay) r -1 mod (p-1) (y, z) là chữ kí của A trên văn bản M Điều

kiện kiểm thử đợc xác định bởi

ver A (M, (y, z)) = df (b y y z g M mod p).

Dễ thử lại rằng ver A (M, (y, z)) đúng khi (y, z)

là chữ kí của A trên văn bản M.

Trên cơ sở sơ đồ chữ kí ElGamal, với một số

bổ sung để bảo đảm tốt hơn độ tin cậy, ngời ta

đã xây dựng sơ đồ chữ kí DSS, đợc chấp nhận là chuẩn chữ kí điện tử trong một số lĩnh vực giao dịch ở Mỹ từ đầu những năm 90

Các sơ đồ chữ kí nói trên đợc thực hiện không cần đối thoại Tuy nhiên, trong một số trờng hợp

để ràng buộc trách nhiệm rõ ràng trong việc xác nhận, ngời ta dùng các giao thức có tính chất đối thoại (hay chất vấn) qua một vài lần hỏi đáp để chính thức xác nhận tính đúng đắn của chữ kí, tính toàn vẹn của văn bản, hay để buộc chấp nhận (không thể thoái thác hoặc chối bỏ) chữ kí của mình.[1], [2]

3 Phân phối khoá và thoả thuận khoá

Để thực hiện việc truyền tin bảo mật trong các

hệ cổ điển với việc sử dụng các phơng pháp mật mã khoá đối xứng, từng cặp ngời phải có cách

an toàn để thoả thuận và truyền cho nhau các khoá bí mật chung Hiện nay, việc dùng các hệ mật mã khoá đối xứng nh DES vẫn còn khá thông dụng; tuy nhiên phơng pháp mã khoá công khai có thể giúp cho các thành viên trong mạng trao đổi và thoả thuận khoá bí mật với nhau bằng mạng truyền thông công cộng Một thí dụ là giao thức trao đổi Diffie-Hellman sau

đây: Giả thử trong hệ thống đã qui định sử dụng chung một số nguyên tố lớn p và một căn

nguyên thuỷ g mod p Mỗi thành viên Ai trong

hệ thống tự chọn và giữ bí mật một số a i làm

khoá bí mật của mình, đồng thời tính b i = g ai

khai của mình (ta nhớ rằng biết a i để tính b i là

dễ, còn ngợc lại, biết b i mà tìm ra đợc a i là cực

kì khó) Hai ngời Ai và Aj khi muốn trao đổi

Trang 4

thông tin mật với nhau thì có thể cùng tạo ra

khoá riêng của hai ngời nh sau: Ai tính b j ai mod

p, Aj tính b i aj mod p , hai giá trị đó bằng nhau và

đợc xem là khoá riêng của Ai và Aj :

K ij = b j ai mod p = b i aj mod p.

Mỗi ngời có đợc khoá K ij đó bằng cách kết

hợp cái bí mật của mình với cái công khai của

ngời kia Ngoài Ai và Aj không ai có thể tìm đợc

K ij !

Về nguyên tắc, trên mạng truyền thông công

cộng, kể cả mạng lớn nh Internet, với phơng

pháp mã hoá công khai, có thể tổ chức các hệ

thống trao đổi thông tin bảo mật mà không ngời nào phải trao đổi trớc một bí mật nào của mình với ngời khác Tuy nhiên, tuỳ theo yêu cầu của

độ an toàn và tin cậy, các hình thức tổ chức có

sự quản lí, điều phối tập trung theo mức độ nào

đó vẫn là cần thiết Và do đó, việc quản trị khoá, phân phối khoá, thoả thuận khoá, chuyển vận khoá với sự can thiệp của trọng tài, theo các

yêu cầu tổ chức khác nhau vẫn là một vấn đề rất

đợc quan tâm, đã và đang tiếp tục đợc nghiên cứu rộng rãi

.

Ngày đăng: 24/08/2012, 22:06

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w