1. Trang chủ
  2. » Tất cả

brief_55903_45201792940GT an toan va bao mat du lieu_Part2

10 3 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 2,62 MB

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

Nội dung

Ý tưởng nằm sau hệ mật khoá công khai là ở chỗ người ta có thể tìm ra một hệ mật trong đó không thể tính toán để xác định dk khi biết ek.. Ưu điểm cùa hệ mật khoá công khai là à chỗ Alic

Trang 1

*1,2 • h,ra

ừ l - •’ym) (* !’• •’^m) *2,1 h,2 ■ ^2,m + ( h | ,b m )

Giả sử Oscar đã biết bản rõ là "adispỉayedequation" và bản mã

tương ứng là "DSRMSIOPLXLJBZULLM" Oscar cũng biết m =3 Hãy tính khoá và chỉ ra tất cả các tính toán cần thiết

8 Sau đây là cách thám mã hệ mã Hill sử dụng phương pháp tấn công chỉ với bản mã Giả sử ta biết m = 2 Chia các bản mã thành các khối có độ dài 2 kí tự (các bộ đôi) Mỗi bộ đôi này là bản mã của một

bộ đôi của bản rõ nhờ dùng một ma trận mã hoá chưa biết Hãy nhặt

ra các bộ đôi thường gặp nhất trong bản mã và coi rằng đó là mã của một bộ đôi thường gặp trong danh sách ở bảng 1.1 (ví dụ TH và ST) Với mỗi giả định, hãy thực hiện phép tấn công với bản rõ đã biết cho tới khi tìm được ma trận giải mã đúng

Sau đây là một ví dụ về bản mã để bạn giải mã theo phương pháp đã nêu:

LMQETXYEAGTXCTUEWNCTXLZEWUAISPZYVAPEWLM GQWVAXFTGMSQCADAGTXLMDXNXSNPJQSYVAPRIQSMHNO CVAXFV

9 Ta sẽ mô tả một trường hợp đặc biệt cùa mã hoán vị Giả sử m, n

là các số nguyên dương Hãy viết bản rõ theo thành từng hàng thành một hình chữ nhật m X n Sau đó tạo ra bản mã bằng cách lấy các cột của hình chữ nhật này Ví dụ, nếu m = 4, n = 3 thì ta sẽ mã hoá bản rõ

"cryptography" bằng c á ch x â y d ự n g h ìn h ch ữ nhật :

cryp togr aphy

Bản mã sẽ là: "CTAROPYGHPRY"

a Hãy mô tả cách Bob giải mã một bản mã (với m, n đã biết)

130

Trang 2

b Hãy giải mã bản mã sau: (nhận được theo phương pháp đã nêu): MYAMRARUYIQTENCTORAHROYWDSOYEOUARRGDERN OGW

10 Hãy chứng minh rằng phép giải mã DES có thể thực hiện bằng cách áp dụng thuật toán mã hoá DES cho bản rõ với bảng khoá đảo ngược

Trang 3

C h ư ơ n g 3

M Ậ T M Ã K H Ó A C Ô N G K H A I

3.1 Giói thiệu chung

Trong mô hình mật mã chúng ta nghiên cứu cho đen nay (mật mã khóa bí mật), Alice và Bob thoả thuận chọn một cách bí mật khoá k Từ k người ta suy ra qui tắc mã hoá ek và qui tắc giải mã dk.Trong các hệ mật này, chúng ta thấy dk hoặc trùng với ek, hoặc dễ dàng rút ra từ ek (ví dụ phép giải mã DES nói chung đồng nhất với phép mã hoá, chỉ khác là lược đồ khoá thỉ đào ngược) Các hệ mật loại này được gọi là hệ mật khoá bí mật (hoặc riêng, hoặc đối xứng), vì việc tiết lộ ek sẽ làm cho hệ thống không an toàn

Một đặc điểm của hệ mật khoá bí mật là ở chỗ nó yêu cầu thoả thuận

