Tải bản đầy đủ (.pdf) (5 trang)

Về một phương pháp xây dựng hệ mật mã lai ghép

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (698.68 KB, 5 trang )

HộiHội
Thảo
Quốc
Gia
vàCông
CôngNghệ
Nghệ
Thông
(ECIT
2015)
Thảo
Quốc
Gia2015
2015về
vềĐiện
Điện Tử,
Tử,Truyền
Truyền Thông
Thông và
Thông
TinTin
(ECIT
2015)

Về Một Phương Pháp Xây Dựng
Hệ Mật Mã Lai Ghép
Nguyễn Tồn Thắng1, Ngơ Đức Thiện2
Nghiên cứu sinh, Học Viện Cơng Nghệ Bưu Chính Viễn Thơng
Khoa Kỹ thuật Điện tử 1, Học Viện Cơng Nghệ Bưu Chính Viễn Thơng
Email: ,
1



2

trao đổi và thỏa thuận khóa Diffie-Hellman, hệ mật OmuraMassey, hệ mật và chữ ký số ElGamal...

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 xi
(hay mã hóa) khá đơn giản, cịn tính ngược (hay thám mã) là rất
khó. Bài tốn logarit rời rạc là một trong các bài tốn một chiều
khó và cho đến nay vẫn chưa có thuật tố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.

Cho đến này chưa có thuật tốn hiệu quả nào để giải bài toán
logarit rời rạc tổng qt. Có nhiều thuật tốn phức tạp, thường
sinh ra từ những thuật tốn tương tự như bài tốn phân tích thừa
số, chúng chạy nhanh hơn các thuật tố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
tốn như: Baby-step giant-step, Pollard, Pohlig-Hellman, COS,
tính tốn chỉ số (index calculus)...

Từ khóa— Mật mã khối, bài toán logarit rời rạc, hệ mật PohligHellman, sơ đồ Feistel.

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 hốn vị và phép

tính hàm mũ theo modulo.

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 khố 𝑘𝑘 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ã khố bí mật (hoặc mật mã khóa đối xứng), nếu để lộ 𝑘𝑘
thì hệ thống mất an tồn.

II. BÀI TỐN LOGARIT RỜI RẠC VÀ HỆ MẬT
POHLIG-HELLMAN
A. Bài tố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à 𝑥𝑥.

Ý tưởng xây dựng một hệ mật khố cơng khai (hay dùng
chung) là tìm một hệ mật khơng có khả năng tính tố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 khố cơng khai). Ưu
điểm của hệ mật khố 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ề khố 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.


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 ℤ∗𝑝𝑝 .

Ý tưởng về một hệ mật khố cơng khai được Diffie và
Hellman đưa ra vào năm 1976. Cịn việc hiện thực hố 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ã khố cơng khai 𝑒𝑒𝑘𝑘 của Bob phải là một hàm dễ tính
tố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 tố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].

 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]:

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 tố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ư:

ISBN: 978-604-67-0635-9

ℤ∗𝑝𝑝 = ℤ𝑝𝑝 /{0} = {1,2, … , 𝑝𝑝 𝑝 𝑝𝑝







227
227

Bài tốn có nghiệm khi 𝑔𝑔 là phần tử ngun thủy.
Bài tốn có thể khơng có nghiệm khi 𝑔𝑔 bất kỳ.


HộiHội
Thảo
Quốc
Gia
2015
và Cơng
CơngNghệ
NghệThơng
Thơng
(ECIT
2015)

Thảo
Quốc
Gia
2015về
vềĐiện
ĐiệnTử,
Tử,Truyền
TruyềnThơng
Thơng và
TinTin
(ECIT
2015)


Trong đó: 𝑚𝑚 là bản rõ; 𝑐𝑐 là bản mã; 𝑒𝑒 là số mũ mã hóa và 𝑑𝑑
là số mũ giải mã.

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

1

2

3

4

5


6

7

8

9

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]:

2

4

8

16

13

7

14

9

18




log 2 𝑡𝑡

18

1

13

2

16

14

6

3

8

10

11

12

13


14

15

16

17

18

17

15

11

3

6

12

5

10

1

log 2 𝑡𝑡


17

12

15

5

7

11

4

10

9

𝑡𝑡

2

𝑡𝑡

𝑡𝑡

2𝑡𝑡

Do 𝑝𝑝 là số nguyên tố nên 𝜑𝜑(𝑝𝑝) = 𝑝𝑝 𝑝𝑝, và như thế số mũ
giải mã tương ứng 𝑑𝑑 được tính từ phép nghịch đảo của

