1. Trang chủ
  2. » Ôn tập Sinh học

Xây dựng các thuật toán mật mã khóa công khai dựa trên tính khó của việc giải đồng thời 2 bài toán logarit rời rạc và phân tích số khai căn

7 39 1

Đ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 7
Dung lượng 250,51 KB

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

Nội dung

Cũng với mục đích nâng cao độ an toàn cho thuật toán trước một số dạng tấn công trong thực tế, nhóm tác giả bài báo này đề xuất xây dựng 02 thuật toán: mật mã khóa công khai; mã hóa - [r]

Trang 1

XÂY DỰNG CÁC THUẬT TOÁN MẬT MÃ KHÓA CÔNG KHAI DỰA TRÊN TÍNH KHÓ CỦA VIỆC GIẢI ĐỒNG THỜI 2 BÀI TOÁN

LOGARIT RỜI RẠC VÀ PHÂN TÍCH SỐ/KHAI CĂN

Nguyễn Vĩnh Thái1*, Lưu Hồng Dũng2

Tóm tắt: Bài báo đề xuất xây dựng thuật toán mật mã khóa công khai từ mức độ

khó của việc giải đồng thời 2 bài toán: bài toán logarit rời rạc trên Zp và bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố, hoặc: bài toán logarit rời rạc trên Zp và bài toán khai căn trên vành Zn 02 thuật toán mới đề xuất đảm bảo mức

độ an toàn trước các tấn công: làm lộ khóa bí mật, thám mã bản tin Đồng thời xác thực nguồn gốc văn bản điện tử, cũng như đảm bảo việc xác thực người gửi

Từ khóa: Logarit rời rạc; Phân tích số; Khai căn; Thuật toán khóa mật mã; Hệ thống mã khóa khóa công khai

1 ĐẶT VẤN ĐỀ

Hiện tại, RSA [1] vẫn đang được sử dụng trong các giao dịch điện tử (Chính phủ điện tử, thương mại điện tử ) do tính mềm dẻo và độ an toàn của nó Tuy nhiên, thuật toán hệ mật này cũng có một nhược điểm căn bản so với các hệ mật được xây dựng trên bài toán logarit rời rạc (ElGamal, DSA, GOST R34.10-94 ) [3] đó là các thực thể đầu cuối không được phép dùng chung modulo n với nhau Nói cách khác: mỗi thực thể đầu cuối phải sở hữu một cặp tham số ( , ) nguyên

tố riêng biệt Hơn nữa, cặp tham số này phải được giữ bí mật tuyệt đối Trên thực

tế, việc tạo ra các số nguyên tố lớn và mạnh theo các tiêu chuẩn an toàn (FIPS 186

- 4) [2] và giữ bí mật tuyệt đối cho chúng là không đơn giản, nên nhược điểm trên

đã ảnh hưởng không nhỏ đến khả năng ứng dụng rộng rãi của hệ mật này (RSA) trong thực tế

Nâng cao độ an toàn cho các thuật toán mật mã khóa công khai dựa trên tính khó của việc giải đồng thời 2 bài toán khó là một hướng tiếp cận đang nhận được nhiều sự quan tâm của các nhà nghiên cứu [4 - 9]

Cũng với mục đích nâng cao độ an toàn cho thuật toán trước một số dạng tấn công trong thực tế, nhóm tác giả bài báo này đề xuất xây dựng 02 thuật toán: mật

mã khóa công khai; mã hóa - xác thực dựa trên tính khó của việc giải đồng thời 2 bài toán logarit rời rạc và phân tích số/khai căn, cho phép nhiều người dùng (thực thể cuối) sử dụng chung một , nghĩa là chỉ cần tạo ra một cặp tham số ( , ) duy nhất cho tất cả các thực thể cuối Ngoài ra, các tham số này không cần phải được giữ bí mật như ở hệ RSA mà vẫn có thể chống lại các dạng tấn công đã biết trong thực tế, đảm bảo độ an toàn của hệ thống

2 MỘT SỐ BÀI TOÁN KHÓ ỨNG DỤNG TRONG MẬT MÃ 2.1 Bài toán phân tích số

Bài toán phân tích số được phát biểu như sau: Cho số ∈ ℕ, hãy tìm biểu diễn:

= Π với: ≥ 1( = 1, … , ) nguyên dương;

≥ 1 ( = 1, … , ) nguyên tố

Trang 2

Một trường hợp riêng của bài toán phân tích số được ứng dụng để xây dựng hệ mật RSA mà ở đó là tích của hai số nguyên tố và Khi đó, bài toán phân tích