về khoá giữa Alice và Bob bằng sử dụng kênh an toàn, trước khi bản mã bất ki được truyền.Trong thực tế thực hiện điều này là rất khó

Ý tưởng nằm sau hệ mật khoá công khai là ở chỗ người ta có thể tìm

ra một hệ mật trong đó không thể tính toán để xác định dk khi biết ek Nếu thế thỉ qui tắc mã ek có thể cho công khai bằng cách công bố nó trong một thư mục (vì thế mới có thuật ngữ hệ mật khoá công khai) Ưu

điểm cùa hệ mật khoá công khai là à chỗ Alice (hoặc ngiròi khác hất kỳ)

CÓ thể gửi thông báo đã mã tới Bob (mà không cần liên lạc trước về khoá

bí mật) bằng cách dùng qui tắc mã hoá công khai eic- Bob sẽ là người duy nhất có thể giải bản mã này bằng cách sử dụng qui tắc giải mã bí mật dk của anh ta

Ta có thể hình dung như sau: Alice đặt một vật vào hộp sắt sau đó khoá nó với cái khoá bấm do Bob để lại Bob là người duy nhất có thể

mờ hộp vi chỉ anh ta có chìa

Một nhận xét rất quan trọng là hệ mật khoá công khai có thể không bao giờ cung cấp độ mật vô điều kiện Đó là vì bằng quan sát bản mã y, đối phương có thể mã hoá mỗi bản rõ có thể nhờ ek cho đến khi tìm thấy 132

Trang 4

X duy nhất thoả mãn y=ek(x) Nghiệm X này ià giải mã của y Như vậy độ

an toàn của các hệ mật khoá công khai là độ an toàn tính toán

Hàm mã hoá công khai ẽk của Bob phải dễ dàng tính toán Chúng ta

ch ú ý rằn g v i ệ c tín h h àm n g ư ợ c , n g h ĩa là v i ệ c g iả i m ã, phái k h ó đ ố i v ớ i

bất kỳ người nào ngoài Bob Tính chất dễ tính toán và khó đảo ngược này thương được gọi là tính chất một chiều (tựa như bán dẫn) Chúng ta mong muốn rằng ek là hàm một chiều

Các hàm một chiều đóng vai trò trung tâm trong mật mã, chúng quan trọng đối với việc thiết lập các hệ mật khoá công khai và trong các nội dung khác Đáng tiếc là, mặc dù có nhiều hàm được người ta tin là hàm một chiều, nhưng hiện nay vẫn chưa có hàm nào được chứng minh

là hàm một chiều

Nếu ta định thiết lập hệ mật khoá công khai thì việc tìm hàm một chiều là chưa đù Bob muốn có thể giải mã các thông báo nhận được một cách có hiệu quả Như vậy Bob cần có một cửa sập (trap door), nó chứa thông tin bí mật cho phép dễ dàng đảo ngược ek Nghĩa là Bob có thể giải

mã hiệu quả vì anh ta có tri thức bí mật đặc biệt về k Do đó ta nói rằng: f(x) là hàm một chiều cửa sập nếu đó là hàm một chiều, nhưng nó trở nên

dễ đào nguợc khi có tri thức về cửa sập xác định Nói chung, có những cách để tìm cửa sập của hàm một chiều

Sau dãy là một ví dụ về một hàm đưực coi là hàm mội chiều Giả sử

n là tích của hai số nguyên tố lớn p và q, giả sử b là một số nguyên dương Khi đó ta xác định ánh xạ f : Zn -> Zn là f (x ) = x b m od n (với b

và n đã được chọn thích hợp thì đây chính là hàm mã RSA, sau này ta sẽ nói nhiều hơn về nó)

Ý tưởng về một hệ mật khoá công khai được Diffie và Hellman đưa

ra vào năm 1976 Còn việc hiện thực hoá nó thì do Rivesrt, Shamir và Adleman đưa ra lần đẩu tiên vào năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA (sẽ được nghiên cứu trong chương này) Kể từ đó đã công bố một số hệ, độ mật của chúng dựa trên các bài tính toán khác nhau Trong

