Tải bản đầy đủ - 0 (trang)
Phép biến đổi XorRoundKey (AddRoundKey)

Phép biến đổi XorRoundKey (AddRoundKey)

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

35



Nhược điểm:

-



Phải dùng kênh an tồn để truyền khóa (Khó thiết lập và chi phí tốn kém)

Việc tạo và giữ khóa bí mật phức tạp, khó làm việc trên mạng do phải tạo



-



khóa nhiều.

Các thuật tốn là song ánh, vì vậy nếu biết M và K thì chắc chắn biết C.



-



Thám mã có thể suy luận ra K, kết hợp với C tại kênh mở có thể suy ra M.

Khó xây dựng các dịch vụ an toàn khác như: đảm bảo tính tồn vẹn, xác

thực, chữ ký số…



Chính vì các nhược điểm này nên phải sử dụng cả các hệ mật khóa cơng khai.

1.9. Mã hóa khóa cơng khai

Vào năm 1976, Whitfield Diffie và Martin Hellman đã tìm ra một phương

pháp mã hóa khác mà có thể giải quyết được hai vấn đề trên, đó là mã hóa khóa

cơng khai (Public Key Cryptography) hay còn gọi là mã hóa bất đối xứng

(Asymetric Cryptography). Đây có thể xem là một bước đột phá quan trọng nhất

trong lĩnh vực mã hóa.

Để khắc phục điểm yếu của mã hóa đối xứng, người ta tập trung vào nghiên

cứu theo hướng liệu có cách nào có thể mã hóa và giải mã dùng hai khóa khác nhau

hay khơng.

Nghĩa là tìm được hai thuật tốn E và D là ngược của nhau nhưng lại sử dụng

hai khóa khác nhau và và Sau đó, mỗi thành viên cộng đồng mật hóa cần phải có

hai khóa có tính chất như trên, trong đó một khóa (giả sử là ) sẽ được cơng khai cho

mọi người cùng biết còn khóa kia (giả sử là ) thì của người nào người đó phải giữ

bí mật. Nếu thực hiện được như vậy thì chúng ta sẽ có thể có hai ứng dụng sau đây.





Gửi tin mật: Giả định là có 2 người là Bob và Alice thường xuyên trao đổi



thư từ với nhau nhưng lại không muốn người thứ ba là Mallory biết. Để có thể đảm

bảo được việc này thì khi Alice muốn gửi thư cho Bob, Alice phải làm như sau.

Alice dùng khóa cơng khai của Bob () để mã hóa thư của mình rồi gửi cho Bob. Khi

nhận được thư của Alice (đã mã hóa), Bob sẽ dùng khóa bí mật của mình () để giải

mã. Trong lúc này, Mallory có thể biết việc trao đổi này nhưng cho dù anh ta biết

khóa của Bob nhưng lại khơng thể dùng để giải mã mà phải dùng mới giải được,



36



mà khóa này lại chỉ mình Bob có. Do đó, chỉ có duy nhất Bob mới có thể giải mã

được. Điều này bảo đảm tính bảo mật của q trình truyền dữ liệu. Ưu điểm của

phương án này là không cần phải truyền khóa trên kênh an tồn.





Xác thực thơng tin: Bây giờ Alice lại muốn gửi cho Bob một thơng tin



quan trọng nhưng khơng cần phải giữ bí mật mà chỉ muốn khẳng định là thư này là

do đích thân cô gửi cho anh. Để làm được việc này, Alice sẽ dùng khóa bí mật của

mình () để mã hóa thư rồi gửi cho Bob. Khi nhận được thư của Alice, Bob sẽ dùng

khóa cơng khai của Alice ( để giải mã. Nếu giải được thì đây chính là thư do Alice

gửi. Nhưng vì thư của Alice được mã hóa bằng khóa bí mật của Alice nên Mallory

cũng có thể giải mã được thư này vì ai cũng biết khóa cơng khai của Alice. Do đó,

phương án này khơng được dùng để đảm bảo tính bí mật mà chủ ý được dùng để

đảm bảo tính xác thực và tính không thể chối bỏ đối với thông tin đã gửi vì chỉ có

duy nhất Alice biết được khóa bí mật () của cơ ấy, nên nếu Bob dùng khóa cơng

khai của Alice mà giải mã được thư này thì điều đó có nghĩa là Alice là người đã

gửi thư cho anh.

Hình 1.14 mơ tả một qui trình mã hóa và giải mã bằng khóa cơng khai. Mơ

hình này thực hiện cùng một lúc hai mục đích, xác thực và mật hóa bằng cách sử

dụng hai cặp khóa cơng khai và một cặp thuật tốn mã hóa và giải mã.



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

Vì vậy, nếu kết hợp hai ứng dụng này lại thì ta sẽ có một mơ hình mã hóa và

xác thực khắc phục được các nhược điểm của mã hóa đối xứng. Trong cả hai

phương án, một khóa được giữ bí mật, chỉ một người biết, còn khóa kia được cơng



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.



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

Phép biến đổi XorRoundKey (AddRoundKey)

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

×