Đề xuất giao thức mã hóa giả xác suất có thể chối từ
sử dụng mã hóa Vernam kết hợp thuật toán ElGamal
Nguyễn Đức Tâm và Lê Mỹ Tú
Học viện Kỹ thuật mật mã,
Ban Cơ yếu Chính phủ
Email:nguyenductamkma@gmail.com, tulemy@hotmail.com
Abstract— Bài báo đề xuất phương pháp mã hóa có thể chối từ tăng khối lượng tính toán trong quá trình mã hóa và giải mã.
kết hợp giữa thuật toán mã hóa khóa công khai ElGamal và Nhằm khắc phục các hạn chế này, bài báo này đề xuất một
thuật toán mã hóa Vernam tạo thành một phương pháp mã hóa phương pháp MHCTCT (với quá trình truyền tin dựa trên giao
hai lần, quá trình truyền tin được thiết kế dựa trên giao thức ba thức ba bước Shamir) dùng thuật toán mã hóa khóa bí mật sử
bước Shamir như một mô hình kết hợp mã hóa khóa bí mật
dụng một lần Vernam như một mã hóa giao hoán kết hợp với
không trao đổi khóa với mã hóa khóa công khai. Phương pháp đề
xuất đảm bảo an toàn trước các ngữ cảnh tấn công cưỡng ép bên thuật toán mã hóa xác suất khóa công khai ElGamal. Phương
gửi hoặc tấn công cưỡng ép bên nhận, vì vậy nó có thể ứng dụng pháp đề xuất đảm bảo an toàn trong truyền tin mật sử dụng mã
được trong thực tiễn. hóa kép nhưng độ phức tạp tính toán gia tăng không đáng kể so
với mã hóa Elgamal (vì một trong hai thuật toán mã hóa là
Keywords- Mã hóa có thể chối từ, thuật toán mã hóa khóa công thuật toán mã hóa Vernam sử dụng phép XOR đơn giản), đồng
khai ElGamal, thuật toán mã hóa Vernam, giao thức ba bước thời chống lại được tấn công cưỡng ép bên gửi, cưỡng ép bên
Shamir, mã hóa xác suất. nhận. Trong nội dung bài báo, Phần II mô tả kịch bản truyền
I. GIỚI THIỆU tin và ngữ cảnh tấn công, Phần III giới thiệu các thuật toán cụ
thể sử dụng trong phương pháp đề xuất. Phần IV đề xuất giao
Mã hóa có thể chối từ (MHCTCT) là phương pháp mã hóa thức MHCTCT. Phần V kết luận.
mà khi giải mã một bản mã cho ra hai bản rõ có ý nghĩa khác
nhau, với khả năng chống lại tấn công cưỡng ép (trong kịch II. KỊCH BẢN TRUYỀN TIN VÀ NGỮ CẢNH TẤN CÔNG
bản mà kẻ thứ ba đã chặn thu được bản mã truyền qua kênh Kịch bản sử dụng MHCTCT trong truyền tin được mô tả như
công cộng và cưỡng ép bên gửi hoặc bên nhận hoặc cả hai bên sau:
phải trình ra bản rõ và các khóa đã sử dụng), MHCTCT tăng - Giả sử hai bên A và B truyền thông điệp bí mật T và ngụy
cường thêm một lớp bảo mật khi sử dụng để mã hóa và truyền trang một thông điệp giả mạo M (trên cùng một bản mã C). Kẻ
tin. Khái niệm MHCTCT được Canetti và cộng sự công bố lần tấn công có trong tay các bản mã thu được trên kênh truyền,
đầu tại bài báo [1]. Ngoài việc chống lại tấn công cưỡng ép sau đó cưỡng ép A (hoặc B) trình ra thông điệp rõ, các khóa mã
trong truyền tin mật, MHCTCT còn ứng dụng trong lưu trữ ẩn sử dụng và thuật toán mã hóa/giải mã.
giấu hoặc có khả năng chối từ các hệ thống tệp dữ liệu nhạy - Khi bị cưỡng ép, A hoặc B để bảo vệ thông điệp bí mật T, sẽ
cảm [2-4], ứng dụng trong bỏ phiếu điện tử [5]. trình ra thông điệp giả mạo M phù hợp hoàn toàn với bản mã
MHCTCT đã được nghiên cứu và đề xuất cụ thể một số C, khóa mã và thuật toán mã hóa/giải mã.
giao thức sử dụng khóa công khai [6] hoặc khóa bí mật chia sẻ - Thông điệp đầu vào phù hợp với quá trình mã hóa và các bản
trước [7]. Gần đây, một giải pháp MHCTCT được đề xuất sử mã là T hoặc M thay vì chỉ là T như mã hóa thông thường, cách
dụng thuật toán mã hóa giao hoán và khóa bí mật dùng chung thức thực hiện này yêu cầu thuật toán mã hóa phải là mã hóa
trong [8]. Nhưng dù ứng dụng thuật toán nào để thiết kế giao xác suất.
thức MHCTCT đều phải quan tâm đến điểm quan trọng nhất là Các tình huống tấn công được đặt ra là:
khả năng chống tấn công cưỡng ép bởi kẻ tấn công thụ động. - Đối thủ đã chặn thu được mọi bản mã gửi trên kênh truyền;
Bài toán đảm bảo an toàn của các giao thức MHCTCT chống - Đối thủ tấn công cưỡng ép một trong hai bên sau khi các bản
tấn công cưỡng ép được thảo luận trong các bài báo [9-10], vấn mã đã được gửi/nhận;
đề đảm bảo an toàn chống lại các tấn công cưỡng ép chủ động - Mỗi bên đều buộc phải trình ra: thông điệp rõ, khóa bí mật sử
bằng cách bổ sung thủ tục xác thực bên gửi và bên nhận cũng dụng, thuật toán thực hiện trong quá trình truyền tin và phải
được đề cập trong [10]. đảm bảo các bản mã đã gửi/nhận phù hợp hoàn toàn với những
Trong các bài báo [10-11] đã giới thiệu phương pháp thành phần này.
MHCTCT dựa trên kết hợp các nguyên thủy mật mã với giao
thức ba bước Shaimir như một hình thức truyền tin mật mà III. MỘT SỐ THUẬT TOÁN SỬ DỤNG
không cần quá trình trao đổi khóa trước (giao thức không 3.1 Giao thức ba bước Shamir
khóa), tuy nhiên với việc mã hóa xác suất bằng cách mã hóa Để thực hiện giao thức ba bước Shamir, thuật toán sử dụng
đồng thời thông điệp giả mạo và thông điệp mật (có độ dài phải có tính chất giao hoán một cách liên tiếp [13], nghĩa là nó
bằng nhau) làm giảm hiệu suất truyền tin đồng thời làm gia cho phép một thông điệp được mã hóa hai bước với bất kỳ một
122
thứ tự nào đều cho ra kết quả như nhau. Với T là thông điệp M p 1a . mod p k ( p 1a ) .M .( a )k mod p
đầu vào và KA, KB là hai khóa mã của hai lần mã khác nhau,
thuật toán mã hóa phải đảm bảo: k ( p 1) . ka .M .( a )k mod p M
EKA EKB T EKB EKA T IV. ĐỀ XUẤT GIAO THỨC MÃ HÓA CÓ THỂ CHỐI TỪ
4.1 Đề xuất phương pháp thực hiện
do tính chất giao hoán, người nhận luôn nhận được bản rõ Thuật toán mã hóa Vernam có thể sử dụng như một mã hóa
chính xác, vì: giao hoán đơn giản để thực hiện giao thức ba bước Shamir,
nhưng nó không an toàn khi sử dụng cho giao thức Shamir,
DKB DKA EKA EKB T T bởi khi thực hiện quá trình mã hóa ba bước, mỗi bản mã ở
bước này sẽ là bản rõ ở bước sau, do vậy sẽ dễ dàng tìm được
Mô tả giao thức chi tiết được thực hiện như sau: khóa (thuật toán Vernam không có khả năng chống lại tấn
1. A cần gửi thông điệp T, A tạo khóa ngẫu nhiên KA và tính công biết trước bản rõ). Vì vậy phương pháp MHCTCT dựa
bản mã C1 EKA T . A gửi C1 cho B qua kênh mở; trên giao thức ba bước Shamir được đề xuất trong bài báo này
sẽ sử dụng mã hóa kép, với sự kết hợp giữa thuật toán mã hóa
2. B tạo một khóa ngẫu nhiên KB, mã hóa bản mã C1 bằng
Vernam và thuật toán mã hóa ElGamal nhằm đảm bảo an toàn
khóa KB: C2 EKB C1 EKB EKA T , gửi C2 cho A; cho quá trình truyền tin. Phương pháp được mô tả chi tiết như
3. A, sử dụng thủ tục giải mã D = E-1, tính bản mã sau:
- A muốn gửi thông điệp bí mật T cho B và ngụy trang bằng
C3 DKA C2 DKA EKB EKA T DKA EKA EKB T EKB T ,
một thông điệp giả mạo M (với M T ).
gửi C3 cho B;
B nhận được được C3, giải mã - Hai bên dùng giao thức ba bước Shamir sử dụng mã hóa giao
hoán Vernam với các khóa bí mật KA và KB đã chuẩn bị trước.
M DKB C3 DKB EKB T T . - Quá trình mã hóa được thực hiện mã hóa thêm một lần bằng
Trong giao thức này sử dụng khóa mã KA và KB là các khóa bí mã hóa xác suất khóa công khai ElGamal với cách thức bổ
mật của phép biển đổi mã hóa giao hoán. Vì A và B không cần sung thêm các giá trị ngẫu nhiên trong quá trình mã hóa. Với
trao đổi bất cứ khóa bí mật nào trong quá trình thực hiện giao cách thức kết hợp này, giao thức ba bước Shamir được thực
thức, nên giao thức ba bước Shamir còn được gọi là giao thức thi và đảm bảo an toàn mà độ phức tạp tính toán gia tăng
không khóa ba bước Shamir. không đáng kể.
3.2 Thuật toán mã hóa khóa bí mật dùng một lần Vernam - Nếu kẻ cưỡng ép chặn các bản mã (C1, C2, C3) và tấn công
Thuật toán mã hóa Vernam là phương pháp mã hóa khóa bí cưỡng ép, buộc A hoặc B phải trình ra bản rõ, khóa mã và giao
mật (đối xứng), với chuỗi bit thông điệp T, chuỗi bit khóa bí thức mã hóa truyền tin phù hợp với các bản mã mà kẻ tấn
mật K, trong đó độ dài chuỗi bít thông điệp T (ký hiệu là T ) công đang có. A hoặc B muốn bảo vệ tính bí mật của thông
điệp T thực hiện theo phương pháp chối từ, cần có điều kiện:
bằng với độ dài chuỗi bít khóa bí mật K (ký hiệu là K ). các bản mã (C1, C2, C3) được tạo ra dưới dạng mã hóa thông
Phép mã hóa và giải mã đều là phép toán XOR (ký hiệu là ). điệp bí mật T, đồng thời, quá trình mã hóa theo phương cách
MHCTCT thông điệp bí mật T phải được thực hiện giống như
Mã hóa: C K T , giải mã: T C K , (với K T ).
(không thể phân biệt được về mặt tính toán) quá trình mã hóa
3.3 Thuật toán mã hóa khóa công khai ElGamal xác suất thông điệp giả mạo M. Khi đó A hoặc B sẽ trình ra
Thuật toán ElGamal sử dụng như một thuật toán mã hóa khóa thông điệp giả mạo M cùng khóa mã và chứng minh tính phù
công khai để truyền thông điệp qua kênh mở [15], với thủ tục hợp của thông điệp giả mạo M với các bản mã (C1, C2, C3) và
mã hóa và giải mã: giao thức mã hóa.
A sử dụng bộ tham số khóa công khai ( p, , a ), trong đó p là 4.2 Giao thức kết hợp thuật toán mã hóa Vernam với thuật
số nguyên tố an toàn và p-1 có ước là số nguyên tố lớn, là toán mã hóa ElGamal có thể chối từ
* Sử dụng phương pháp MHCTCT mô tả trong phần 4.1, giao
phần tử sinh của p, a sử dụng khóa riêng là tham số bí mật thức mã hóa giả xác suất có thể chối từ sử dụng thuật toán
thỏa mãn 1