Tải bản đầy đủ - 0 (trang)
Hình 1.14 Mật hóa và xác thực tin gửi bằng khóa công khai

Hình 1.14 Mật hóa và xác thực tin gửi bằng khóa công khai

Tải bản đầy đủ - 0trang

37



khai. Do đó, mơ hình mã hóa trên được gọi là mã hóa khóa cơng khai (hay mã hóa

bất đối xứng). Để thuận tiện ta quy ước lại các ký hiệu như sau:

Để tránh nhầm lẫn với khóa bí mật của mã đối xứng, khóa bí mật trong mơ

hình mã hóa khóa cơng khai được gọi là khóa riêng (Private Key) và ký hiệu là .

Khóa cơng khai (Public Key) được ký hiệu là Nếu muốn chỉ cặp khóa của ai đó thì

thêm tên của người này vào.

Ví dụ và là để chỉ cặp khóa cơng khai và bí mật của A (viết tắt của Alice).

Bản rõ được ký hiệu là , còn bản mã được ký hiệu là .

Khi đó, nếu A muốn gửi cho B và chỉ cho B đọc được thì A mã hóa bằng khóa

cơng khai của B; Khi nhận được bản mã, B dùng khóa riêng của mình để giải mã

ra :

(1.12)



Còn nếu A muốn B xác thực là do A đích thân soạn và gửi thì A mã hóa bằng

khóa riêng của mình; Khi nhận được bản mã, B dùng khóa cơng khai của B để giải

ra :

(1.13)



Hai khóa và khơng thể nào hồn tồn độc lập với nhau. Phải có một mối quan

hệ nào đó giữa và thì mới có thể tiến hành mã hóa và giải mã được. Có nghĩa là tồn

tại một hàm sao cho (). Tuy nhiên một yêu cầu rất quan trọng là việc tính () phải

là bất khả thi về mặt thời gian. Nếu nguyên tắc này bị vi phạm thì việc giữ bí mật

khóa khơng còn ý nghĩa vì từ khóa cơng khai có thể tính được

Để có được cặp khóa và như trên, người ta thường dùng các hàm một chiều. Các

hàm một chiều có tính chất là hàm nghịch đảo của chúng rất khó thực hiện.

1.9.1 Lý do phải sử dụng mã hóa khố cơng khai





Phân phối khố: làm sao có thể phân phối khóa an tồn mà khơng cần trung



tâm phân phối khố tin cậy.



38







Chữ ký điện tử: làm sao có thể kiểm chứng được rằng thông tin gửi đến là

nguyên vẹn và từ đúng người đứng tên gửi.



1.9.2 Các đặc trưng cần phải có của mã hóa khóa cơng khai





Khơng có khả năng tính tốn để tìm khố giải mã nếu chỉ biết thuật tốn mã

và khố dùng để mã.







Có thể dễ dàng mã hoá hoặc giải mã mẩu tin nếu biết khoá tương ứng.







Trong một số sơ đồ, một khoá bất kỳ trong hai khố có thể dùng để mã, còn

khố kia dùng để giải mã. Chúng có vai trò đối ngược nhau.

Có nhiều phương pháp mã hóa thuộc loại mã hóa khóa cơng khai.

Đó là các phương pháp Knapsack, RSA, Elgaman, và phương pháp đường



cong elliptic ECC….

Mỗi phương pháp sử dụng một hàm một chiều khác nhau.

1.10. Cơ sở toán học của luận án

1.10.1 Định nghĩa Modulo.

Cho số tự nhiên và số nguyên . Ta định nghĩa:



là phần dư dương khi chia



cho .

Định nghĩa quan hệ tương đương trên tập số nguyên:

(1.14)



khi và chỉ khi và có phần dư như nhau khi chia cho .

Các phần tử cùng cột là có quan hệ đồng dư với nhau. Tập các đại diện của các

số nguyên theo Modulo gồm phần tử ký hiệu như sau:

(1.15)



Ước số

Số b không âm được gọi là ước số của a, nếu có số m sao cho trong đó

nguyên.

Tức là chia hết cho , ký hiệu là



đều



39



1.10.2 Các phép toán số học trên Modulo

Cho trước một số . Ta muốn thực hiện các phép toán theo Modulo của n. Ta

có thể thực hiện các phép tốn trên các số nguyên như các phép cộng, nhân các số

nguyên thông thường sau đó rút gọn lại bằng phép lấy Modulo hoặc cũng có thể vừa

tính tốn, kết hợp với rút gọn tại bất cứ thời điểm nào:

(1.16)

(1.17)



Như vậy khi thực hiện các phép tốn ta có thể thay các số bằng các số tương

đương theo Modulo n đó hoặc đơn giản hơn có thể thực hiện các phép tốn trên các

đại diện của nó:

Tính chất rút gọn:

(1.18)



Nhưng , thì chỉ khi nếu a là nguyên tố cùng nhau với

1.10.3 Ước số chung lớn nhất.

Bài toán. Cho hai số nguyên dương a và b. Bài tốn tìm ước chung lớn nhất của hai

số nguyên dương là bài toán chung của lý thuyết số. Ta ký hiệu là ước số chung

dương lớn nhất của a và b, tức là số nguyên dương vừa là ước của a vừa là ước của

b và là số ngun dương lớn nhất có tính chất đó.

Ví dụ:

Nguyên tố cùng nhau. Ta thấy 1 bao giờ cũng là ước số chung của hai số nguyên

dương bất kỳ. Nếu , thì a, b đựơc gọi là hai số nguyên tố cùng nhau:

Ví dụ: GCD(8,15) = 1, tức là 8 v à 15 là hai số nguyên tố cùng nhau

Tìm ước chung lớn nhất. Bây giờ chúng ta xét bài tốn tìm ước số chung lớn nhất

của hai số nguyên dương cho trước. Dễ dàng chứng minh được tính chất sau:

(1.19)



Như vậy để tìm ước số chung của một cặp số cho trước, ta đưa về bài tốn tìm

ước chung của cặp số gồm số nhỏ hơn trong hai số đó và phần dư của số lớn khi



40



chia cho số nhỏ hơn. Thuật tốn Ơcơlít tạo nên vòng lặp, ở mỗi bước ta áp dụng

tính chất trên cho đến khi phần dư đó còn khác 0.



Thuật tốn Ơclit tìm GCD(a, b)

Tính UCLN của 2 số nguyên

VÀO : Hai số nguyên không âm a và b với a  b

RA



: ƯCLN của a và b.



(1) While

(2) Return (a).

Thuật toán trên có thể được mở rộng để khơng những chỉ tính được ƯCLN của

2 số nguyên a và b mà còn tính được các số nguyên x và y thoả mãn: .

Thuật tốn Euclide mở rộng:

INPUT



: Hai số ngun khơng âm a và b với:



OUTPUT : và các số nguyên x và y thoả mãn .

(1)



Nếu thì đặt và return (d,x,y)



(2)



Đặt



(3)



While

3.1.

3.2.



(4)



Đặt và return (d,x,y)



1.10.4 Tìm số nghịch đảo

Định nghĩa: Phần tử nghịch đảo

Cho , Phần tử nghịch đảo (ngược theo phép nhân) của là một số nguyên sao

cho:



41



Nếu x tồn tại thì nó là duy nhất, a được gọi là khả nghịch. Phần tử nghịch đảo

của a được ký hiệu là .

- Thuật tốn (Tính các nghịch đảo trong ).

INPUT



:



OUTPUT: (nếu tồn tại).

(1) Dùng thuật tốn Euclide mở rộng để tìm các số ngun và sao cho

(2) Nếu thì khơng tồn tại. Ngược lại return .

1.10.5 Tính

Tính giá trị của biểu thức

Thuật tốn “bình phương và nhân”

Biểu diễn dạng nhị phân:



for i = l downto 0

do

if bi = 1

then

return f

1.10.6 Các số nguyên tố

Số nguyên tố là các số nguyên dương chỉ có ước số là 1 và chính nó. Chúng

khơng thể được viết dưới dạng tích của các số khác. 1 là số ngun tố, nhưng khơng

quan tâm đến nó. Xét các số nhỏ hơn 10 ta có: 2, 3, 5, 7 là số ngun tố, vì chúng

khơng có ước số khác 1 và chính nó; 4, 6, 8, 9, 10 khơng phải là số ngun tố. Có

thể nói 2 là số chẵn duy nhất là số nguyên tố. Các số nguyên tố là trung tâm của lý

thuyết số. Số các số ngun tố là vơ hạn.

1.10.7 Phân tích ra thừa số nguyên tố



42



Một trong những bài toán cơ bản của số học là phân tích ra thừa số nguyên tố

số a, tức là viết nó dưới dạng tích của các số ngun tố. Phân tích là bài tốn khó

hơn rất nhiều so với bài toán nhân các số để nhận được tích.

Mọi số ngun dương đều có phân tích duy nhất thành tích các lũy thừa của

các số nguyên tố:

(1.20)



Để tìm phân tích trên, ta phải kiểm tra tính chia hết cho các số nguyên tố từ

nhỏ đến lớn và thực hiện phép chia liên tiếp cho các số nguyên tố, rồi gộp thành lũy

thừa của các số nguyên tố.

1.10.8 Các số nguyên tố cùng nhau và GCD

Hai số ngun dương a và b khơng có ước chung nào ngồi 1, được gọi là

ngun tố cùng nhau.

Ngược lại có thể xác định ước chung lớn nhất bằng cách trong các phân tích ra