𝑒𝑒𝑒mod 𝜑𝜑𝜑𝜑𝜑𝜑 như sau [7]:
𝑑𝑑 𝑑𝑑𝑑 −1 mod 𝑝𝑝 𝑝𝑝 𝑝 𝑝𝑝 𝜑𝜑[𝜑𝜑(𝑝𝑝)]−1 mod 𝑝𝑝 𝑝𝑝
= 𝑒𝑒 𝜑𝜑(𝑝𝑝𝑝𝑝)−1 mod 𝑝𝑝 𝑝𝑝

Một số tính chất của hàm logarit rời rạc [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ã.

𝑥𝑥 𝑥 log 𝑔𝑔 𝑏𝑏𝑏𝑏 = (log 𝑔𝑔 𝑏𝑏 𝑏 log 𝑔𝑔 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑐 𝑐
𝑏𝑏

𝑥𝑥 𝑥 log 𝑔𝑔 𝑐𝑐 = (log 𝑔𝑔 𝑏𝑏 𝑏 log 𝑔𝑔 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑐 𝑐

III. ĐỀ XUẤT MỘT PHƯƠNG PHÁP XÂY DỰNG
HỆ MẬT MÃ LAI GHÉP

log 𝑔𝑔−1 𝑦𝑦 𝑦𝑦 log 𝑔𝑔 𝑦𝑦 𝑦𝑦𝑦𝑦𝑦𝑦 log 𝑔𝑔 𝑦𝑦
log 𝑔𝑔 1 = 0 = 𝑝𝑝 𝑝𝑝

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.

Bài tố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 𝑝𝑝 𝑝𝑝 là tích của các số nguyên tố nhỏ, thì có thể sử dụng
thuật tốn Pohlig - Hellman để giải bài tố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
tồ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 𝑝𝑝 = 2𝑞𝑞 + 1, với 𝑞𝑞 là số
nguyên tố lớn. Điều này đảm bảo 𝑝𝑝 − 1 = 2𝑞𝑞 có phân tích thành
tích của các số ngun 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].

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-1 trong hình 2 là các bảng hố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. HOÁN VỊ BAN ĐẦU (IP)

58
60
62
64
57
59
61
63


B. Hệ mật Pohlig - Hellman
Bài toán logarit rời rạc là bài tốn khó, trong khi bài tốn lũy
thừa rời rạc lại khơng khó (có thể tính bằng thuật tốn nhân và
bình phương). Bài tốn này cũng giống như bài tố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ã.

50
52
54
56
49
51
53
55

42
44
46
48
41
43
45
47

34
36
38
40

33
35
37
39

26
28
30
32
25
27
29
31

18
20
22
24
17
19
21
23

10
12
14
16
9
11
13

15

2
4
6
8
1
3
5
7

64
63
62
61
60
59
58
57

32
31
30
29
28
27
26
25

BẢNG III. HOÁN VỊ ĐẢO (IP-1)


Hệ mật Pohlig – Hellman cũng là một hệ mật sử dụng bài
tố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:
𝑐𝑐 𝑐 𝑐𝑐𝑒𝑒 mod 𝑝𝑝



gcd(𝑒𝑒𝑒 𝑒𝑒(𝑝𝑝)) = 1

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 𝑝𝑝.

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.



𝑚𝑚𝑚𝑚𝑚 𝑑𝑑 mod 𝑝𝑝



Ví dụ: Xét 𝑝𝑝 𝑝 19 và 𝑔𝑔 𝑔 𝑔 là phần tử nguyên thủy của

, ta có các giá trị 2𝑡𝑡 và log 2 𝑡𝑡 như trong bảng I

nhóm nhân ℤ19
(Chú ý, các phép tính đều lấy theo modulo của 19).



- Phép giải mã được thực hiện theo phương trình sau:

228
228

40
39
38
37
36
35
34
33

8
7
6
5
4
3
2
1

48
47

46
45
44
43
42
41

16
15
14
13
12
11
10
9

56
55
54
53
52
51
50
49

24
23
22
21
20

19
18
17


Thảo
Quốc
2015vềvềĐiện
ĐiệnTử,
Tử,Truyền
TruyềnThơng
Thơng và
TinTin
(ECIT
2015)
HộiHội
Thảo
Quốc
GiaGia
2015
và Cơng
CơngNghệ
NghệThơng
Thơng
(ECIT
2015)

Chú ý, riêng vịng cuối cùng thuật tốn mã hóa sẽ là:

Mã hóa


Bản rõ M

Bản mã C

(64 bit)

(64 bit)

𝑅𝑅 = 𝑅𝑅3 ⨁ 𝑒𝑒4

{ 4
𝐿𝐿4 = 𝐿𝐿3 ⨁ 𝑓𝑓𝑓𝑓𝑓3 ⨁𝑒𝑒4 , 𝑒𝑒4 )



Khóa bí mật K
(128 bit)

Hàm mã hóa 𝑓𝑓 sử dụng thuật tốn mã hóa của hệ mật Pohlig
– Hellman, thực hiện theo một trong hai cách sau:

Hình 1. Sơ đồ khối của hệ mật

Cách 1 sử dụng khóa làm số mũ mã hóa theo phương trình
đồng dư sau:

Bản rõ M( 64 bits)
IP


L0 ( 32 bits)

Hoán vị
ban đầu

𝑚𝑚𝑖𝑖


m1

L1 ( 32 bits)

m2

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.

R2 ( 32 bits)

e3
m3

f

e1 (32bit)

L3 ( 32 bits)


m4

IP

𝐿𝐿 = 𝑅𝑅𝑖𝑖𝑖𝑖 ⨁ 𝑓𝑓𝑓𝑓𝑓𝑖𝑖𝑖𝑖 , 𝑒𝑒𝑖𝑖 )

{ 𝑖𝑖
𝑅𝑅𝑖𝑖 = 𝐿𝐿𝑖𝑖𝑖𝑖 ⨁ 𝑒𝑒𝑖𝑖

Hoán vị
đảo



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).

Bản mã C( 64 bits)
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.

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:

Mỗi vịng mã hóa thực hiện theo thuật tốn sau:
𝐿𝐿 = 𝑅𝑅𝑖𝑖𝑖𝑖 ⨁ 𝑒𝑒𝑖𝑖

{ 𝑖𝑖
𝑅𝑅𝑖𝑖 = 𝐿𝐿𝑖𝑖𝑖𝑖 ⨁ 𝑓𝑓𝑓𝑓𝑓𝑖𝑖𝑖𝑖 ⨁𝑒𝑒𝑖𝑖 , 𝑒𝑒𝑖𝑖 )

e4 (32bit)

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 tốn giải mã ở mỗi vịng được thực hiện như sau:

R4 ( 32 bits)
-1

e3 (32bit)

Hình 3. Tách các khóa con 𝑒𝑒𝑖𝑖 cho các vịng mã hóa

e4

L4 ( 32 bits)

e2 (32bit)

Khóa bí mật K (128 bits)


R3 ( 32 bits)

f



mod 𝑝𝑝

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ẽ
tồn là bit "0".

e2

L2 ( 32 bits)

𝑐𝑐𝑖𝑖 = 𝑓𝑓(𝑚𝑚𝑖𝑖 , 𝑒𝑒𝑖𝑖 ) ≡ 𝑒𝑒𝑖𝑖

Trong đó: 𝑚𝑚𝑖𝑖 = 𝑅𝑅𝑖𝑖𝑖𝑖 ⨁𝑒𝑒𝑖𝑖 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.

R1 ( 32 bits)

f




𝑐𝑐𝑖𝑖 = 𝑓𝑓(𝑚𝑚𝑖𝑖 , 𝑒𝑒𝑖𝑖 ) ≡ 𝑚𝑚𝑖𝑖 𝑖𝑖 mod 𝑝𝑝

Cách 2 sử dụng dữ liệu làm số mũ mã hóa như sau:

e1



𝑒𝑒



R0 ( 32 bits)

f





229
229

Bản rõ 𝑀𝑀 gồm 64 bit được chọn và biễu diễn dưới dạng hexa
như sau [5]:


𝑀𝑀ℎ𝑒𝑒𝑒𝑒 = 0123456789ABCDEF





HộiHội
Thảo
Quốc
vàCơng
CơngNghệ
Nghệ
Thơng
(ECIT
2015)
Thảo
QuốcGia
Gia2015
2015về
vềĐiện
Điện Tử,
Tử,Truyền
Truyền Thơng
Thơng và
Thơng
TinTin
(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 tốn theo giá trị nhị phân.
Sử dụng thuật tố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].

BẢNG IV. KHOẢNG CÁCH HAMMING 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
𝑗𝑗

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:

Chưa
đổi

↔ 𝑝𝑝𝑏𝑏𝑏𝑏𝑏𝑏 = 10111001001010110001100011001011 

...



1

2

𝑝𝑝𝑑𝑑𝑑𝑑𝑑𝑑 = 3.541.619.869 

30

Bảng IV là một vài kết quả tính tố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).