số hay còn gọi là bài toán ( ) được phát biểu như sau:

Với mỗi số nguyên dương , hãy tìm số nguyên tố hoặc thỏa mãn phương trình sau: × =

Giải thuật cho bài toán ( ) có thể được viết như một thuật toán tính hàm

(.) với biến đầu vào là , còn giá trị hàm là hoặc của phương trình sau:

= ( ) hoặc: = ( )

Trong hệ mật RSA, bài toán phân tích số được sử dụng trong việc hình thành cặp khóa công khai/bí mật cho mỗi thực thể ký Với việc giữ bí mật các tham số ( , ) thì việc tính được khóa bí mật ( ) từ khóa công khai ( ) và ( ) là một bài toán khó nếu , được chọn đủ lớn và mạnh Hiện tại bài toán trên vẫn được coi là bài toán khó do chưa có giải thuật thời gian đa thức hay đa thức xác suất cho nó và hệ mật RSA là một minh chứng thực tế cho tính khó giải của bài toán này Trong thực tế, các tham số , có thể chọn theo FIPS 186 - 4 của Hoa

Kỳ cho hệ mật RSA

2.2 Bài toán khai căn trên

Cho cặp số nguyên dương ( , ) với là tích 2 số nguyên tố và sao cho bài toán phân tích số là khó giải trên Z , còn là một giá trị thỏa mãn: 1 < < ( )

và gcd , ( ) = 1, ở đây: ( ) = ( − 1) ( − 1) Khi đó, bài toán khai căn trên Z hay còn gọi là RSAP( , ) được phát biểu như sau:

Với mỗi số nguyên dương ∈ ℤ∗, hãy tìm thỏa mãn phương trình sau:

Bài toán RSAP( , ) cũng là một cơ sở quan trọng để xây dựng nên hệ mật RSA

Ở hệ mật RSA nếu giải được RSAP( , ), kẻ thám mã có thể tìm được bản rõ (M) từ bản mã (C) và các tham số công khai ( , ), hoặc dễ dàng tạo được chữ ký giả mạo (S) cho một bản tin bất kỳ (M) mà không cần biết khóa bí mật (d) của đối tượng ký (bị mạo danh) Tuy nhiên, hiện tại vẫn chưa có giải thuật thời gian đa thức cho bài toán này và do đó việc tấn công hệ mật RSA bằng việc giải RSAP( , ) là vẫn chưa khả thi

2.3 Bài toán logarit rời rạc trên

Cho cặp số nguyên dương ( , ) với là số nguyên tố, còn là một phần tử của nhóm ∗ Khi đó, bài toán logarit rời rạc trên Z hay còn gọi là bài toán DLP( , ) được phát biểu như sau:

Với mỗi số nguyên dương ∈ ℤ∗, hãy tìm thỏa mãn phương trình sau:

Giải thuật cho bài toán DLP( , ) có thể được viết như một thuật toán tính hàm DLP ( ) với biến đầu vào là , còn giá trị hàm là của phương trình sau:

Trang 3

= DLP( , )( ) Bài toán DLP( , ) là cơ sở để xây dựng nên hệ mật ElGamal Hiện tại chưa có giải thuật hiệu quả cho DLP( , ) và độ an toàn của thuật toán DSA trong chuẩn chữ ký số DSS của Hoa Kỳ là một minh chứng thực tế cho tính khó giải của bài toán này

3 XÂY DỰNG THUẬT TOÁN MẬT MÃ KHÓA CÔNG KHAI 3.1 Thuật toán hình thành tham số và khóa

Các tham số hệ thống hay tham số miền được nhà cung cấp dịch vụ chứng thực

số hình thành bằng thuật toán như sau:

a) Thuật toán 1 Hình thành các tham số hệ thống

Input: , - độ dài (tính theo bit) của các số nguyên tố ,

Output: , , Bước 1 Chọn cặp số , nguyên tố với:

( ) = , ( ) = sao cho |( − 1) Bước 2 Chọn là phần tử sinh của nhóm ∗ theo:

= , với ∈ (1, )

Chú thích: ( ): hàm tính độ dài (theo bit) của một số

Mỗi thực thể cuối/người sử dụng trong hệ thống hình thành khóa của mình bằng thuật toán như sau:

b) Thuật toán 2 Hình thành khóa

Input: , , , , - độ dài (tính theo bit) của các số nguyên tố ,