đó, quan trọng nhất là các hệ mật khoá công khai sau:

Trang 5

- Hệ mật RSA:

Độ bảo mật của hệ RSA dựa trên độ khó của việc phân tích ra thừa

số nguyên lớn

- Hệ mật Rabin:

Độ bảo mật của hệ Rabin cũng dựa trên độ khó của việc phân tích ra thừa số nguyên lớn

- Hệ mật ElGamal:

Hệ mật ElGamal dựa trên tính khó giải của bài toán logarit ròi rạc trên các trường hữu hạn

- Hệ mật trên các đường cong Elliptic:

Các hệ mật này là biến tướng của các hệ mật khác (chẳng hạn như

hệ mật ElGamal), chúng làm việc trên các đường cong Elliptic chứ không phải là trên các trường hữu hạn Hệ mật này đảm bảo độ mật với số khoá nhỏ hơn các hệ mật khoá công khai khác

- Hệ mật xếp ba lô Merkle - Hellman:

Hệ này và các hệ liên quan dựa trên tính khó giải của bài toán tổng các tập con (bài toán này là bài toán NP đầy đủ - là một lớp khá lớn các bài toán không có giải thuật được biết trong thời gian đa thức) Tuy nhiên tất cả các hệ mật xếp ba lô khác nhau đều đã bị chứng tỏ là không an toàn (ngoại trừ hệ mật Chor-Rivest)

- Hệ mậtMcEliece:

Hệ này dựa trên lý thuyết mã đại số và vẫn còn được coi là an toàn

Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính (cũng

là một bài toán NP đầy đủ)

- Hệ mật Chor-Rivest:

Hệ mật Chor-Rivest cũng được xem như một hệ mật xếp ba lô Tuy nhiên nó vẫn được coi là an toàn

134

Trang 6

3.2 Hệ m ật RSA

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

Bài toán phân tích một số nguyên n >1 thành thừa số nguyên tố cũng được xem là một bài toán khó thường được sử dụng trong lý thuyết mật mã Biết một số n là hợp số thì việc phân tích n thành thừa

số mới là có nghĩa, do đó thường khi để giải bài toán phân tích n thành thưa số, ta thử trước n có là hợp số hay không; và bài toán phân tích n

thành thừa số có thể dẫn về bài toán tìm một ước so của n, vì khi biết

một ước số d cùa n thì tiến trình phân tích n được tiếp tục thực hiện bằng cách phân tích d và nịd

Bài toán phân tích thành thừa số, hay bài toán tìm ước số của một số

nguyên cho trước, đã được nghiên cứu nhiều, nhưng cũng chưa có một thuật toán hiệu quả nào để giải nó trong trường hợp tổng quát mà người

ta có xu hướng giải bài toán này theo những trường hợp đặc biệt của số cần phải phân tích, chẳng hạn khi n có một ước số nguyên tố p với p - 1

là B-mịn với một cận B > 0 nào đó, hoặc khi n là số Blum, tức là số có dạng tích của hai số nguyên tố lớn nào đó (n = p.q)

Ta xét trường hợp thứ nhất với (p - 1) - thuật toán Pollard như sau: Một số nguyên n được gọi là B-mịn nếu tất cả các uớc số nguyên tố của

nó đều < B Ý chính chứa trong (p - 1) - thuật toán Pollard như sau: Giả

sừ 11 là B -m ịn Kí liiệu Q là bội chung bó nhất của tất cả các lũy thừa cùa

các số nguyên tố < B mà bản thân chúng < n Nếu q' < n thì /lnq < ln/7,

ln/ỉ

tức / <

ln q

Ta có:

(Ị_JC J là số nguyên bé nhất lớn hơn x)