31
...

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:


𝑑𝑑𝐻𝐻(𝑡𝑡𝑡𝑡) =

1

64

∑64
𝑗𝑗𝑗𝑗 𝑑𝑑𝐻𝐻 (𝐶𝐶0 , 𝐶𝐶𝑗𝑗 )




Với trường hợp 1 tính được:


𝑑𝑑𝐻𝐻(𝑡𝑡𝑡𝑡) = 31,84 𝑏𝑏𝑏𝑏𝑏𝑏



𝑑𝑑𝐻𝐻(𝑡𝑡𝑡𝑡) = 31,98 𝑏𝑏𝑏𝑏𝑏𝑏



128

∑128
𝑗𝑗𝑗𝑗 𝑑𝑑𝐻𝐻 (𝐶𝐶0 , 𝐶𝐶𝑗𝑗 )



Và trường hợp 2: 𝑑𝑑𝐻𝐻(𝑡𝑡𝑡𝑡) = 28,23 𝑏𝑏𝑏𝑏𝑏𝑏

...

...

...

682D9393
6F019515


0

39

194487F4
ED02549A

30

...

...

AB780035
2340FB9C

01234567
89ABCDE7

C6FF5110
BA721B39

24

40
33

Bản mã 𝐶𝐶𝑗𝑗