Output: , , ( ), Bước 1 Chọn cặp số , là các nguyên tố với: ( ) = , ( ) = Bước 2 Tính = , nếu ≤ thì thực hiện lại Bước 1

Bước 3 Tính ( ) = ( − 1) ( − 1)

Bước 4 Chọn khóa bí mật thứ nhất trong khoảng 1, ( )

Bước 5 Tính khóa công khai theo: = ± (1) Kiểm tra nếu: ≥ ( ) hoặc: gcd ( , ( )) ≠ 1 thì thực hiện lại từ Bước 4 Bước 6 Tính khóa bí mật thứ hai theo: = ( ) (2) Bước 7 Chọn hàm băm : {0,1}∗ → với < ℎ <

3.2 Thuật toán mật mã khóa công khai

Thuật toán mật mã được đề xuất ở đây bao gồm thuật toán mã hóa (Thuật toán

MTA 01.19-02) và giải mã (Thuật toán MTA 01.19-03) với các tham số hệ thống

được hình thành theo (1) và khóa hình thành theo (2) Giả thiết người gửi/mã hóa

là A, người nhận/giải mã là B và B có cặp khóa bí mật/công khai tương ứng là

Trang 4

( , , ), trong đó: được chọn ngẫu nhiên trong khoảng (1, ), còn ( , ) được tính theo (1) và (2) như sau:

a) Thuật toán mã hóa (MTA 01.19 - 02)

Input: p, q , g, , , M

Output: , Bước 1 Biểu diễn bản tin cần mã hóa M thành một giá trị m tương ứng trong khoảng [1, − 1], chọn ngẫu nhiên một giá trị trong khoảng (1, ) rồi tính thành

Bước 2 Tính thành phần thứ 2 của bản mã: = ( ) (5) Bước 3 Gửi bản mã ( , ) cho B

b) Thuật toán giải mã (MTA 01.19 - 03)

Input: p, q , g, , , , (C, R)

Output: Bước 1 B sử dụng khóa bí mật thứ hai để tính theo: = ( ) (6) Bước 2 Người nhận sử dụng khóa bí mật thứ nhất của mình để giải mã bản tin

Bước 3 Chuyển giá trị thành bản tin M

c) Tính đúng đắn của thuật toán

Điều cần chứng minh ở đây là: Cho p, q, , là các số nguyên tố thỏa mãn:

|(p − 1), n = p × q , > , 1 < < , = , 1 < < ,

= , = ( ) ( ), 1 < < , 0 ≤ ≤ − 1,

Chứng minh:

Từ (3), (5) và (6) ta có:

Nên từ (3), (4), (7) và (8) ta có điều cần chứng minh:

3.3 Độ an toàn của thuật toán MTA 01.19 - 02; MTA 01.19 - 03

a) Tấn công khóa bí mật

Trang 5

Ở thuật toán mới đề xuất, tính an toàn của lược đồ sẽ bị phá vỡ khi cặp khóa , có thể tính được bởi một hay các đối tượng không mong muốn Từ Thuật toán 2 cho thấy, để tìm được cần phải giải được ( ), còn để tính được cần phải giải được DLP( , ) Nói một cách khác, độ an toàn về khóa của thuật toán được đảm bảo bằng độ khó của việc giải đồng thời 2 bài toán ( ) và DLP( , ) b) Tấn công thám mã bản tin

Để giải mã bản tin có thể thực hiện tấn công vào thuật toán mã hóa hoặc giải mã như sau:

- Tấn công thuật toán mã hóa

Có thể giải mã bản tin nếu tính được trong (4) theo 2 cách:

Cách thứ nhất: giải được bài toán RSAP( , ) để tìm X = RSAP( , )( ), sau đó phải giải tiếp bài toán DLP( , ) để tìm k = DLP( , )( )

đó giải tiếp DLP( , ) để tìm k như cách thứ nhất

Như vậy, để giải mã bản tin bằng cách tấn công trực tiếp vào thuật toán mã hóa, kẻ tấn công cần phải giải được đồng thời hai bài toán RSAP( , ) và DLP( , ) hoặc ( ) và DLP( , ) đã chỉ ra ở trên Nên độ an toàn của thuật toán trước dạng tấn công này được quyết định bằng độ khó của việc giải đồng thời 2 bài toán: bài toán logarit rời rạc và bài toán khai căn, hoặc: bài toán logarit rời rạc và bài toán phân tích số

- Tấn công thuật toán giải mã