thừa số của chúng, tìm các thừa số nguyên tố chung và lấy bậc lũy thừa nhỏ nhất

trong hai phân tích của hai số đó.

1.10.9 Định lý Ferma (Định lý Ferma nhỏ)

(1.21)



Trong đó là số nguyên tố và a là số nguyên bất kỳ khác bội của :

Hay với mọi số nguyên tố và số nguyên a khơng là bội của , ta ln có

(1.22)



Cơng thức trên ln đúng, nếu là số ngun tố, còn a là số nguyên dương nhỏ

hơn .

1.10.10 Hàm Ole

Cho n là một số nguyên dương. Khi thực hiện phép tính đồng dư n của mọi số

nguyên khác ta nhận được tập đầy đủ các phần dư có thể có là:



43



Từ tập trên ta tìm tập rút gọn bao gồm các số nguyên tố cùng nhau với n và

quan tâm đến số lượng các phần tử như vậy đối với số nguyên dương n cho trước.

Muốn tính việc đếm số các số nguyên tố cùng nhau với n và nhỏ hơn n được

loại bỏ vì đây là bài tốn tốn nhiều cơng sức.

Nói chung có thể tính hàm Ơle của một số dựa trên biểu thức phân tích ra thừa

số của số đó.

Dễ dàng thấy, nếu p là số nguyên tố

Nếu p và q là hai số ngun tố khác nhau, thì

o có thể chứng minh được rằng:

o

Nếu p là số nguyên tố, thì

Nếu s và t là hai số nguyên tố cùng nhau, thì

Định lý Ole

Định lý Ole là tổng qt hố của Định lý Ferma

(1.23)



với mọi cặp số nguyên dương nguyên tố cùng nhau a và : 1

1.10.11 Kiểm tra tính nguyên tố

Giả sử cần phải tìm một số nguyên tố rất lớn. Lấy ngẫu nhiên một số đủ lớn, ta

cần phải kiểm tra xem số đó có phải là số nguyên tố không. Phương pháp truyền

thống là thử bằng phép chia như sau:

Chia cho tất cả các số (chỉ cần nguyên tố) nhỏ hơn hoặc bằng căn bậc hai của

số đó. Nếu nó khơng chia hết cho số nào, thì đó là số nguyên tố.

Chỉ hiệu quả khi xét các số nhỏ.

Có phương pháp khác, mà ta sẽ xét ở đây, sử dụng các phép kiểm tra tính

nguyên tố thống kê dựa trên các tính chất mà mọi số nguyên tố phải thỏa mãn

Nhưng có một số số khơng ngun tố, gọi là giả nguyên tố cũng thoả mãn tính

chất đó.



44



Cụ thể là phép kiểm tra dựa trên Định lý Ferma như sau: nếu số n cần kiểm tra

tính nguyên tố là số ngun tố, thì nó sẽ thỗ mãn định lý Ferma đối với mọi số a

nhỏ hơn nó .

Như vậy, lấy ngẫu nhiên số và kiểm tra xem nó có tính chất trên khơng.

Nếu có thì có thể là số nguyên tố, nếu cần độ tin cậy lớn hơn, thì ta kiểm tra

liên tiếp nhiều lần như vậy với các số ngẫu nhiên a được chọn. Sau mỗi lần qua

được phép thử, xác suất để là số nguyên tố lại tăng lên.

Kiểm tra số có là số nguyên tố khơng, ta chỉ cần xét là lẻ, khi đó là chẵn và

biểu diễn nó dạng

Khi đó để tính , ta tính , sau đó bình phương liên tiếp lần.

Thuật toán Miller - Rabin

Thuật toán như sau:

TEST (n) is:

1. Find integers , q odd, so that

2. Select a random integer

