Bài toán logarit rời rạc là một trong các bài toán một chiều khó và cho đến nay vẫn chưa có thuật toán hiệu quả nào để giải bài toán logarit rời rạc tổng quát. Bài báo này đề xuất một phương pháp xây dựng một hệ mật mã khóa bí mật lai ghép sử dụng hệ mật Pohlig-Hellman kết hợp với sơ đồ Feistel, cùng với đó là một số đánh giá về tính khuếch tán của hệ mật đề xuất này. Mời các bạn cùng tham khảo!
Trang 1Về Một Phương Pháp Xây Dựng
Hệ Mật Mã Lai Ghép
Nguyễn Toàn Thắng1, Ngô Đức Thiện2
1Nghiên cứu sinh, Học Viện Công Nghệ Bưu Chính Viễn Thông
2 Khoa Kỹ thuật Điện tử 1, Học Viện Công Nghệ Bưu Chính Viễn Thông
Email: thangnt20@gmail.com,thiennd@ptit.edu.vn
Tóm tắt— Cho đến nay các hệ mật khóa công khai thường
được xây dựng trên các bài toán một chiều, tức là việc tính xuôi
(hay mã hóa) khá đơn giản, còn tính ngược (hay thám mã) là rất
khó Bài toán logarit rời rạc là một trong các bài toán một chiều
khó và cho đến nay vẫn chưa có thuật toán hiệu quả nào để giải
bài toán logarit rời rạc tổng quát Bài báo này đề xuất một phương
pháp xây dựng một hệ mật mã khóa bí mật lai ghép sử dụng hệ
mật Pohlig-Hellman kết hợp với sơ đồ Feistel, cùng với đó là một
số đánh giá về tính khuếch tán của hệ mật đề xuất này.
Từ khóa— Mật mã khối, bài toán logarit rời rạc, hệ mật
Pohlig-Hellman, sơ đồ Feistel.
I MỞ ĐẦU Trong mô hình mật mã cổ điển, thì Alice (người gửi) và Bob
(người nhận) chọn một khoá 𝑘𝑘 bí mật nào đó; sau đó dùng 𝑘𝑘 để
tạo luật mã hoá 𝑒𝑒𝑘𝑘 và luật giải mã 𝑑𝑑𝑘𝑘, luật giải mã 𝑑𝑑𝑘𝑘hoặc giống
𝑒𝑒𝑘𝑘 hoặc dễ dàng nhận được từ nó Các hệ mật này được gọi là
mật mã khoá bí mật (hoặc mật mã khóa đối xứng), nếu để lộ 𝑘𝑘
thì hệ thống mất an toàn
Ý tưởng xây dựng một hệ mật khoá công khai (hay dùng
chung) là tìm một hệ mật không có khả năng tính toán để xác
định 𝑑𝑑𝑘𝑘 khi biết 𝑒𝑒𝑘𝑘 Nếu thực hiện được như vậy thì quy tắc mã
hóa 𝑒𝑒𝑘𝑘 có thể được công khai bằng cách công bố nó trong một
danh bạ (bởi vậy nên có thuật ngữ hệ mật khoá công khai) Ưu
điểm của hệ mật khoá công khai là ở chỗ Alice (hoặc bất kỳ ai)
có thể gửi một bản tin đã mã hóa cho Bob (mà không cần thông
tin trước về khoá mật) bằng cách dùng luật mã hóa công khai 𝑒𝑒𝑘𝑘
Người nhận Bob sẽ là người duy nhất có thể giải được bản mã
này bằng cách sử dụng luật giải bí mật 𝑑𝑑𝑘𝑘của mình
Ý tưởng về một hệ mật khoá công khai được Diffie và
Hellman đưa ra vào năm 1976 Còn việc hiện thực hoá nó thì do
Rivesrt, Shamir và Adleman đưa ra lần đầu tiên vào năm 1977,
họ đã tạo nên hệ mật nổi tiếng RSA [7]
Hàm mã khoá công khai 𝑒𝑒𝑘𝑘 của Bob phải là một hàm dễ tính
toán, song việc tìm hàm ngược (hàm giải mã) rất khó khăn (đối
với bất kỳ ai không phải là Bob) Đặc tính dễ tính toán này
thường được gọi là đặc tính một chiều, và điều kiện cần thiết là
𝑒𝑒𝑘𝑘phải là hàm một chiều (tính thuận đơn giản, nhưng tính ngược
rất khó) [1], [7]
Một trong các hàm một chiều được sử dụng nhiều trong các
hệ mật khóa công khai đó là bài toán logarit rời rạc [2], [7] Có
thể kể đến các hệ mật khóa công khai sử dụng bài toán này như:
trao đổi và thỏa thuận khóa Diffie-Hellman, hệ mật Omura-Massey, hệ mật và chữ ký số ElGamal
Cho đến này chưa có thuật toán hiệu quả nào để giải bài toán logarit rời rạc tổng quát Có nhiều thuật toán phức tạp, thường sinh ra từ những thuật toán tương tự như bài toán phân tích thừa
số, chúng chạy nhanh hơn các thuật toán thô sơ nhưng vẫn còn chậm hơn so với thời gian đa thức Có thể kể đến một số thuật toán như: Baby-step giant-step, Pollard, Pohlig-Hellman, COS, tính toán chỉ số (index calculus)
Với mục đích kết hợp ưu điểm của các hệ mật và sơ đồ mã hóa đã có, bài báo này đề xuất một phương pháp xây dựng hệ mật mã lai ghép, trong đó hàm mã hóa sử dụng phép mã hóa của
hệ mật Pohlig-Hellman và sơ đồ mã hóa theo mạng Feistel cân bằng Hệ mật mã lai ghép này bao gồm hai phép hoán vị và phép tính hàm mũ theo modulo
II BÀI TOÁN LOGARIT RỜI RẠC VÀ HỆ MẬT
POHLIG-HELLMAN
A Bài toán logarit rời rạc
Các phép tính logarit rời rạc là các phép logarit được thực hiện trên các nhóm nhân cyclic Nếu 𝐺𝐺 là một nhóm nhân cyclic
và 𝑔𝑔 là một phần tử sinh của 𝐺𝐺𝐺 thì theo tính chất của nhóm nhân cyclic, ta thấy rằng mỗi phần tử 𝑦𝑦 trong 𝐺𝐺 có thể được tính bằng
𝑔𝑔𝑥𝑥 với một giá trị 𝑥𝑥 nào đó Phép tính logarit rời rạc của 𝑦𝑦𝑦với
cơ số 𝑔𝑔 sẽ cho kết quả là 𝑥𝑥
Có thể tóm tắt bài toán logarit rời rạc như sau [1], [4]: Cho một vành số ℤ𝑝𝑝, theo [1] nếu 𝑝𝑝𝑦là nguyên tố thì ℤ𝑝𝑝là một trường (ℤ𝑝𝑝= 𝐺𝐺𝐺𝐺(𝑝𝑝)) Tập tất cả các phần tử khác không của trường sẽ tạo nên một nhóm nhân cyclic ℤ𝑝𝑝∗
ℤ𝑝𝑝∗ = ℤ𝑝𝑝𝑦/{0} = {1𝐺2𝐺 … 𝐺 𝑝𝑝 𝑝 1}
Cho 𝑔𝑔 𝑔 ℤ𝑝𝑝∗ là một phần tử sinh của nhóm nhân
Cho 𝑦𝑦 𝑔 ℤ𝑝𝑝∗, yêu cầu hãy tìm 𝑥𝑥 (nếu tồn tại) sao cho:
𝑔𝑔𝑥𝑥 = 𝑦𝑦, tức là: 𝑥𝑥 = 𝑥𝑥𝑥𝑔𝑔𝑦𝑦
Nhận xét: ∀𝑦𝑦 𝑔 ℤ𝑝𝑝∗ thì [1]:
Bài toán có nghiệm khi 𝑔𝑔 là phần tử nguyên thủy
Bài toán có thể không có nghiệm khi 𝑔𝑔 bất kỳ
Trang 2Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Ví dụ: Xét 𝑝𝑝 𝑝 19 và 𝑔𝑔 𝑝 𝑔 là phần tử nguyên thủy của
nhóm nhân ℤ19∗ , ta có các giá trị 𝑔𝑡𝑡 và log2𝑡𝑡 như trong bảng I
(Chú ý, các phép tính đều lấy theo modulo của 19)
BẢNG I GIÁ TRỊ HÀM MŨ VÀ LOGARIT RỜI RẠC CƠ SỐ 2 CỦA CÁC PHẦN TỬ
TRONG NHÓM NHÂN ℤ 19∗
Từ bảng I ta nhận thấy cả hàm mũ và hàm logarit rời rạc đều
không phải hàm đồng biến, chúng đều là các hàm phi tuyến Kết
quả của hai hàm này khi đối số tăng là các giá trị có phân bố
ngẫu nhiên
Một số tính chất của hàm logarit rời rạc [1]
+ 𝑥𝑥 𝑝 log𝑔𝑔𝑏𝑏𝑏𝑏 𝑝 (log𝑔𝑔𝑏𝑏 𝑏 log𝑔𝑔𝑏𝑏𝑐𝑐o𝑐𝑐𝑝𝑝 𝑐 1
+ 𝑥𝑥 𝑝 log𝑔𝑔𝑏𝑏𝑐𝑐𝑝 (log𝑔𝑔𝑏𝑏 𝑐 log𝑔𝑔𝑏𝑏𝑐𝑐𝑐o𝑐𝑐𝑝𝑝 𝑐 1
+ log𝑔𝑔−1𝑦𝑦 𝑝 𝑐 log𝑔𝑔𝑦𝑦 𝑝 𝑝𝑝 𝑐 1 𝑐 log𝑔𝑔𝑦𝑦
+ log𝑔𝑔1𝑐 𝑝 0 𝑝 𝑝𝑝 𝑐 1
Bài toán logarit rời rạc không phải lúc nào cũng khó, độ khó
của nó phụ thuộc vào các nhóm nhân được lựa chọn
Ví dụ, các hệ mật dựa trên phép logarit rời rạc thường chọn
các nhóm nhân ℤ𝑝𝑝∗ trong đó 𝑝𝑝 là số nguyên tố lớn Tuy nhiên,
nếu 𝑝𝑝 𝑐 1 là tích của các số nguyên tố nhỏ, thì có thể sử dụng
thuật toán Pohlig - Hellman để giải bài toán logarit rời rạc rất
hiệu quả Vì thế người ta thường lựa chọn 𝑝𝑝 là số nguyên tố an
toàn, để thành lập nhóm nhân ℤ𝑝𝑝∗cho các hệ mật Một số nguyên
tố an toàn là một số nguyên tố có dạng 𝑝𝑝 𝑝 𝑔𝑞𝑞 𝑏 1, với 𝑞𝑞 là số
nguyên tố lớn Điều này đảm bảo 𝑝𝑝 𝑐 1 𝑝 𝑔𝑞𝑞 có phân tích thành
tích của các số nguyên tố lớn và không dễ dàng có thể giải được
bài toán logarit rời rạc bằng thuật toán Pohlig - Hellman [7]
B Hệ mật Pohlig - Hellman
Bài toán logarit rời rạc là bài toán khó, trong khi bài toán lũy
thừa rời rạc lại không khó (có thể tính bằng thuật toán nhân và
bình phương) Bài toán này cũng giống như bài toán phân tích
thừa số và phép nhân các số nguyên, đều có thể dùng để xây
dựng cấu trúc cho một hệ mật mã
Hệ mật Pohlig – Hellman cũng là một hệ mật sử dụng bài
toán logarit rời rạc, có thể tóm tắt hệ mật này như sau [3], [7]:
- Chọn 𝑝𝑝 là một số nguyên tố lớn
- Phép mã hóa thực hiện theo phương trình đồng dư sau:
- Phép giải mã được thực hiện theo phương trình sau:
Trong đó: 𝑐𝑐 là bản rõ; 𝑏𝑏 là bản mã; 𝑒𝑒 là số mũ mã hóa và 𝑑𝑑
là số mũ giải mã
Số mũ mã hóa 𝑒𝑒 (hay khóa) phải là số khả nghịch và do đó 𝑒𝑒 phải thỏa mãn điều kiện sau [6]:
Với 𝑒𝑒(𝑝𝑝𝑐 là hàm Phi-Euler, cách tính 𝑒𝑒(𝑝𝑝𝑐 có trong [7] Kết quả của hàm 𝑒𝑒(𝑝𝑝𝑐 cho ta biết số lượng các số nguyên tố cùng nhau với 𝑝𝑝
Do 𝑝𝑝 là số nguyên tố nên 𝑒𝑒(𝑝𝑝𝑐 𝑝 𝑝𝑝 𝑐 1, và như thế số mũ giải mã tương ứng 𝑑𝑑 được tính từ phép nghịch đảo của 𝑒𝑒𝑐𝑐o𝑐𝑐𝑒𝑒(𝑝𝑝𝑐 như sau [7]:
𝑑𝑑 𝑐 𝑒𝑒−1𝑐𝑐o𝑐𝑐𝑝𝑝 𝑐 1 𝑝 𝑒𝑒𝜑𝜑[𝜑𝜑(𝑝𝑝𝑐]−1𝑐𝑐o𝑐𝑐𝑝𝑝 𝑐 1
𝑝 𝑒𝑒𝜑𝜑(𝑝𝑝−1𝑐−1𝑐𝑐o𝑐𝑐𝑝𝑝 𝑐 1
Hệ mật Pohlig – Hellman có thể sử dụng làm hệ mật khóa bí mật thông thường vì rất dễ xác định 𝑑𝑑 từ 𝑒𝑒 và 𝑝𝑝 Thậm chí nếu giữ bí mật 𝑝𝑝 thì nó có thể suy ra từ kích thước của khối bản mã III ĐỀ XUẤT MỘT PHƯƠNG PHÁP XÂY DỰNG
HỆ MẬT MÃ LAI GHÉP Trong phần này, chúng tôi đề xuất một hệ mật mã lai ghép
sử dụng hai phép mã hóa là hoán vị và lũy thừa Sơ đồ khối và
sơ đồ mã hóa chi tiết như mô tả trong hình 1 và hình 2
Lược đồ mã hóa của hệ mật thực hiện theo sơ đồ Feistel cân bằng [6] Các khâu IP và IP-1trong hình 2 là các bảng hoán vị
64 bit và như thế sẽ có tổng cộng 64!𝑐cách lựa chọn khác nhau Trong bài báo này chúng tôi chọn các bảng hoán vị theo cách của hệ mật DES, như trong bảng II và bảng III [6]
BẢNG II H OÁN VỊ BAN ĐẦU (IP)
BẢNG III H OÁN VỊ ĐẢO (IP -1 )
228 Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Trang 3Mã hóa Bản rõ M
(64 bit) Khóa bí mật K (128 bit) Hình 1 Sơ đồ khối của hệ mật Bản rõ M ( 64 bits)
IP
L2 ( 32 bits) R2 ( 32 bits)
L0 ( 32 bits) R0 ( 32 bits)
R1 ( 32 bits)
L1 ( 32 bits)
L3 ( 32 bits) R3 ( 32 bits)
L4 ( 32 bits) R4 ( 32 bits)
IP-1 Bản mã C ( 64 bits)
e1
Hoán vị ban đầu
Hoán vị đảo
m1
f
e2
m2
f
e3
m3
f
e4
m4
f
Hình 2 Sơ đồ mã hóa của hệ mật
Sơ đồ mã hóa trải qua bốn vòng mã hóa với bốn khóa riêng
biệt 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 và 𝑒𝑒4 Việc lựa chọn số vòng mã hóa là do từng hệ
mật, ví dụ như DES là 16 vòng, thông thường số vòng mã hóa
liên quan đến độ khuếch tán của hệ mật Với hệ mật đề xuất này
thì chỉ cần 4 vòng mã hóa đã đạt độ khuếch tán đầu ra tốt
Mỗi vòng mã hóa thực hiện theo thuật toán sau:
{𝐿𝐿𝑖𝑖𝑅𝑅 = 𝑅𝑅𝑖𝑖𝑖1⨁ 𝑒𝑒𝑖𝑖
𝑖𝑖= 𝐿𝐿𝑖𝑖𝑖1 ⨁ 𝑓𝑓𝑓𝑅𝑅𝑖𝑖𝑖1⨁𝑒𝑒𝑖𝑖, 𝑒𝑒𝑖𝑖)
Chú ý, riêng vòng cuối cùng thuật toán mã hóa sẽ là:
{𝐿𝐿4𝑅𝑅4= 𝐿𝐿3 ⨁ 𝑓𝑓𝑓𝑅𝑅3⨁𝑒𝑒4, 𝑒𝑒4)= 𝑅𝑅3⨁ 𝑒𝑒4 Hàm mã hóa 𝑓𝑓 sử dụng thuật toán mã hóa của hệ mật Pohlig – Hellman, thực hiện theo một trong hai cách sau:
Cách 1 sử dụng khóa làm số mũ mã hóa theo phương trình đồng dư sau:
𝑐𝑐𝑖𝑖= 𝑓𝑓𝑓𝑚𝑚𝑖𝑖, 𝑒𝑒𝑖𝑖) ≡ 𝑚𝑚𝑖𝑖𝑒𝑒𝑖𝑖 mod 𝑝𝑝 Cách 2 sử dụng dữ liệu làm số mũ mã hóa như sau:
𝑐𝑐𝑖𝑖= 𝑓𝑓𝑓𝑚𝑚𝑖𝑖, 𝑒𝑒𝑖𝑖) ≡ 𝑒𝑒𝑖𝑖𝑚𝑚𝑖𝑖 mod 𝑝𝑝 Trong đó: 𝑚𝑚𝑖𝑖= 𝑅𝑅𝑖𝑖𝑖1⨁𝑒𝑒𝑖𝑖 và 𝑒𝑒𝑖𝑖 lần lượt là dữ liệu đầu vào
mã hóa và khóa mã hóa tại bước thứ 𝑖𝑖; còn 𝑝𝑝 là một số nguyên
tố Tất cả 𝑝𝑝, 𝑚𝑚𝑖𝑖 và 𝑒𝑒𝑖𝑖đều có kích thước là 32 bit
Trong sơ đồ hình 2 tại vòng mã hóa thứ 𝑖𝑖, khối 32 bit của nửa phải ở bước 𝑖𝑖 − 1 (𝑅𝑅𝑖𝑖𝑖1) sẽ được cộng thêm với khóa 𝑒𝑒𝑖𝑖 trước khi đưa vào hàm 𝑓𝑓 Điều này là để tránh trường hợp khi bản rõ đầu vào 𝑀𝑀 chứa toàn bit "0" thì bản mã đầu ra 𝐶𝐶 cũng sẽ toàn là bit "0"
Các khóa con 𝑒𝑒𝑖𝑖 tại các vòng mã hóa được trích chọn từ khóa ban đầu 𝐾𝐾 (128 bit) Cách đơn giản nhất là chia 128 bit khóa thành 4 khối 32 bit tương ứng với 4 khóa 𝑒𝑒1, 𝑒𝑒2, 𝑒𝑒3 và 𝑒𝑒4, như
mô tả trong hình 3
e1(32bit) e2(32bit) e3(32bit) e4(32bit)
Khóa bí mật K (128 bits) Hình 3 Tách các khóa con 𝑒𝑒 𝑖𝑖 cho các vòng mã hóa
Do hệ mật sử dụng sơ đồ Feistel cân bằng nên sơ đồ giải mã
về cơ bản giống với sơ đồ mã hóa Ta thực hiện sơ đồ từ dưới đi lên, tức là thứ tự của các khóa sẽ đảo lại bắt đầu từ 𝑒𝑒4 và kết thúc
ở 𝑒𝑒1 Thuật toán giải mã ở mỗi vòng được thực hiện như sau:
{𝐿𝐿𝑖𝑖= 𝑅𝑅𝑖𝑖𝑖1⨁ 𝑓𝑓𝑓𝐿𝐿𝑖𝑖𝑖1, 𝑒𝑒𝑖𝑖) 𝑅𝑅𝑖𝑖= 𝐿𝐿𝑖𝑖𝑖1⨁ 𝑒𝑒𝑖𝑖
Vì lý do mạch giải mã vẫn dùng các khóa bí mật 𝑒𝑒𝑖𝑖để giải
mã, nên ta không cần phải tính số mũ giải mã 𝑑𝑑𝑖𝑖, và như vậy các khóa 𝑒𝑒𝑖𝑖cũng không cần phải thỏa mãn biểu thức (4) Tức là có thể chọn 𝑒𝑒𝑖𝑖> 0 tùy ý, và hàm mã hóa 𝑓𝑓 có thể thực hiện theo hai cách như mô tả trong các biểu thức (8) và (9)
Tiến hành mô phỏng tính khuếch tán của hệ mật khi thay đổi
dữ liệu bản rõ 𝑀𝑀 và thay đổi khóa bí mật 𝐾𝐾, với các thông số mô phỏng được chọn như sau:
Bản rõ 𝑀𝑀 gồm 64 bit được chọn và biễu diễn dưới dạng hexa như sau [5]:
Trang 4Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Khóa bí mật 𝐾𝐾 gồm 128 bit (32 số hexa) được chọn như sau:
𝐾𝐾ℎ𝑒𝑒𝑒𝑒= 00112233445566778899AABBCCDDEEFF
Hàm mã hóa 𝑓𝑓 là hàm mũ và tính toán theo giá trị nhị phân
Sử dụng thuật toán nhân và bình phương có thể dễ dàng thực
hiện các phép tính mũ theo modulo này [1]
Do yêu cầu số 𝑝𝑝 phải là một số lớn, trong bài báo để đơn giản
chúng tôi mới chỉ chọn số 𝑝𝑝 32 bit với bit MSB của 𝑝𝑝 có giá trị
là "1"; 𝑝𝑝 được chọn như sau:
𝑝𝑝𝑑𝑑𝑒𝑒𝑑𝑑= 3.541.619.869
↔ 𝑝𝑝𝑏𝑏𝑏𝑏𝑏𝑏= 10111001001010110001100011001011
Bảng IV là một vài kết quả tính toán khoảng cách Hamming
𝑑𝑑𝐻𝐻(𝐶𝐶0, 𝐶𝐶𝑏𝑏) của các cặp bản mã khi thay đổi lần lượt từng bit
trong 64 bit bản rõ ban đầu 𝑀𝑀 Khóa bí mật 𝐾𝐾 được giữ cố định
tại các bước mô phỏng [5] Hàm mã hóa 𝑓𝑓 trong sơ đồ mã hóa
thực hiện theo hai trường hợp: trường hợp 1 mã hóa theo biểu
thức (8) và trường hợp 2 mã hóa theo biểu thức (9)
Khoảng cách Hamming trung bình (hay là độ khuếch tán)
của 64 lần thay đổi bản rõ (lần lượt từ bit 1 đến 64) được tính
theo công thức sau:
𝑑𝑑𝐻𝐻(𝑡𝑡𝑏𝑏)=641∑64 𝑑𝑑𝐻𝐻(𝐶𝐶0, 𝐶𝐶𝑗𝑗)
Với trường hợp 1 tính được:
Và trường hợp 2 là:
𝑑𝑑𝐻𝐻(𝑡𝑡𝑏𝑏)= 31,98 𝑏𝑏𝑏𝑏𝑏𝑏
Bảng V là một vài kết quả tính toán khoảng cách Hamming
của các cặp bản mã khi thay đổi lần lượt từng bit khóa đầu vào
𝐾𝐾; Bản rõ 𝑀𝑀 được giữ cố định tại các bước mô phỏng [5], và
cũng xét hai trường hợp sử dụng hàm mã hóa 𝑓𝑓 như đề cập ở
trên
Chú ý, trong các bảng IV và bảng V các giá trị 𝑀𝑀𝑗𝑗, 𝐶𝐶 𝑗𝑗 và 𝐾𝐾𝑗𝑗
được biểu diễn theo dạng hexa; các ký tự hexa in đậm chứa các
bit đã được thay đổi so với ban đầu
Khoảng cách Hamming trung bình của các bản mã so với
bản mã ban đầu khi thay đổi lần lượt từng bit của khóa 𝐾𝐾 từ bit
1 đến bit 128 được tính theo công thức sau:
𝑑𝑑𝐻𝐻(𝑡𝑡𝑏𝑏)=1281 ∑128𝑑𝑑𝐻𝐻(𝐶𝐶0, 𝐶𝐶𝑗𝑗)
Với hai trường trường hợp hàm mã hóa tính được như sau:
Với trường hợp 1: 𝑑𝑑𝐻𝐻(𝑡𝑡𝑏𝑏)= 28,25 𝑏𝑏𝑏𝑏𝑏𝑏
Và trường hợp 2: 𝑑𝑑𝐻𝐻(𝑡𝑡𝑏𝑏)= 28,23 𝑏𝑏𝑏𝑏𝑏𝑏
BẢNG IV K HOẢNG CÁCH H AMMING CỦA MỘT VÀI CẶP BẢN MÃ KHI THAY
ĐỔI 1 BIT BẢN TIN RÕ 𝑀𝑀
Vị trí bit thay đổi 𝑗𝑗
Bản rõ 𝑀𝑀 𝑗𝑗 (16 số hexa
64 bit)
Trường hợp 1:
Hàm mã hóa 𝑓𝑓(𝑚𝑚𝑏𝑏, 𝑒𝑒𝑏𝑏) = 𝑚𝑚𝑏𝑏𝑒𝑒 𝑖𝑖 mod 𝑝𝑝
Trường hợp 2:
Hàm mã hóa 𝑓𝑓(𝑚𝑚𝑏𝑏, 𝑒𝑒𝑏𝑏) = 𝑒𝑒𝑏𝑏𝑚𝑚 𝑖𝑖 mod 𝑝𝑝 Bản mã 𝐶𝐶𝑗𝑗 𝑑𝑑 𝐻𝐻 (𝐶𝐶 0 , 𝐶𝐶 𝑗𝑗 ) Bản mã 𝐶𝐶𝑗𝑗 𝑑𝑑 𝐻𝐻 (𝐶𝐶 0 , 𝐶𝐶 𝑗𝑗 ) Chưa
đổi 01234567 89ABCDEF 875A60A6 DD4861DC 0 01690489 53487B72 0
1 11234567
89ABCDEF 77AC3950 516F1AF3 38 715CCD70 CB949AD8 33
2 21234567
89ABCDEF 682D9393 6F019515 39 61B6C088 B42A86CC 35
30 01234565
89ABCDEF 194487F4 ED02549A 30 A9E0D179 09D4878F 36
31 01234563
89ABCDEF AB780035 2340FB9C 24 D287E92B 13414BC4 30
63 01234567
89ABCDEB 7EBC520B 23F17E6E 40 88B33D4B 0948EF31 25
64 01234567
89ABCDE7 C6FF5110 BA721B39 33 4E6BAC67 A5FCFB9B 31 BẢNG V K HOẢNG CÁCH H AMMING CỦA MỘT VÀI CẶP BẢN MÃ KHI THAY ĐỔI
1 BIT KHÓA BÍ MẬT 𝐾𝐾
Vị trí bit thay đổi 𝑗𝑗
Khóa bí mật 𝐾𝐾𝑗𝑗
(32 số hexa
128 bit)
Trường hợp 1:
Hàm mã hóa 𝑓𝑓(𝑚𝑚 𝑏𝑏 , 𝑒𝑒 𝑏𝑏 ) = 𝑚𝑚𝑏𝑏𝑒𝑒 𝑖𝑖 mod 𝑝𝑝
Trường hợp 2:
Hàm mã hóa 𝑓𝑓(𝑚𝑚 𝑏𝑏 , 𝑒𝑒 𝑏𝑏 ) = 𝑒𝑒𝑏𝑏𝑚𝑚 𝑖𝑖 mod 𝑝𝑝 Bản mã 𝐶𝐶𝑗𝑗 𝑑𝑑 𝐻𝐻 (𝐶𝐶 0 , 𝐶𝐶 𝑗𝑗 ) Bản mã 𝐶𝐶𝑗𝑗 𝑑𝑑 𝐻𝐻 (𝐶𝐶 0 , 𝐶𝐶 𝑗𝑗 ) Chưa
đổi
00112233
44556677 8899AABB CCDDEEFF
875A60A6 DD4861DC 0 01690489 53487B72 0
1 10112233
44556677 8899AABB CCDDEEFF
C5C2F1B5 C80DB24F 26 7EBFDD39 5466507C 34
2 20112233
44556677 8899AABB CCDDEEFF
B40F8E3A 80BAE970 34 72405AD9 35379279 34
64 00112233
4455667F
8899AABB CCDDEEFF
F651D78C 988A9F2E 34 82732146 F87CD709 33
65 00112233
44556677
9899AABB
CCDDEEFF
FC8D4B5C 2BF6F0B5 41 1CC8A983 105E2A90 27
127 00112233
44556677 8899AABB
CCDDEEFB
865234A6 DC18249D 13 503150C8 121C2B32 19
128 00112233
44556677 8899AABB
CCDDEEF7
DA5F30A6 8C0C64DD 17 1D7C449D 174D7B67 16
230 Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Trang 5Nhận xét về kết quả mô phỏng:
Một trong các yêu cầu khi đánh giá một hệ mật đó là tính
khuếch tán tại đầu ra Theo các kết quả mô phỏng ở (15), (16) ta
thấy độ khuếch tán đầu ra của hệ mật khi thay đổi một bit dữ liệu
của bản rõ đầu vào lần lượt là 31,84 bit và 31,98 bit (tương ứng
với hai kiểu mã hóa khác nhau), các giá trị này đạt xấp xỉ một
nửa độ dài từ mã (32 bit) Tương tự trong (18) và (19) độ khuếch
tán của hệ mật khi thay đổi một bit của khóa cũng đạt lần lượt là
28,25 bit và 28,23 bit Chỉ với 4 vòng mã hóa nhưng hệ mật đã
đạt độ khuếch tán rất tốt, đây chính là một ưu điểm đáng chú ý
của hệ mật này
IV. KẾT LUẬN
Hệ mật mã lai ghép như đề xuất trong bài báo bao gồm hai
Feistel), và phép mũ rời rạc theo hệ mật Pohlig - Hellman Hệ
mật này có một số ưu điểm sau: (a) Hàm mã hóa được thực hiện
trên bài toán logarit rời rạc nên hệ mật có tính phi tuyến, cùng
với độ dài khóa bí mật 128 bit nên hệ mật đạt được độ an toàn
nhất định; (b) Do sử dụng sơ đồ Feistel nên mạch mã hóa và giải
mã tương tự nhau rất thuận lợi cho việc thiết kế mạch phần cứng;
(c) Để hệ mật có độ khuếch tán đạt khoảng một nửa độ dài từ mã
thì hệ mật chỉ cần bốn vòng mã hóa điều này sẽ làm tăng đáng
kể tốc độ mã hóa
Với các ưu điểm này của hệ mật, chúng tôi nhận thấy hệ mật
này rất phù hợp để ứng dụng vào các lưu đồ thực hiện hàm băm
không khóa (MDC)
Để đơn giản, bài báo chỉ minh họa trường hợp số nguyên tố
gồm 32 bit Ta hoàn toàn có thể tăng độ dài từ mã cũng như
độ dài khóa bằng cách tăng giá trị số lên để hệ mật an toàn hơn Tuy nhiên, khi chọn phải chú ý đến điều kiện số nguyên
tố an toàn như đã trình bày trong mục II.A ở trên
Trong khuôn khổ bài báo chỉ đề cập đến tính khuếch tán của
hệ mật, để đánh giá hoàn chỉnh hơn về hệ mật này cần có thêm các mô phỏng tính toán các phép tấn công khác nữa lên hệ mật
TÀI LIỆU THAM KHẢO [1] Nguyễn Bình, “Giáo trình Mật mã học”, Học viện Công nghệ Bưu chính Viễn thông, 2013.
[2] Nguyen Minh Trung, Nguyen Binh, “Some Hybrid Crypto Systems Constructed on Discrete Logarithm Problem”, The International Conference on Advanced Technologies for Communications (ATC) Hanoi, Vietnam, October, 2014.
[3] Mollin, Richard A., "An Introduction to Cryptography (2nd ed.)" Chapman and Hall/CRC, 2006.
[4] Frederik Vercauteren, “Discrete Logarithms in Cryptography”, ESAT/COSIC - K.U Leuven ECRYPT Summer School 2008.
[5] Jean-Yves Chouinard - ELG 5373, “Secure Communications and Data Encryption, School of Information Technology and Engineering”, University of Ottawa, April 2002.
[6] Pascal JUNOD, "Statistical Cryptanalysis of Block Ciphers", Thèse N 0
3179, Insitute de systèmes de communication, Ècole Polytechnique Fédérale de Lausanne, 2005
[7] A Menezes, P van Oorschot, and S Vanstone, "Handbook of Applied Cryptography", CRC Press, 1996