Để giải mã bản tin bằng cách tấn công vào thuật toán giải mã, kẻ tấn công cần phải tính được các khóa bí mật của người nhận B, nghĩa là phải giải được đồng thời hai bài toán bài toán ( ) và DLP( , ) Hay, độ an toàn của thuật toán trước dạng tấn công này được quyết định bằng độ khó của việc giải đồng thời 2 bài toán phân tích số và bài toán logarit rời rạc trên Zp

3.4 Thuật toán mã hóa - xác thực

Thuật toán mã hóa - xác thực được đề xuất ở đây thực hiện đồng thời chức năng bảo mật thông tin và xác thực nguồn gốc cũng như tính toàn vẹn của bản tin được

mã hóa, thuật toán được đề xuất bao gồm thuật toán mã hóa (Thuật toán MTA

01.19 - 04) và giải mã (Thuật toán MTA 01.19 - 05), với các tham số hệ thống

cũng được hình thành theo Thuật toán 1 và khóa hình thành theo Thuật toán 2 Giả thiết người gửi/mã hóa là A, người nhận/giải mã là B có cặp khóa bí mật/công khai tương ứng là ( , / ) và ( , / ), trong đó: ( , ) được chọn ngẫu nhiên trong khoảng (1, ), ( , ) và ( , ) được tính theo (1) và (2) như sau:

a) Thuật toán mã hóa (MTA 01.19 - 04)

Input: p, q , g, , , , , M

Trang 6

Output: , , Bước 1 Biểu diễn bản tin cần mã hóa M thành một giá trị m tương ứng trong khoảng [1, − 1], chọn ngẫu nhiên một giá trị trong khoảng (1, ) rồi tính thành phần thứ nhất của bản mã: = ( × ( ) ) (10)

Bước 3 Tính thành phần thứ hai của bản mã: = ( ‖ ) (12) Bước 4 Tính thành phần thứ ba của bản mã: = ( ) × ( +

Bước 5 Gửi bản mã ( , , ) cho B

b) Thuật toán giải mã (MTA 01.19 - 05)

Input: p, q , g, , , , , , , ( , , )

Bước 1 Người nhận sử dụng khóa bí mật thứ hai để tính ̅ theo:

Bước 3 Từ , giải mã bản tin nhận được: = × ( ) (17) Bước 4 Chuyển giá trị thành bản tin và tính: = (18) Bước 5 Nếu = thì = và khẳng định người gửi chính xác là A

c) Tính đúng đắn của thuật toán MTA 01.19 - 04; MTA 01.19 - 05

Điều cần chứng minh ở đây là: Cho p, q, , là các số nguyên tố thỏa mãn:

|(p − 1), n = p × q , > , 1 < < , = , 1 < , < ,

: {0,1}∗→ với |q| ≤ |h| < | |, = ( ‖ ) ,

Chứng minh:

Từ (9), (10) và (14) ta có: =

Trang 7

= ( × ) = × .

Từ (9), (13) và (15) ta lại có: = ( )

Thay (9) và (20) vào (16) ta được: = ( ) × ( )

Từ (9), (19) và (21) ta suy ra điều cần chứng minh thứ nhất:

Từ (17), (18), (21) và (22) ta suy ra điều cần chứng minh thứ hai:

3.5 Độ an toàn của thuật toán MTA 01.19 - 04; MTA 01.19 - 05

Thuật toán mã hóa - xác thực được đề xuất ở đây thực chất là sự kết hợp giữa

thuật toán mật mã ở mục 3.2 của bài báo này với thuật toán chữ ký số, nhằm cung

cấp tính năng bảo mật nội dung của bản tin và xác thực nguồn gốc cùng với tính

toàn vẹn của bản tin được thực hiện một cách đồng thời Nhờ đó, thuật toán này

cho phép chống lại các dạng tấn công giả mạo rất hiệu quả Có một điểm cần lưu ý

là dạng tấn công giả mạo ở đây cần được hiểu theo nghĩa một kẻ thứ 3 (T) muốn

mạo danh A để gửi cho B bản tin M hoặc là T gửi một bản tin không phải M cho B

trong khi B hiểu rằng A đã gửi bản tin M cho mình Từ thuật toán kiểm tra cho

thấy, điều kiện để B nhận biết chính xác bản tin M được A gửi đến khi nhận được

1 cặp (C,E,S) là:

(23)

Kẻ tấn công giả mạo có thể thực hiện được (23) nếu thực hiện được các bước

tính toán sau:

- Chọn giá trị ∗ và tính: = × ( ) ∗ ;

Ngày đăng: 11/03/2021, 11:41

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w