[lnn/lngj

e = n ?

q<B

Trong đó tích lấy theo tất cả các số nguyên tố khác nhau q < B Nếu

p là một thừa số nguyên tố của n sao cho p - 1 là B-mịn thỉ p-l|Q và do

đó với mọi a bất kì thỏa mãn gcd(a, p) = 1, theo định lý Fermat ta có ay=

Trang 7

1 mod p Vì vậy, nếu lấy d = gcd(aQ - 1 ,n) thì p|d Neu d = n thì coi như thuật toán không cho ta điều mong muốn, tuy nhiên điều đó chắc không xảy ra nếu n có ít nhất hai thừa số nguyên tố khác nhau Từ những lập luận đó ta có:

(p — l)-thuật toán Pollard phân tích thành thừa số:

VÀO: một hợp số n không phải lũy thừa của một số nguyên tố RA: một thừa số không tầm thường của n

1 Chọn một cận cho độ mịn B

2 Chọn ngẫu nhiên một số nguyên a, 2 < a < n - 1, và tính d = gcd(a, n) Nếu d > 2 thỉ cho ra kết quả (d)

3 Với mỗi số nguyên tố q < B thực hiện:

ln n

3.1 Tính / =

ln q

3.2 Tính a mod n

4 Tính d = gcd(a - 1, n)

5 Nếu 1 < d < n thì cho ra kết quả (d) Nếu ngược lại thì thuật toán coi nhu không có kết quả

Ví dụ 3.1 Dùng thuật toán cho số n = 19048567 Ta chọn B = 19, và

a = 3 và tính được gcd (3, n) = 1 Chuyến sang thực hiện bước 3 ta đuợc bảng sau đây (mỗi hàng ứng với một giá trị của q):

Bảng 3.1 Kết quả tính bước 3 của thuật (oán Pollard

136

Trang 8

11 6 9685355

Sau đó ta tính d = gcd (554506 - 1, 19048567) = 5281 Vậy ta được một thừa số p = 5281, và do đó một thừa số nữa là q = n/p = 3607 Cả hai thừa số đó đều là số nguyên tố

Chú ý rằng ở đây p - 1 = 25.3.5.11, có tất cả các ước số nguyên tố đều < 19, do đó chắc chắn thuật toán sẽ kết thúc có kết quả Thuật toán sẽ kết thúc không có kết quả khi độ mịn B được chọn quá bé để không một thùa số nguyên tố p nào của n mà p - 1 chỉ chứa các ước số nguyên tố <

B Như vậy, có thể xem (p-l)-thuật toán Pollard phân tích n thành thừa số nguyên tố là có hiệu quả đối với những số nguyên n là B-mịn, người ta tính được thời gian cần để thực hiện thuật toán đó là cỡ o (#ln/í/ln#) phép nhân theo môdulo

Bây giờ ta xét trường hợp các số nguyên Blum, tức là các số có dạng

n = p.q, tích của hai số nguyên tố lớn Trước hết ta chú ý rằng nếu ta biết hai số nguyên khác nhau X , V sao cho x2= y2 mod n thì ta dễ tìm được một thừa số của n Thực vậy, tò x2= y2 mod n ta có X2 - y2 = (x - y) (x + y)

chia hết cho n, do n không là ước số của X + y hoặc X - y nên gcd(x - y,

n) phải là một ước số của n, tức bằng p hoặc q

Ta biết nếu n = p.q là số Blum thì phương trình đồng dư

x2= a2 mod n

có 4 nghiệm , hai nghiệm tầm thường là X = a và X = -a Hai nghiệm

không tầm thường khác là ± b, chúng là nghiệm cùa hai hệ phương trình đồng dư bậc nhất sau đây:

Trang 9

Bằng lập luận như trên ta thấy rằng nếu n là số Blum, a là một số nguyên tố với n và ta biết một nghiệm không tầm thường của phuơng

trình X = a2 mod n, tức biết một X í ± a sao cho x 2= a2 m od n thỉ gcd(x-a,

n) sẽ là một ước số của n Những điều trên đây là căn cứ cho một số phương pháp tìm ước số nguyên tố của một số nguyên dạng Blum; ý chung của các phương pháp đó là dẫn về việc tim một nghiệm không tầm thường của một phương trinh dạng X = a2 mod n, chẳng hạn như phương

trình X 3 1 mod n

Một trường hợp khá lý thú trong lý thuyết mật mã là khi ta biết hai

số a, b là nghịch đảo của nhau theo mod <ị)(n) (nhung không biết ộ(n)) và tìm một phân tích thành thừa số của n Bài toán được đặt ra cụ thể là: Biết n có dạng Blum, biết a và b sao cho ab = 1 mod <|)(n) Hãy tìm một ước số nguyên tố của n, hay tỉm một nghiệm không tầm thường của phương trình x2= 1 mod n Ta giả thiết ab - 1 = 2s.r với r là số lẻ Ta phát triển một thuật toán xác suất kiểu Las Vegas như sau: Ta chọn một số

ngẫu nhiên V (1 < V < n - 1) N ếu may mắn V là bội số của p hay q, thỉ ta đuợc ngay một ước số cùa n là gcd(v, n) N ếu V nguyên tố với n, thỉ ta

tính các bình phương liên tiếp kể từ vr, được vr, v2r, v4r, cho đến khi

được vỉ r = lmodrt với một t nào đó số t như vậy bao giờ cũng đạt được

vỉ có 2s.r = 0 mod ộ(n) nên có v i r = 1 mod n Như vậy, ta đã tim được

cũng có X Ỷ -1 m odn thì X là nghiệm không tầm th ư ờ n g của x 2= 1 m od n,

từ đó ta có thể tìm ước số của n Nếu không thỉ thuật toán coi như thất

bại, cho ta kết quả không đúng Người ta có thể ước lượng xác suất cho

kết quả k h ô n g đ ú n g với một lần thử với một số V là < 1/2, do đó nếu ta

th iế t k ế th u ậ t to á n v ớ i m s ố n g ẫ u n h iê n V i, v m, th ì s ẽ c ó th ể đ ạt đư ợ c xác suất cho kết quả không đúng là < l/2 m!

3.2.1 Thuật toán mã hóa, giải mã RSA

Giả sử n=p.q,trong đó p,q là hai số nguyên tố lẻ khác nhau và <ỉ>(n)

là hàm ơle Hệ mật RSA được định nghĩa nhu sau:

138

Trang 10

Cho p = c = z n ; K={(n,p,q,a,b) : ab=l mod O(n)}

Với mỗi k=(n,p,q,a,b), quy tắc mã hóa và giải mã của hệ mật RSA được xác định như sau:

ek(x)=xb mod n

3.2.2 Kiểm tra qui tắc giải mã

Do ab=l mod <t>(n), 0(n )= (p -l)(q -l)= O(p) O(q) nên

a b = l+ tO (n ),vớ i t là số nguyên khác 0 Chú ý rằng 0< X <n.

(*) Giả sử (x ,n )= l, ta có

ya mod n = (xb)a mod n = x 1+tll)<n) mod n = x[x°(n)mod n] mod n

= x l mod n (v ì (x,n) =1 nên x<I>(n> mod n= l)

= X ( do x<n )

(**) Nếu (x,n) = d > 1 thì d=p hoặc d=q hoặc d=n

Nếu d=n thì X = 0 và đương nhiên y = 0 Do đó yamod n = 0 = X.

Giả sử d=p khi đó do 0< X <n nên x= p Ta có:

yamod n = xabmod n = pabmod n

Ký hiệu

u = pabmodn;

Thế thì,

u +kn = pab, 0< u <n, hay u+kpq = pab

Do đó

u = p(pab_1-k:q) = p (p t<I>(n)-kq)

v ế phải chia hết cho p nên vế trái phải chia hết cho p, nghĩa là u phải chia hết cho p Nhung 0< u <n nên hoặc u=0 hoặc u=p Nếu u=0 thì pab_1 chia hết cho q Suy ra p chia hết cho q Vô lý vì p,q là hai số nguyên

tố khác nhau Thế thì u=p=x, tức là yamod n = X.

Vậy (xb)a mod n = X, V xe[l,n-1]

Ngày đăng: 12/04/2022, 19:06

🧩 Sản phẩm bạn có thể quan tâm

w