1.Khái niệm
-Mật mã khóa công khai (PKC), còn được gọi là mật mã hóa bất đối xứng, là một cơ cấu sử dụng cả chìa khóa cá nhân và chìa khóa công khai, trái ngược với chìa khóa đơn được sử dụng trong mật mã hóa đối xứng. Việc sử dụng các cặp chìa khóa khiến cho PKC có một bộ các đặc điểm và khả năng độc đáo có thể được sử dụng để giải quyết các thách thức tồn tại cố hữu trong các kỹ thuật mã hóa khác. Hình thức mật mã này đã trở thành một yếu tố quan trọng trong bảo mật máy tính hiện đại, cũng như là một thành phần quan trọng cho việc phát triển hệ sinh thái tiền điện tử.
-Hệ mật sẽ bao gồm:
Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi
Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật
Khóa: Bên nhận có 1 cặp khóa:
o Khóa công khai (Kub) : công bố cho tất cả mọi người biết (kể cả hacker)
o Khóa riêng (Krb) : bên nhận giữ bí mật, không chia sẻ cho bất kỳ ai Mã hóa (encrypt-E): C = E(Kub, M)
Giải mã (decrypt): M = D(Krb, C) = D(Krb, E(Kub, M)) -Ví dụ: Hệ mật mã RSA
-Trong sơ đồ PKC, chìa khóa công khai được người gửi sử dụng để mã hóa thông tin, trong khi chìa khóa cá nhân được người nhận sử dụng để giải mã. Hai chìa khóa là khác nhau, trong đó chìa khoá công khai có thể được chia sẻ an toàn mà không ảnh hưởng đến tính bảo mật của chìa khoá cá nhân. Mỗi cặp chìa khóa bất đối xứng là duy nhất, đảm bảo rằng một thông điệp được mã hóa bằng chìa khoá công khai chỉ có thể được đọc bởi người sở hữu chìa khoá cá nhân tương ứng.
-Vì thuật toán mã hóa bất đối xứng tạo ra các cặp chìa khóa được liên kết về mặt toán học nên có độ dài chìa khóa dài hơn nhiều so với các cặp chìa khoá được tạo ra bởi mật mã hoá đối xứng. Độ dài dài hơn này - thường từ 1.024 đến 2.048 bit - khiến việc tính toán chìa khóa cá nhân từ chìa khoá công khai là vô cùng khó khăn. Một trong những thuật toán thông dụng nhất cho mã hóa bất đối xứng được sử dụng ngày nay có tên là RSA. Trong sơ đồ RSA, các chìa khóa được tạo bằng cách sử dụng một mô-đun phép nhân hai số (thường là hai số nguyên tố lớn). Nói đơn giản hơn, mô-đun tạo ra hai chìa khóa (một khóa công khai có thể được chia sẻ và một khóa cá nhân cần được giữ bí mật). Thuật toán RSA được mô tả lần đầu tiên vào năm 1977 bởi Rivest, Shamir và
Adleman (RSA là ghép các chữ cái đầu tiên của 3 người này) và hiện vẫn là thành phần chính của các hệ thống mật
- PKC - Công cụ mã hoá: Mật mã khóa công khai giải quyết một trong những vấn đề tồn tại lâu của thuật toán đối xứng - vấn đề giao tiếp của chìa khóa được sử dụng cho cả mã hóa và giải mã. Việc gửi chìa khóa qua một kết nối không an toàn sẽ có nguy cơ để lộ cho bên thứ ba đọc được bất kỳ thông điệp nào được mã hóa bằng chìa khóa dùng chung. Mặc dù có các kỹ thuật mật mã (như giao thức trao đổi chìa khóa Diffie-Hellman-Merkle) để giải quyết vấn đề này, nguy cơ bị tấn công vẫn dễ xảy ra. Ngược lại, với mật mã khóa công khai, khóa được sử dụng để mã hóa có thể được chia sẻ an toàn trên bất kỳ kết nối nào. Kết quả là, các thuật toán bất đối xứng cung cấp mức độ bảo vệ cao hơn so với các thuật toán đối xứng.
3.Ưu và nhược điểm a.Ưu điểm
-Loại mật mã này được sử dụng bởi nhiều hệ thống máy tính hiện đại nhằm cung cấp bảo mật cho thông tin nhạy cảm. Email, ví dụ, có thể được mã hóa bằng các kỹ thuật mã hóa khóa công khai để giữ bí mật nội dung. Giao thức Lớp cổng bảo mật (SSL) giúp kết nối an toàn đến các trang web có thể cũng sử dụng mật mã bất đối xứng. Các hệ thống PKC thậm chí đã được sử dụng như một
phương tiện cung cấp một môi trường bỏ phiếu điện tử an toàn có khả năng cho phép cử tri tham gia các cuộc bầu cử từ máy tính tại nhà của họ.
-PKC cũng góp mặt nổi bật trong công nghệ blockchain và tiền điện tử. Khi một ví tiền điện tử mới được thiết lập, một cặp chìa khóa sẽ được tạo (chìa khoá công khai và chìa khoá cá nhân). Địa chỉ công khai được tạo bằng cách sử dụng chìa khoá công khai và có thể được chia sẻ an toàn với người khác. Mặt khác, chìa khóa cá nhân được sử dụng để tạo ra các chữ ký kỹ thuật số và xác minh các giao dịch, và do đó, phải được giữ bí mật. Khi một giao dịch đã được xác minh bằng cách xác nhận hash có trong chữ ký kỹ thuật số, giao dịch đó có thể được thêm vào sổ cái blockchain. Hệ thống xác minh chữ ký kỹ thuật số đảm bảo rằng chỉ người có chìa khóa cá nhân được liên kết với ví tiền điện tử tương ứng mới có thể rút tiền. Cần lưu ý rằng các mật mã bất đối xứng được sử dụng trong các ứng dụng tiền điện tử là khác với các mật mã được sử dụng cho mục đích bảo mật máy tính. Ví dụ, Bitcoin và Ethereum sử dụng một mật mã chuyên dụng được gọi là Thuật toán Chữ ký số Elliptic Curve (ECDSA) để xác minh các giao dịch.
-Từ bảo mật máy tính đến xác minh các giao dịch tiền điện tử, mật mã khóa công khai đóng một vai trò quan trọng trong việc bảo mật các hệ thống kỹ thuật số hiện đại. Bằng cách sử dụng các chìa khóa công khai và chìa khoá cá nhân theo cặp, các thuật toán mã hóa bất đối xứng giải quyết các vấn đề bảo mật cơ bản được đưa ra bởi các mã hoá đối xứng. Mặc dù PKC đã được sử dụng trong nhiều năm, các cách sử dụng và các ứng dụng mới vẫn thường xuyên được phát triển cho nó, đặc biệt là trong lĩnh vực blockchain và tiền điện tử.
b.Nhược điểm
-Mặc dù có thể được sử dụng để tăng cường bảo mật máy tính và cung cấp xác
minh cho tính toàn vẹn của thông điệp, PKC có một số hạn chế. Do có sự tham gia của các phép toán học phức tạp trong mã hóa và giải mã, các thuật toán bất đối xứng có thể khá chậm khi buộc phải xử lý một lượng lớn dữ liệu. Loại mật mã này cũng phụ thuộc rất nhiều vào giả định rằng chìa khóa cá nhân sẽ được giữ bí mật. Nếu một chìa khóa cá nhân vô tình bị chia sẻ hoặc bị lộ, tính bảo mật của tất cả các thông điệp đã được mã hóa bằng chìa khoá công khai tương ứng của nó sẽ bị xâm phạm. Người dùng cũng có thể vô tình làm mất khóa cá nhân, trong trường hợp đó, họ không thể truy cập dữ liệu đã được mã hóa. 4. Ví dụ
1.Khái niệm
-Thám mã là công việc phân tích bản tin mã hóa để nhận được bản tin rõ trong điều kiện không biết trước khóa mã.
-Trong thực tế, công việc thám mã gặp khó khăn hơn khi không biết rõ hệ mật nào được sử dụng.Tuy nhiên, để đơn giản hóa , chúng ta sử dụng người thám mã đã biết rõ hệ mật mã được sử dụng khi tiến hành phân tích mã(Nguyên lý Kerckhoff).Mục đích là thiết kế một hệ mật mã an toàn.
2.Đặc điểm
-Mục tiêu của thám mã (phá mã) là tìm những điểm yếu hoặc không an toàn trong phương thức mật mã hóa. Thám mã có thể được thực hiện bởi những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những người thiết kế ra hệ thống (hoặc những người khác) với ý định đánh giá độ an toàn của hệ thống.
-Trước hết chúng ta cần phân loại mức độ tấn công vào các hệ mật mã. Mức độ này tùy thuộc vào hiểu biết của người thám mã đối với hệ mật mã được sử dụng. Theo đó, chúng ta có thể chia thành các loại tấn công sau:
Tấn công chỉ biết bản mã (ciphertext-only): người thám mã chỉ có bản tin mã hóa.
Tấn công biết bản tin rõ (known plaintext): người thám mã có bản tin rõ và bản mã.
Tấn công chọn bản tin rõ (chosen plaintext): người thám mã tạm thời có quyền truy xuất tới Bộ mã hóa, do đó anh ta có khả năng chọn bản tin rõ và xây dựng bản mã tương ứng.
Tấn công chọn bản mã (chosen ciphertext): người thám mã tạm thời có quyền truy xuất tới Bộ giải mã, do đó anh ta có khả năng chọn bản mã và xây dựng lại bản tin rõ tương ứng.
-Trong mọi trường hợp, mục đích là tìm ra khóa mã được sử dụng. Kiểu tấn công chọn bản mã được thực hiện với hệ mật mã khóa công khai mà chúng ta sẽ xem xét trong chương kế tiếp. Trong phần này chúng ta chỉ thảo luận về kiểu tấn công được xem là “yếu nhất” - Tấn công chỉ biết bản mã.
-Nhiều kỹ thuật thám mã sử dụng đặc điểm thống kê của tiếng Anh, trong đó dựa vào tần suất xuất hiện của 26 chữ cái trong văn bản thông thường để tiến hành phân tích mã. Becker và Piper đã chia 26 chữ cái thành năm nhóm và chỉ ra xác suất của mỗi nhóm như sau:
E, có xác suất khoảng 0.120
T, A, O, I, N, S, H, R, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.06 đến 0.09
C, U, M, W, F, G, Y, P, B, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.015 đến 0.023
V, K, J, X, Q, Z, mỗi chữ cái có xác xuất nhỏ hơn 0.01
Ngoài ra, tần suất xuất hiện của dãy hai hay ba chữ cái liên tiếp được sắp theo thứ tự giảm dần như sau [11]: TH, HE, IN, ER … THE, ING, AND, HER…
3.Các bước để tiến hành thám mã
Khi nh n ậ được m t s b n mã, các nhà thám mã c n th c hi n m t ộ ố ả ầ ự ệ ộ
loạt các bước nghiên c u nh m khôi ph c ứ ằ ụ được b n rõ (ho c khóa) t ả ặ ừ
các b n mã nh n ả ậ được. Ta tìm hi u các bể ước c b n nh t ó là:ơ ả ấ đ
Bước 1. Phân lo i b n mã ạ ả
Bước 2. Xác nh mã pháp đị
Bước 3. Thám mã
Sau khi ã xác nh đ đị được mã pháp, ta chuy n qua bể ước thám mã v i m t ớ ộ
trong hai công đoạn nh sau: ư
a. Thám mã tr c ti p N u mã pháp thu c các lu t mã truy n th ng ta có th ự ế ế ộ ậ ề ố ể
thám mã tr c ti p b ng thám mã th công hay tự ế ằ ủ ựđộng hóa b ng l p trình trên ằ ậ
máy tính.
b. Xây d ng phự ương pháp thám mã N u mã pháp thu c các h mã hi n ế ộ ệ ệ đại ta phải xây d ng phự ương pháp thám mã. Ta có hai phương pháp:
- Phương pháp phân tích
- Phương pháp dựđoán “T ph ng ch ng”. ừ ỏ ừ
4.Một số hệ thám mã 4.1 Thám mã tích cực
Thám mã tích cực là việc thám mã sau đó tìm cách làm sai lạc các dữ liệu truyền, nhận hoặc các dữ liệu lưu trữ phục vụ mục đích của người thám mã. Thám mã thụ động:
Thám mã thụ động là việc thám mã để có được thông tin về bản tin rõ phục vụ mục đích của người thám mã.
Giả sử Trudy đã lấy được bản mã sau đây:
FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKD LYEVLRHHRH.
Trudy thống kê tần suất xuất hiện của 26 chữ cái như trong bảng sau:
Chỉ có 57 chữ cái trong bản mã nhưng phương pháp này tỏ ra hiệu quả để thám mã Affine. Ta thấy tần suất xuất hiện các chữ cái theo thứ tự là: R(8), D(6), E, H, K(5) và F, S, V(4). Vì vậy dự đoán đầu tiên của ta có thể là: R là mã của e, D là mã của t. Theo đó,e (4)=17 và ek k(19)=3,ek(x)= ax+b với a, b là các biến. Để tìm K=(a, b) ta giải hệ phương trình sau:
4a+b=17 19a+b=3
Suy ra, a = 6, b=19. Đây không phải là khóa vì gcd(a, 26) = 2 > 1. Ta lại tiếp tục phỏng đoán: R là mã của e, E là mã của t. Ta nhận được a = 13, chưa thỏa mãn. Tiếp tục với H, ta có a=8. Cuối cùng, với K ta tìm được K = (3, 5). Sử dụng khóa mã này ta có được bản tin rõ như sau:
algorithmsrequiregeneraldefinitionsofarithmeticprocesses
4.3Thám mã Vigenere
Để thám mã Vigenere, trước hết cần xác định độ dài từ khóa, ký hiệu là m. Sau đó mới xác định từ khóa. Có hai kỹ thuật để xác định độ dài từ khóa đó là phương pháp Kasiski và phương pháp chỉ số trùng hợp (index of coincidence). Phương pháp Kasiski được đưa ra bởi Friedrich Kasiski năm 1863. Phương pháp này làm việc như sau:
Tìm trên bản mã các cặp xâu kí tự giống nhau có độ dài ít nhất là 3, ghi lại khoảng cách giữa vị trí chữ cái đầu tiên trong các xâu và xâu đầu tiên. Giả sử
nhận được d , d 2 … Tiếp theo ta phỏng đoán m là số sao cho ước số chung 1
lớn nhất của các d chia hết cho m.i
Ví dụ:
Plaintext: conghoa|danchun|handant|runghoa|sapsuat|hanghoa Keyword: abcdefg
Ciphertext: CPPJLTG DBPFLZT HBPGESZ RVPJLTG SBRVYFZ HBPJLTG
Vị trí xuất hiện của dãy PJL lần lượt là: 3, 24, 38. Do vậy, dãy d1, d2 … là 21, 35; gcd(d1, d2 …) = 7
Phương pháp chỉ số trùng hợp sẽ cho biết các bằng chứng để nhận được giá trị m. Phương pháp này được đưa ra bởi Wolfe Friedman năm 1920 như sau: Giả sử x=x 1 x 2… x n là xâu có n ký tự. Chỉ số trùng hợp của x, ký hiệu là I c (x), được định nghĩa là xác suất mà hai phần tử ngẫu nhiên của x là giống nhau. Giả sử chúng ta ký hiệu tần suất của A, B, C, …, Z trong x lần lượt là f 0 , f 1 , …, f 25 . Chúng ta có thể chọn hai phần tử của x theo 2n= n!/(2!(n-2)!) cách. Với mỗi 0=<i=<25 (có 2fi) cách chọn các phần tử là i. Vì vậy, chúng ta có công thức:
-Bây giờ, giả sử x là xâu văn bản tiếng Anh. Ta có I (x) c ∑
i=0 25
p 2 (i)=0.065 Ví dụ:
Theo phương pháp Kasiski, đầu tiên xâu CHR xuất hiện ở 4 vị trí trong bản mã, lần lượt là: 1, 166, 236 và 286. Khoảng cách giữa các xâu là 165, 235 và 285. Ước số chung lớn nhất của các số này là 5. Vậy ta có m =5.
Theo phương pháp chỉ số trùng hợp, với m=1 thì chỉ số trùng hợp là I (x) = c
0.045; m=2, I (x)=0.046 và 0.041; m=3, I (x)=0.043, 0.050, 0.047; m=4, c c
Ic(x)=0.042, 0.039, 0.046, 0.040; m=5, I (x)=0.063, 0.068, 0.069, 0.072; Ta dừngc
và nhận được m = 5.
Để xác định khóa mã, ta sử dụng phương pháp thống kê sau đây:
Giả sử x=x1x2…xnvà y=y1y2…yn’ là hai xâu có n và n’ ký tự . Chỉ số
trùng hợp tương quan của x và y, ký hiệu là MI (x,y), được định nghĩa là xác c
suất mà một phần tử ngẫu nhiên của x bằng một phần tử ngẫu nhiên của y. Nếu
chúng ta ký hiệu tần suất của A, B, C, …, Z trong x và y lần lượt là f , f , …, 0 1
f25. và f’0, f’1, …, f’ 25. Thì:
Bây giờ, giả sử x,y là xâu văn bản tiếng Anh. Ta có MIc(x,yi j) 0.065
Ví dụ:
Giả sử m=5 như ta đã thực hiện ở trên. Theo phương pháp thống kê [11] ta tìm được khóa mã là: JANET. Vậy bản tin rõ sẽ là: the almond tree was in ...