3. if mod n = 1 then return (“maybe prime");

4. for to do

5. if

then return(" maybe prime ")

6. return ("composite")

1.11. Kết luận chương 1

Chương 1 đã trình bày khái quát về các giải pháp mật mã hiện nay với các

phân tích để chỉ rõ điểm mạnh, điểm yếu của chúng. Các cơ sở tốn học, đồng thời

tóm tắt xu hướng phát triển mật mã, nhu cầu an ninh bằng mật mã thực tế của dịch

vụ và người sử dụng. Trong chương này đã chỉ ra những hạn chế còn tồn tại của

một số lược đồ đã có trong và ngồi nước, xác định những bài toán cụ thể ứng dụng

trong thực tiễn đặt ra mà các lược đồ trước chưa giải quyết được.

Trong luận án này NCS chỉ đưa ra một số phương pháp cơ bản nhất và có thể

ứng dụng một cách linh hoạt nhất. Tuy nhiên còn có những phần chưa đề cập tới đó



45



là cách trao đổi khóa bí mật, ứng dụng lược đồ vào các hệ mật khác nhau…

Tuy nhiên luận án sẽ giải quyết những bài toán cụ thể đặt ra trong thực tiễn là

đưa ra một số phương pháp bảo mật và xác thực thông tin dựa trên các thuật tốn đã

có và trên hệ mật mới đang là xu thế của cách mạng công nghiệp 4.0.



Chương 2 PHÁT TRIỂN MỘT SỐ LƯỢC ĐỒ MÃ HĨA

Chương này trình bày một số kết quả nghiên cứu, cải tiến một số lược đồ mã

hóa. Các kết quả này đã được công bố trong các bài báo được đăng trên các tạp chí,

kỷ yếu hội thảo trong nước và quốc tế.

2.1. Một số mơ hình ứng dụng mã khối

Kỹ thuật mật mã có một vai trò đặc biệt quan trọng trong thương mại điện tử

và chính phủ điện tử. Năm 1997, A.J.Menezes, P.C. Van Oorschot and S.A.

Vanstone [12] đã đưa ra nhiệm vụ chính của kỹ thuật mật mã là bảo mật (mã hóa)

thơng tin, đảm bảo tính toàn vẹn của dữ liệu, xác thực bao gồm cả xác thực định

danh và xác thực thông tin và chống trối bỏ là những điều kiện cần để thực hiện

thương mại điện tử và chính phủ điện tử. Cùng với mã hóa đối xứng (cổ điển) có từ

thời Julius Caesar (100 năm trước Cơng Ngun), mật mã khóa cơng khai đã tạo

nên những cơng cụ cơ bản để hồn thành sứ mệnh của ngành mật mã học đối với

không chỉ các ứng dụng trong quân sự mà còn cả đối với thương mại điện tử và

chính phủ điện tử.

2.1.1 Mơ hình Electronic Codebook – ECB

Trong mơ hình ECB, mỗi khối được mã hóa một cách riêng rẽ, dùng chung

một khóa K.



46



Hình 2.1. Mơ hình ECB

Trong mã hóa ECB, nếu thì và ngược lại.

Có thể thấy rằng mã ECB tương tự như mã hóa đơn bảng cổ điển, trong đó và

giống như là các chữ cái, còn khóa cùng với mã khối giống như là một phép hốn

vị. Do đó, người phá mã có thể dựa vào một số đặc tính thống kê của dữ liệu để tiến

hành phá mã, giống như dùng thống kê tần suất chữ cái để phá mã mã hóa đơn bảng

(dù rằng có kích thước lớn nên đặc tính thống kê cũng khó phát hiện hơn). Vì vậy

mã hóa ECB chỉ thích hợp để mã hóa những bản tin ngắn).

2.1.2 Mơ hình Cipher Block Chaining – CBC

Trong mơ hình CBC, bản mã của một lần mã hóa được sử dụng cho lần mã hóa tiếp

theo.

(2.1)



Do đó để mã hóa khối đầu tiên, người ta dùng một khối dữ liệu giả được gọi là

vector khởi tạo (initialization vector – IV) và được chọn ngẫu nhiên:

(2.2)



Để giải mã, tiến hành ngược lại:

(2.3)

(2.4)



47



Hình 2.2. Mơ hình CBC

Người mã hóa và người giải mã phải dùng chung vector khởi tạo IV. Vector khởi tạo

khơng cần giữ bí mật nên thường được gắn vào trước bản mã trước khi truyền thơng

điệp

Có thể thấy rằng nội dung của bản mã không chỉ phụ thuộc vào bản rõ mà còn phụ

thuộc vào tất cả các bản rõ đứng trước và IV. Do đó nếu có hai bản rõ giống nhau

thì hai bản mã sẽ không giống nhau (do IV ngẫu nhiên). Điều này khắc phục được

hạn chế của mơ hình ECB, từ bản mã người phá mã không thể phát hiện ra những

đặc tính thống kê của dữ liệu.

Ngược lại, đối với việc giải mã, bản rõ không chỉ phụ thuộc vào bản mã mà còn

phụ thuộc vào bản mã đứng trước. Do đó nếu xảy lỗi trên đường truyền, chỉ cần một

bít bị hỏng thì dẫn đến khơng thể giải mã được bản mã đó và bản mã tiếp theo sau.

2.1.3 Mơ hình Counter – CTR

Đến thời điểm này, chúng ta đã tìm hiểu hai cách tiếp cận để chống lại việc phá mã

dựa trên thống kê tần suất. Cách tiếp cận thứ nhất là theo mơ hình của mã dòng,

dùng một bộ sinh khóa ngẫu nhiên (confusion – làm rối).



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Hình 1.14 Mật hóa và xác thực tin gửi bằng khóa công khai

Tải bản đầy đủ ngay(0 tr)

×