𝑑𝑑𝐻𝐻 (𝐶𝐶0 , 𝐶𝐶𝑗𝑗 )

715CCD70
CB949AD8

33

...

...

01690489
53487B72

61B6C088
B42A86CC

0

35

A9E0D179
09D4878F

36

...

...


D287E92B
13414BC4

88B33D4B
0948EF31
4E6BAC67
A5FCFB9B

30

25
31






230

Khóa bí
mật 𝐾𝐾𝑗𝑗

(32 số hexa
 128 bit)
00112233
44556677
8899AABB
CCDDEEFF


Trường hợp 1:
Hàm mã hóa
𝑒𝑒
𝑓𝑓(𝑚𝑚𝑖𝑖 , 𝑒𝑒𝑖𝑖 ) = 𝑚𝑚𝑖𝑖 𝑖𝑖 mod 𝑝𝑝

Bản mã 𝐶𝐶𝑗𝑗

𝑑𝑑𝐻𝐻 (𝐶𝐶0 , 𝐶𝐶𝑗𝑗 )

Trường hợp 2:
Hàm mã hóa
𝑚𝑚
𝑓𝑓(𝑚𝑚𝑖𝑖 , 𝑒𝑒𝑖𝑖 ) = 𝑒𝑒𝑖𝑖 𝑖𝑖 mod 𝑝𝑝

Bản mã 𝐶𝐶𝑗𝑗

𝑑𝑑𝐻𝐻 (𝐶𝐶0 , 𝐶𝐶𝑗𝑗 )

0

01690489
53487B72

C5C2F1B5
C80DB24F

26

7EBFDD39
5466507C


34

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

1

...

230

01234563
89ABCDEF

38

64

...

10112233
44556677
8899AABB
CCDDEEFF

875A60A6
DD4861DC

0

...

...


...

...

...

127

00112233
44556677
8899AABB
CCDDEEFB

865234A6
DC18249D

13

503150C8
121C2B32

19

128

00112233
44556677
8899AABB
CCDDEEF7


DA5F30A6
8C0C64DD

17

1D7C449D
174D7B67

16

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 𝑏𝑏𝑏𝑏𝑏𝑏

...

01234565
89ABCDEF

77AC3950
516F1AF3

875A60A6
DD4861DC

7EBC520B
23F17E6E

2


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:
1

21234567
89ABCDEF

𝑑𝑑𝐻𝐻 (𝐶𝐶0 , 𝐶𝐶𝑗𝑗 )

01234567
89ABCDEB

Vị trí
bit thay
đổi
𝑗𝑗

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.

𝑑𝑑𝐻𝐻(𝑡𝑡𝑡𝑡) =

11234567
89ABCDEF

Bản mã 𝐶𝐶𝑗𝑗

Trường hợp 2:

Hàm mã hóa
𝑚𝑚
𝑓𝑓(𝑚𝑚𝑖𝑖 , 𝑒𝑒𝑖𝑖 ) = 𝑒𝑒𝑖𝑖 𝑖𝑖 mod 𝑝𝑝

BẢNG V. KHOẢNG CÁCH HAMMING CỦA MỘT VÀI CẶP BẢN MÃ KHI THAY ĐỔI
1 BIT KHĨA BÍ MẬT 𝐾𝐾

Bảng V là một vài kết quả tính tố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.



01234567
89ABCDEF

Trường hợp 1:
Hàm mã hóa
𝑒𝑒
𝑓𝑓(𝑚𝑚𝑖𝑖 , 𝑒𝑒𝑖𝑖 ) = 𝑚𝑚𝑖𝑖 𝑖𝑖 mod 𝑝𝑝

63

Chưa
đổi

Và trường hợp 2 là:


Bản rõ 𝑀𝑀𝑗𝑗
(16 số hexa
 64 bit)


Hội+ӝL7KҧR4XӕF*LDYӅĈLӋQ7ӱ7UX\ӅQ7K{QJYj&{QJ1JKӋ7K{QJ7LQ (&,7

Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Nhận xét về kết quả mô phỏng:

Để đơ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.

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.

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 tố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 N0
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.

IV. KẾT LUẬN
Hệ mật mã lai ghép như đề xuất trong bài báo bao gồm hai
phép mã hóa là phép hốn vị (các bảng IP và IP-1 trong sơ đồ
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 tố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).

231




×