Tải bản đầy đủ (.docx) (51 trang)

PHÂN TÍCH MỘT SỐ TÍNH CHẤT MẬT MÃ CỦA HỘP THẾ TRONG HỆ MẬT MÃ KHỐI GOST R 34.122015

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 (529.53 KB, 51 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ

ĐỒ ÁN TỐT NGHIỆP

PHÂN TÍCH MỘT SỐ TÍNH CHẤT MẬT MÃ CỦA
HỘP THẾ TRONG HỆ MẬT MÃ KHỐI
GOST R 34.12-2015

Ngành: Công nghệ thông tin
Chuyên ngành: An toàn thông tin
Mã số: 52.48.02.01

Hà Nội, 2016


BAN CƠ YẾU CHÍNH PHỦ
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
HỌC VIỆN KỸ THUẬT MẬT MÃ

ĐỒ ÁN TỐT NGHIỆP

PHÂN TÍCH MỘT SỐĐỒTÍNH
CHẤT
MẬT MÃ CỦA HỘP
ÁN TỐT
NGHIỆP
THẾ TRONG
MẬT
MÃ KHỐI


PHÂN TÍCH
MỘT SỐHỆ
TÍNH
CHẤT
MẬT MÃ CỦA
GOST 34.12-2015
HỘP THẾ TRONG
HỆ MẬT MÃ KHỐI
GOST R 34.12-2015
Ngành
: Công nghệ thông tin
Chuyên ngành : An toàn thông tin
Mã số:
Sinh viên thực hiện:
Tạ Thị Thanh Thùy
Lớp: AT8B
Người hướng dẫn:
TS.Hoàng Đức Thọ
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2016


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

MỤC LỤC

Tạ Thị Thanh Thùy


3

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

BẢNG KÝ HIỆU
AES

Advanced Encryption Standard

ANF

Agebraic Normal Form

DES

Data Encryption Standard

IDEA

International Data Encryption Algorithm

KSU

Key storage unit


NIST

National Institute of Standard and Technology

РС

Propagation Criterion

SAC

Strict Avalanche Criterion

SPN

Substitution-Permutation Network

Tạ Thị Thanh Thùy

4

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU


Tạ Thị Thanh Thùy

5

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

LỜI CẢM ƠN
Trong quá trình thực hiện đồ án, em đã nhận được sự hướng dẫn, giúp
đỡ tận tình của TS. Nguyễn Hồng Quang đã góp ý, hướng dẫn, lắng nghe báo
cáo hàng tuần và đưa ra góp ý xác đáng, giúp em hoàn thiện đề tài từng bước
đến khi hoàn thành bản báo cáo này.
Em cũng xin chân thành cảm ơn các Thầy, Cô giáo trong trường giảng
dạy các bộ môn giúp em có thêm được nhiều kiến thức để hoàn thành đồ án,
cảm ơn sự quan tâm sâu sát của cán bộ Hệ quản lý học viên, sự động viên của
người thân và bạn bè.
Do kinh nghiệm và kiến thức chưa được sâu sắc nên trong báo cáo về
đề tài của em không tránh khỏi những thiết sót, mong quý thầy cô góp ý thêm
để em có thể bổ sung kiến thức cho bản thân để thực hiện những nghiên cứu
chuyên sâu hơn sau này.
Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để em
hoàn thành đồ án tốt nghiệp này!
Sinh viên thực hiện đồ án
Tạ Thị Thanh Thùy

Tạ Thị Thanh Thùy


6

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

LỜI NÓI ĐẦU
Trong lịch sử nhân loại đã xảy ra những cuộc chiến tranh tàn khốc, như
hai cuộc thế chiến đầu thế kỷ 20. Tuy nhiên, bên cạnh những cuộc chiến bên
ngoài chiến trường, thì ẩn bên trong nó lại là một cuộc chiến khác: cuộc chiến
về thông tin. Đã có truyền tin thì tất nhiên cần phải có yêu cầu giữ bí mật.
Vậy là ngành khoa học mật mã (Cryptography) ra đời để phục vụ cho yêu cầu
đó.
Ban đầu, người ta chỉ nghĩ ra những loại mật mã đơn giản, đủ để che
giấu nội dung thông tin. Ví dụ như xáo trộn vị trí các chữ cái, hay là thay thế
chữ cái này bằng một chữ cái khác, v.v… Nhưng chẳng bao lâu sau thì những
loại mật mã thế này đều bị các nhà giải mã phá được. Vậy là có sự liên tục đổi
mới trong cách tạo mã, sự liên tục đổi mới đó đã tạo ra một cuộc chiến trường
kỳ giữa những nhà tạo mã và những nhà giải mã. Có người giải mã ra được
thì bắt đầu nảy sinh tìm loại mật mã mới, và khi một loại mật mã mới ra đời
thì các nhà giải mã lại phải lao đầu vào nghĩ cách hóa giải. Thậm chí người ta
phải lập ra những đội ngũ chuyên nghiệp chỉ để làm công việc giải mã thông
tin của đối phương.
Trong lịch sử mật mã học, những thuật toán mã hóa khối của Nga đã có
những đóng góp không nhỏ trong việc quyết định lịch sử thế giới nói chung.
Trong đề tài “PHÂN TÍCH MỘT SỐ TÍNH CHẤT MẬT MÃ CỦA

HỘP THẾ TRONG HỆ MẬT MÃ KHỐI GOST 34.12-2015” em xin trình
bày các chương như sau:
Chương 1: Tổng quan về hệ mật
Trong chương này sẽ trình bày tổng quan về hệ mật, hệ mật mã khối và
đưa ra một số thuật toán mã khối của Nga.
Chương 2: Các tính chất mật mã của hộp thế
Trong chương này sẽ trình bày về hàm Boolean và các tính chất mật mã
của hàm Boolean cũng như sự cần thiết của việc ứng dụng hộp thế (S-box)
trong các hệ mật mã khối, các thuộc tính mật mã của hộp thế.
Chương 3: Phân tích các tính chất mật mã của hộp thế trong hệ
mật mã khối GOST R 34.12-2015
Nội dung của chương này sẽ nêu lên được những định nghĩa, và thông
số chung về thuật toán GOST 34.12-2015 cũng như sẽ trình bày hiểu biết về
Tạ Thị Thanh Thùy

7

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

các tính chất mật tính chất mật mã của hộp thế trong thuật toán Gost 34.122015.
Trong chương này cũng lựa chọn ngôn ngữ lập trình thích hợp, xây dựng
chương trình cho phép tính toán và phân tích tính chất mật mã của hộp thế
trong Gost 34.12-2015, đánh giá và phân tích kết quả đạt được. Đồng thời
cũng nêu ra sự so sánh với hộp thế trong hệ mật thông dụng AES.


CHƯƠNG 1: TỔNG QUAN VỀ HỆ MẬT
1.1. Một số khái niệm trong hệ mật
- Hệ mật mã: Hệ mật mã được định nghĩa là một bộ năm trong đó:
1. là tập hữu hạn các các bản rõ có thể
2. tập hữu hạn các bản mã có thể
3. là tập hữu hạn các khoá có thể
4. là tập các hàm lập mã
5. là tập các hàm giải mã. Với mỗi ∈ , có một hàm lập mã
và một hàm giải mã sao cho

Hình 1.1.

Quá trình mã hóa và giải mã

- Mã hóa là quá trình sử dụng những quy tắc được quy định trong một
hệ mã để biến đổi thông tin ban đầu (thông tin cần bảo vệ; bản rõ) thành bản
mã.
- Giải mã là quá trình ngược lại với mã hóa, tức là sử dụng những quy
tắc được quy định trong hệ mã để biến đổi nội dung bản mã về thông tin ban
đầu.
Tạ Thị Thanh Thùy
8
S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

- 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ã.
Thám mã có thể chia làm 2 loại:
+ Loại 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.
+ Loại thám mã thụ động: là việc thám mã để có được thông tin về bản
rõ phục vụ mục đích của người thám mã.
1.2. Phân loại hệ mật

Hình 1.2.

Sơ đồ phân loại hệ mật

- Hàm hash (hàm băm): Trong ngành mật mã học, một hàm băm mật
mã học là một hàm băm với một số tính chất bảo mật nhất định để phù hợp
việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn như
chứng thực (authentication) và kiểm tra tính nguyên vẹn của thông điệp
(message integrity). Một hàm băm nhận đầu vào là một xâu ký tự dài (hay
thông điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố
định, đôi khi được gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số
(digital signature).
Tạ Thị Thanh Thùy

9

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp


Khoa An Toàn Thông Tin

- Mật mã đối xứng: Đây là thuật toán mật mã mà quá trình mã hóa và
giải mã chỉ dùng một khóa. Thực tế thì hai khóa (mã hóa, giải mã) có thể khác
nhau, trong trường hợp này thì một khóa nhận được từ khóa kia bằng phép
tính toán đơn giản.
Mật mã đối xứng thì được chia ra thành hai loại: mã dòng và mã khối.
+ Mã dòng: Mã hóa dòng làm việc trên từng bít của dòng dữ liệu và
quá trình biến đổi thay đổi theo quá trình mã hóa.
+ Mã khối: Mã hóa khối là những thuật toán mã hóa đối xứng hoạt
động trên những khối thông tin có độ dài xác định (block) với những chuyển
đổi xác định. Chẳng hạn một thuật toán mã hóa khối có thể xử lý khối 128 bít
đầu vào và biến nó thành khối 128 bít ở đầu ra. Quá trình chuyển đổi còn sử
dụng thêm một tham số nữa: khóa bí mật để cá biệt hóa quá trình. Việc giải
mã cũng diễn ra tương tự: xử lý khối mã hóa 128 bít cùng với khóa để trả về
khối 128 bít bản rõ ban đầu.
- Mật mã bất đối xứng: Đây là phương pháp mật mã dùng hai khóa là
khóa công khai dùng cho quá trình mã, khóa mật dùng cho quá trình giải mã.
Khóa công khai và khóa mật có quan hệ với nhau bằng biểu thức phức tạp,
khóa công khai tính dễ dàng từ khóa mật, còn tính khóa mật từ khóa công
khai là bài toán khó và hầu như không giải được.
- Chữ ký điện tử: Phương pháp ký một bức điện dưới dạng điện tử, để
đảm bảo tính nguyên vẹn và xác thực quyền tác giả. Như trong mật mã bất
đối xứng, chữ ký điện tử cũng dùng thuật toán mật mã với hai khóa, khóa
công khai tính dễ dàng từ khóa mật, còn khóa mật thì rất khó và hầu như là
không thể tính được từ khóa công khai. Nhưng khác với mật mã bất đối xứng
là quá trình ký bức điện dùng khóa mật, còn quá trình kiểm tra bức điện dùng
khóa công khai. Và khóa mật ngoài chủ của bức điện thì không ai biết được,
nhờ tính chất này mà chống từ chối bức điện.
1.3. Hệ mật mã khối

1.3.1. Giới thiệu chung
Các hệ mã cổ điển (ví dụ: mã hóa dịch chuyển, mã hóa thay thế, mã hóa
Affine, mã hóa Vigenere, mã hóa Hill) đều có đặc điểm chung là từng ký tự
của bản rõ được mã hoá tách biệt. Điều này làm cho việc phá mã trở nên dễ
dàng hơn. Chính vì vậy, trên thực tế người ta hay dùng một kiểu mật mã khác,
Tạ Thị Thanh Thùy

10

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

trong đó từng khối ký tự của bản rõ được mã hoá cùng một lúc như là một
đơn vị mã hoá đồng nhất, gọi là phương pháp mã hóa khối.
Quá trình mã hóa khối bao gồm 2 thuật toán: mã hóa - ký hiệu và giải
mã - ký hiệu . Cả 2 thuật toán đều tác động lên một khối đầu vào n bít sử
dụng một khóa k bít để cho ra một khối đầu ra n bít. Đối với bất kỳ khóa nào,
giải mã là hàm ngược của mã hóa, nghĩa là:
Ta có: là khối thông tin và là khóa bất kỳ.
Với mỗi khóa là một hoán vị (song ánh) của khối đầu vào. Mỗi khóa sẽ
xác định một hoán vị trong tổng số ! khả năng.
Độ dài của khối thông tin, ký hiệu là n, thông thường là cố định ở 64
hoặc 128 bít. Một số thuật toán có độ dài khối thay đổi nhưng không phổ
biến. Tính đến trước những năm giữa của thập kỷ 1990 thì độ dài 64 bít
thường được sử dụng. Từ đó trở về sau thì khối 128 bít được sử dụng rộng rãi
hơn. Trong các chế độ mã hóa khối thì người ta thường phải bổ sung thêm

một số bít cho văn bản (padding) để văn bản chứa số nguyên lần các khối.
Hầu hết các thuật toán mã hóa khối sử dụng lặp đi lặp lại các hàm đơn
giản. Mỗi chu kỳ lặp được gọi là một vòng và thông thường các thuật toán có
từ 4 tới 32 vòng.
Các thành phần sử dụng trong thuật toán là các hàm toán học, các hàm
lô gíc (đặc biệt là hàm XOR), hộp thế (S-box) và các phương pháp hoán vị.
1.3.2. Các loại mã hoá khối
Qua thời gian thì có rất nhiều hệ mã khối ra đời và đã được phát triển.
Có thể kể ra một số hệ mã sau: DES (1977), 3-DES (1985)(t53), FEAL,
REDOC, LOKI (1990), IDEA (1990), MMB, CA-1.1, Shipjack, GOST,
Blowfish, SAFER, AES (2001),..
Trong đó phải kể đến thuật toán mã hóa DES được sử dụng rộng rãi và
có tầm quan trọng vô cùng to lớn. DES thường được dùng để mã hoá bảo mật
các thông tin trong quá trình truyền tin cũng như lưu trữ thông tin. Một ứng
dụng quan trọng khác của DES là kiểm tra tính xác thực của mật khẩu truy
nhập vào một hệ thống (hệ thống quản lý bán hàng, quản lý thiết bị viễn
thông…), hay tạo và kiểm tính hợp lệ của một mã số bí mật (thẻ internet, thẻ
điện thoại di động trả trước), hoặc của một thẻ thông minh (thẻ tín dụng, thẻ
payphone…).
Tạ Thị Thanh Thùy

11

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin


Tuy nhiên DES cũng có những điểm yếu nhất định của nó, đó chính là
tính bù và khóa yếu:
+ Tính bù: Ký hiệu là phần bù của u (ví dụ 0100101 và 1011010 là bù
của nhau) thì DES có tính chất sau: .
Cho nên nếu biết MÃ y được mã hóa từ TIN x với khóa z thì ta suy ra
được mã hóa từ TIN với khóa . Tính chất này chính là một điểm yếu của
DES bởi vì nhờ đó kẻ địch có thể loại trừ một nửa số khóa cần phải thử khi
tiến hành phép thử - giải mã theo kiểu tìm kiếm vét cạn không gian khóa.
+ Khóa yếu:
Các khóa yếu là các khóa mà theo thuật toán sinh khóa con thì tất cả 16
khóa con đều như nhau
Điều đó khiến cho phép sinh mã và giải mã đối với các khóa yếu này là
giống hệt nhau DESz = DES-1z .
Do DES có kích thước khóa quá ngắn nên hiện nay đã có những thiết
kế cụ thể cho loại máy tính chuyên dụng phá khóa này dựa trên kỹ thuật xử lý
song song tiên tiến và cho biết một thiết bị kiểu này có giá khoảng $10,000 có
thể cho kết quả trong 1 ngày.
Cho tới nay có thể nói rằng DES đã bị phá vỡ, và vượt lên trên các tấn
công phân tích mã, lần lượt các hệ mã khối mới với ưu thế mới đã ra đời đáp
ứng có độ an toàn chống lại được các tấn công thực tế và hiệu quả trong sử
dụng. Tiêu chuẩn mã dữ liệu tiên tiến AES nhằm thay cho DES là một ví dụ.
Vào năm 2000, cơ quan quản lý về chuẩn và công nghệ của Mỹ, NIST
(National Institute of Standard and Technology), đã tổ chức một cuộc thi để
chọn một hệ mật mã mới thay thế cho DES. Hệ mã Rijndael đã được chọn và
được công bố (2002) như là chuẩn mật mã mới thay thế cho DES, với tên gọi
là Advanced Encryption Standard (AES). Vào đến vòng trong còn có các ứng
viên khác là RC6, Serpent, MARS và Twofish. Hệ mã này được phát triển bởi
2 nhà khoa học Bỉ, Joan Daemen và Vincent Rijnmen (vì vậy tên gọi Rijndael
được tạo ra từ việc ghép tiền tố tên họ 2 ông này).
AES được xây dựng trên cấu trúc mạng thay thế - hoán vị

(Substitution-Permutation Network - SPN). Đây là một hệ mã có tốc độ tốt
trong cả cài đặt phần mềm cũng như phần cứng. Khác với DES, AES không
theo mẫu cấu trúc kiểu Feistel. Thay vào đó các thao tác cơ bản được thực
Tạ Thị Thanh Thùy

12

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

hiện trên các khối ma trận dữ liệu 4*4 (bytes), được gọi là các trạng thái
(state). Số vòng lặp của AES là một tham số xác định trên cơ sở kích thước
khóa: 10 vòng lặp cho khóa 128bit,12 cho 192bit, 14 cho 256bit.
Hệ mật AES hiện nay là một thuật toán mã hóa đang được sử dụng
thịnh hành trên thế giới và dù cho có bị tấn công bởi “tấn công kênh bên”,
AES vẫn chưa bị phá vỡ bởi theo nghiên cứu thì tại thời điểm này nguy cơ tấn
công này không thực sự nguy hiểm và có thể bỏ qua. AES hiện nay cần được
cải tiến hơn nữa để giữ vị trí an toàn trong các thuật toán mã hóa thông dụng.
1.3.3. Độ an toàn của mã hóa khối
Độ an toàn của khối: Khối phải có độ dài đủ để chống lại các phương
pháp phân tích thống kê và ngăn việc một số khối nào đó xuất hiện nhiều hơn
các khối khác. Mặt khác sự phức tạp của thuật toán tăng theo hàm mũ với độ
dài khối. Với khối có độ dài 64 bit là đủ độ an toàn.
- Độ dài khoá: Khoá phải có độ dài đủ để chống lại các phương pháp
vét cạn khoá (Chống khả năng thử các khoá được sinh ra từ (N)bit khoá cho
trước).

- Độ phức tạp: Bản mã phải phụ thuộc một cách phức tạp vào bản rõ và
khoá. Mục tiêu đặt ra ở đây là phải phức tạp hoá sự phụ thuộc của thống kê
của bản mã vào bản rõ.
- Sự phân bố: IDEA đã đạt được việc mỗi bít của bản rõ phải có ảnh
hưởng tới nhiều bit của bản mã và mỗi bit khoá cũng tác động đến nhiều bit
của bản mã. Điều này làm cho cấu trúc của bản rõ sẽ bị phá vỡ trong bản mã.
1.4. Thuật toán mã hóa khối GOST 28147-89 của Nga
1.4.1. Mở đầu
Mô tả chi tiết của thuật toán mã hóa Liên xô đã được công bố trong
GOST 28147-89. Mục đích của những người thiết kế là cung cấp một thuật
toán mã hóa có độ mật mềm dẻo. Thuật toán là một ví dụ của hệ mật kiểu
DES cùng với lịch trình khóa được đơn giản hóa tối đa. Nó mã thông báo 64bit thành bản mã có 64-bit bằng khóa 256-bit. Tài liệu về GOST đã khuyến
cáo 4 dạng sử dụng sau: thay thế đơn giản (electronic code-book mode), kiểu
dòng (stream mode, được gọi là Γ-mode), kiểu dòng có phản hồi (stream
mode with feedback) và kiểu xác thực (authentication mode).
1.4.2. Mô tả thuật toán GOST
Tạ Thị Thanh Thùy

13

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

Thuật toán GOST gồm 32 vòng lặp (hai lần nhiều hơn DES). Mỗi vòng
lặp được chỉ ra ở hình dưới. Có hai phần tử là bí mật trong thuật toán này:
khóa mã K 256-bit và định nghĩa các S-box .


Hình 1.3.

Đường đi của dữ liệu trong một vòng mã/dịch của GOST

Khóa mật mã được lưu trữ trong thiết bị lưu trữ khóa (key storage unit
- KSU) như một dãy của 8 từ 32-bit . Mỗi từ khóa 32-bit được gọi là khóa
thành phần (i = 0, ..., 7). Để mã một văn bản 64-bit, trước hết nó được chia
thành 2 nửa 32-bit và được đặt vào thanh ghi 32-bit và . Nội dung của thanh
ghi được cộng theo modulo 232 vào khóa thành phần (bộ cộng CM1), tức là
(mod 2):
Dãy thu được 32-bit được chia thành 8 khối 4-bit. 8 khối 4-bit này là
đầu vào của 8 S-box tương ứng . Mỗi , i = 1, ..., 8 là một phép hoán vị. 8 đầu
ra 4-bit của các S-box được lưu vào thanh ghi dịch , nội dung của thanh này
được dịch trái 11 bit (về phía bit bậc cao). Nội dung của thanh bây giờ được
cộng modulo 2 (Exclusive-Or hoặc XOR) với nội dung của thanh ghi bằng
bộ cộng CM2. Nội dung từ sẽ được lưu trong và giá trị cũ của được lưu trong
. Đến đây kết thúc vòng lặp thứ nhất.

Tạ Thị Thanh Thùy

14

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin


Các vòng lặp khác tương tự như vòng lặp thứ nhất. Trong vòng lặp thứ
hai, chúng ta sử dụng khóa từ KSU. Các vòng lặp thứ 3, 4, 5, 6, 7, 8 sử dụng
tương ứng các khóa thành phần Các vòng lặp từ 9 đến 16 và từ 17 đến 24
cũng sử dụng các khóa thành phần này. Các vòng lặp từ 25 đến 32 sử dụng
các khóa thành phần theo thứ tự ngược lại, tức là vòng lặp thứ 25 sử dụng
khóa , vòng lặp thứ 26 sử dụng khóa và cứ tiếp tục như vậy. Vòng lặp cuối
cùng dùng khóa . Cho nên thứ tự của các khóa thành phần trong 32 vòng lặp
là:
Sau 32 vòng lặp, đầu ra từ bộ cộng CM2 được đặt trong , còn giữ
nguyên giá trị cũ. Nội dung của các thanh ghi và là bản mã 64-bit cho bản rõ
có 64-bit.
1.4.3. Các tính chất tổng quát của GOST
Thuật toán GOST lặp lại cấu trúc tổng thể của DES. Rõ ràng là những
người thiết kế nó đã cố gắng để đạt được sự cân bằng giữa tính hiệu quả của
thuật toán và độ mật của nó. Nó sử dụng các khối được xây dựng thường lệ và
đơn giản. Đặc biệt, GOST khác DES ở những điểm sau:
- Lịch trình khóa phức tạp được bỏ qua và thay bằng dãy có quy tắc của
các khóa thành phần.
- Khóa mật mã có độ dài đến 256 bit so với 56 bit của DES. Hơn nữa,
lượng thực tế của thông tin mật trong hệ thống, bao gồm cả các S-box, gộp lại
xấp xỉ 610 bit thông tin.
- 8 hộp S-box là các hoán vị : GF(24) → GF(24), về tổng thể chỉ đòi hỏi
không gian lưu trữ tương đương với 2 S-box của DES.
- Khóa con cho mỗi vòng lặp là 32-bit cho một phép cộng có nhớ chứ
không phải là phép XOR 48-bit như trong DES.
- Phép hoán vị khối bất quy tắc trong DES được thay bởi thanh ghi
dịch đơn giản , nó quay nội dung đi 11 bit về bên trái sau mỗi vòng.
- Số vòng được tăng từ 16 lên 32.
Do độ mật của thuật toán phụ thuộc cả vào khóa mật mã và 8 phép thế ,
i = 1, ..., 8 nên người sử dụng cần phải biết nên chọn 2 thành phần bí mật này

như thế nào? Khóa mật mã có thể chọn ngẫu nhiên, nhưng việc chọn các hóan
vị được dành cho người có chức trách, người biết chọn những hoán vị tốt. Từ
quan điểm của người sử dụng, độ mật được liên quan tới tính bảo mật của
Tạ Thị Thanh Thùy

15

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

khóa . Chú ý rằng người có trách nhiệm có thể chọn các S-box sao cho họ có
thể phá được hệ mật (ví dụ, bằng cách chọn các hoán vị tuyến tính hay
affine).
Chúng ta hãy xem xét cấu trúc của thuật toán GOST, bạn có thể hỏi
xem phải chăng việc sử dụng các hoán vị thay cho một lớp lớn hơn nhiều tất
cả các hàm số có thể làm giảm độ an toàn? Even và Goldreich đã chứng minh
rằng một phép mã kiểu DES bất kỳ với một phép lặp

sinh ra một nhóm luân phiên (alternating group) với f: là hàm Boolean, đầu
vào là , còn đầu ra là . Sau đó Pieprzyk và Zhang đã chỉ ra rằng nếu f là hoán
vị thì hàm mã kiểu DES vẫn sinh ra nhóm luân phiên. Như vậy, việc sử dụng
các hoán vị thay cho các hàm không làm suy giảm độ mật của thuật toán khi
xem xét với một số vòng lớn.
Việc kết nối của CM1, các S-box và phép dịch vòng có thể xem như
hàm vòng F. Hàm F ánh xạ chuỗi đầu vào 32-bit vào chuỗi đầu ra có cùng độ
dài, đối tượng bị kiểm soát bởi khóa 32-bit. Phần trung tâm của hàm F là 8 Sbox kích thước 4*4. Trước hết, hàm F thực hiện việc chia chuỗi đầu vào 32

bit thành 8 khối, mỗi khối 4 bit, và sau đó thay mỗi khối bằng 4 bit được định
ra bởi S-box tương ứng.
Bạn có thể thấy các bit ra của hàm F bị ảnh hưởng bởi các tổ hợp khác
nhau của đầu vào phụ thuộc vào vị trí của nó. Điều này được giải thích bởi
tính chất của việc kết nối phép cộng modulo 2 32 và các S-box. Phép cộng
modulo 232 tạo đầu ra là phi tuyến tất cả (trừ một trường hợp - bit ra có nghĩa
nhỏ nhất).
1.4.4. Các phép dịch vòng R trong GOST
Ảnh hưởng chính của hàm vòng là cung cấp tính khuyếch tán. Để
nghiên cứu điều này, chúng ta giả thiết rằng KSU = 0 và bất chấp điều này.
Trước hết chúng ta chỉ tập trung vào hiệu ứng trộn của phép dịch vòng trong
một nhánh của thuật toán. Chúng ta xem xét hai trường hợp của thuật toán
trong chế độ thay thế đơn giản:
- Các S-box là ánh xạ đồng nhất.

Tạ Thị Thanh Thùy

16

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

- Các S-box là các hàm căng hoàn toàn (complete spread function), có
nghĩa là mỗi bit vào ảnh hưởng đến mọi đầu ra của S-box, hay tương đương là
mỗi bit ra phụ thuộc vào mọi bit vào.
Ký hiệu là đầu vào của nửa bên phải của thuật toán tại vòng thứ i và là

từng bít đầu vào tại vòng này.
Trường hợp 1: Các S-box là ánh xạ đồng nhất
Xem xét các bit ảnh hưởng bởi , bit đầu vào thứ nhất của vòng 1. Ta có:

Ký hiệu ⇒ có nghĩa là sau 3 vòng lặp. Như vậy, sau 32 vòng lặp thì
ảnh hưởng tới tất cả các bit khác của một nửa đúng một lần. Dễ dàng thấy
rằng mọi phép dịch vòng rot(i) khác (dịch đi i vị trí) cũng có tính chất này
nếu như gcd(i,32) = 1, hay có nghĩa là i lẻ.
Trường hợp 2: Các S-box là hàm căng hoàn toàn
Bây giờ chúng ta xem xét ảnh hưởng của bit trong trường hợp đầu vào
của S-box ảnh hưởng tới mọi bit ra. Ảnh hưởng của bit này được lan truyền
tới tất cả 32 bit của R1 chỉ sau 8 vòng. Chúng ta cũng chú ý rằng
trong đó → chỉ 1 vòng lặp còn ⇒ chỉ nhiều vòng lặp.
Mức độ lan truyền của mỗi vòng xác định các mối phụ thuộc hàm, có
nghĩa là nếu tại vòng 1, 16 bit được ảnh hưởng thì một bit bị ảnh hưởng tại
vòng 4 phụ thuộc vào 16 bit đầu vào.
Chúng ta chú ý rằng nếu phép dịch vòng là không phải bội của 4 thì sự
lan truyền xảy ra và 8 vòng là con số cần thiết để ảnh hưởng tới tất cả mọi bit
của . Tuy nhiên, việc lan truyền phụ thuộc vào phép dịch. Ví dụ, nếu phép
dịch là rot(1) thì ảnh hưởng của không đến được với i < 8. Chúng ta có thể
so sánh các phép quay vòng bằng cách đưa ra độ đo ρ(i) - đó là số vòng nhỏ
nhất cần thiết để các bit bị ảnh hưởng chiếm tất cả các vị trí trong . Chúng ta
đã thấy rằng ρ(1) = 8 và ρ(11) = 4.
Vì gcd(i,32) = 1 nên hoặc i ≡ 1 (mod 4) hoặc i ≡ 3 (mod 4). Bây giờ,
thay đổi 1 hoặc 3 bit đầu vào ảnh hưởng tới cả 4 bit đầu ra của S-box. Cho
nên để so sánh ảnh hưởng của các phép quay chúng ta chỉ cần xem xét các
phép quay rot(i) với hoặc i = 1, 5, ..., 29 hoặc i = 3, 7,..., 31. ρ(i) hoàn toàn
được xác định bằng thương của i chia cho 4. Từ chú ý này chúng ta kết luận
Tạ Thị Thanh Thùy


17

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

rằng số vòng nhỏ nhất sao cho các bit bị ảnh hưởng bởi bao phủ tất cả các vị
trí trong ít nhất một lần được chỉ ra như trong hình dưới. Chúng ta chú ý rằng
giá trị nhỏ nhất của ρ(i) bằng 4, điều này xảy ra với các phép quay rot(9),
rot(11), rot(21) và rot(23). Có thể thấy rằng số vòng nhỏ nhất cần thiết cho
khuyếch tán hoàn toàn ít nhất bằng 4 đối với tất cả các phép quay. Với bất kỳ
phép quay nào, khối 4-bit khuyếch tán thành khối 8-bit sau 2 vòng. Sau 3
vòng, khối 8 bit khuyếch tán thành khối 12-bit. Mặc cho các khối này được
sắp xếp như thế nào chúng vẫn không phủ hết 32 bit (nhiều nhất nếu chúng
không có vùng chung, chúng sẽ phủ 4 + 8 + 12 = 24 bit). Cho nên ít nhất cần
4 vòng để có khuyếch tán hoàn toàn.
Bảng 1.1.
Sự lan truyền gây ra bởi phép quay

Cũng chú ý rằng 11 và 23 không là ước của 232 - 1, đó là modulus của
bộ cộng CM4 (bộ cộng CM4 được sử dụng trong chế độ dòng). Điều này có
ảnh hưởng tới quyết định chọn phép quay 11 bit cho thanh ghi dịch vòng.
Trong phân tích trên chúng ta còn chưa tính đến việc đổi 2 nửa. Để
nghiên cứu việc này chúng ta có thể bắt đầu thuật toán với = 0. Giả sử ký
hiệu đầu vào bên tay trái của thuật toán tại vòng thứ i, chúng ta cũng ký hiệu
rot(i) bởi và là ánh xạ sinh bởi S-box. 2 32232 Cùng với các quy ước này, các
phương trình tượng trưng cho 2 vòng của thuật toán là:

R12 = R1 ⊕ ri Sri SR1
R22 = ri S1R1

và sau 3 vòng là

R13 = r1SR1 ⊕ ri S ( R1 ⊕ ri Sri SR1 )
R23 = R1 ⊕ riSri SR1

Nếu giả thiết rằng

ri S ( R1 ⊕ riSri SR1 ) = ri SR1 ⊕ riSri Sri SR1

Tạ Thị Thanh Thùy

18

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

Chúng ta có thể nói một điều gì đó về tính khuyếch tán của R1 bởi hai
5
5
nửa. Sử dụng quan hệ này, chúng ta thấy rằng sau 5 vòng cả R1 và R2 đều

chứa thành phần r1Sri Sri Sri SR1 . Nhưng cái này có thể viết lại nếu sử dụng dữ
kiện là ri S = S ' ri với S ' nào đó (các ri và các S-box tạo thành nhóm). Cho nên:

4
r1Sri Sri Sri SR1 = S ( ) r14 R1

( n)

( S ký hiệu tổ hợp của n S-box, tức là tích của các hoán vị được sinh
ra). Theo hình trên, chúng ta thấy rằng 5 vòng là yêu cầu cho tính khuyếch tán
theo cả hai bên cho thuật toán với các phép quay rot(9), rot(11), rot(21),
rot(23).
1.4.5. Lựa chọn các S-box
Chúng ta chú ý rằng GOST có độ dài khóa hữu ích xấp xỉ 610 bit, trong
đó 256 bit được sử dụng để biểu diễn khóa còn các bit còn lại để biểu diễn các
S-box. Mỗi một trong 8 S-box là một phép hoán vị của các số nguyên [0, 1, 2,
.., 15] và có cả thảy ánh xạ như vậy. Từ đó suy ra rằng cần 354 ≅ 8* 44.2 bit
để chỉ ra 8 S-box ngẫu nhiên từ tập tất cả các hoán vị 4-bit, tựu trung lại là
610 = 256 + 354 bit khóa. Để giảm độ dài khóa, những người thiết kế có thể
làm bằng cách sinh ta một tập các S-box có kích thước tương đối nhỏ, ví dụ
như 10,000 và sử dụng khóa để chỉ ra S-box trong tập được chọn cố định ấy.
44.2 16! ≅ 2 Như đã nói ở trên, tập tất cả các S-box là rất lớn, và không cho
phép vét cạn để tìm ra S-box nhằm tối ưu hóa các tiêu chuẩn. Các thí nghiệm
đã được làm bằng cách chọn ngẫu nhiên các S-box, sau đó các S-box đã chọn
được kiểm tra tính thích hợp bằng tấn công vi sai và tấn công tuyến tính.

Tạ Thị Thanh Thùy

19

S-box Gost 34.12-2015



Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

CHƯƠNG 2. CÁC TÍNH CHẤT MẬT MÃ CỦA HỘP THẾ
2.1. Hàm Boolean và các tính chất mật mã của hàm Boolean
Một trong các thành phần cơ bản của hệ thống mật mã đối xứng là các
phép biến đổi phi tuyến, nó xác định độ an toàn chống lại các phương pháp
thám mã. Nói chung, các phép biến đổi phi tuyến được xây dựng trên cơ sở
các hàm Boolean phi tuyến. Vì vậy, một phần quan trọng của việc xây dựng
các hộp thế S-box là nghiên cứu các hàm logic. Hàm Boolean đã được nghiên
cứu từ rất lâu. Để bảo đảm an toàn, các hàm Boolean, được dùng trong các
hộp thế, phải thõa mãn các tính chất nhất định. Các tham số cơ bản phản ánh
độ an toàn của các hàm Boolean phi tuyến là:
1) Tính chất cân bằng
2) Độ phi tuyến
3) Hiệu ứng thác và thác chặt
4) Bậc đại số
Sau đây là một số định nghĩa và khái niệm cơ bản liên quan:
Định nghĩa 2.1.1: Tập hợp F cùng với 2 phép toán cộng “+” và nhân
“*” được gọi là một trường nếu thõa mãn các tính chất sau:
1) F là một nhóm Aben với phép cộng “+”
2) F là đóng đối với phép nhân và tập F\{0} cùng với phép nhân “*” là
một nhóm Aben
3) phép nhân " ∗ " có tính chất phân phối đối với phép cộng "+", tức là

( a + b) ∗ c = a ∗ c + b ∗ c va a ∗ (b + c) = a ∗ b + a ∗ c .
Trường F có q phần tử, được gọi là trường hữu hạn hay là trường
Galois và được ký hiệu là hoặc .
Tập gồm 2 phần tử 0 và 1 cùng với hai phép toán " g" – phép nhân theo

modulo 2 và phép toán " ⊕ " – phép cộng theo modulo 2 được gọi là trường

GF (2) .
Định nghĩa 2.1.2: Đa thức
với các hệ được gọi là đa thức dưới trường GF(2). Số nguyên lớn nhất
d sao cho , được gọi là bậc của đa thức Tập tất cả các đa thức dưới trường đã
được tạo ra nào đó được ký hiệu là

Tạ Thị Thanh Thùy

20

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

Định nghĩa 2.1.3: Cho là đa thức bất khả quy (hoặc nguyên thủy) bậc
n dưới trường Khi đó tập các đa thức theo modulo của đa thức là trường hữu
hạn với bậc .
Định nghĩa 2.1.4: Ánh xạ được gọi là hàm Boolean từ n biến. Tập tất
cả các hàm Boolean n biến được ký hiệu là Fn .
Bảng chân trị của hàm Boolean là vector nhị phân chứa đầu ra của hàm
với mỗi giá trị có thể có của vector x.
Định nghĩa 2.1.5: Chuỗi các giá trị vô hướng của hàm Boolean từ tập
giá trị {0, 1} có dạng , trong đó , được sắp xếp theo thứ tự (ví dụ tăng dần),
được gọi là bảng chân trị của hàm Boolean .
Ví dụ 2: Ví dụ đối với hàm Boolean với 3 biến: 10101100.

Bảng 2.1.

Ví dụ bảng chân trị của hàm Boolean 3 biến

0
1
0
1
0
1
0
1

0
0
1
1
0
0
1
1

0
0
1
1
0
1
0
1


0
0
0
0
1
1
1
1

Đối với mỗi hàm Boolean f có thể được mô tả một cách duy nhất dưới
dạng một đa thức với các hệ số từ trường GF (2) , bậc của đa thức này theo
mỗi biến là không vượt quá 1. Đa thức này được gọi là đa thức Zhegankil
hay dạng chuẩn đại số (Agebraic Normal Form – ANF).
(2.1)
trong đó tất cả hệ số đều thuộc trường.
Định nghĩa 2.1.6: Hàm Boolean được gọi là hàm affine nếu nó có dạng
(2.2)
Tạ Thị Thanh Thùy

21

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

trong đó .

Trong trường hợp hàm tuyến tính thì . Tập tất cả các hàm affine n biết
được ký hiệu là .
Có một cách để nhận được dạng ANF từ bảng chân trị đã biết của hàm
Boolean. Nó được thực hiện bởi thuật toán sau đây:
Thuật toán tính đa thức Zhegalkin từ hàm Boolean được mô tả dưới
dạng bảng chân trị:
Đầu vào: Véc tơ giá trị của hàm boolean f.
Thuật toán: Véc tơ chứa các hệ số của đa thức Zhegalkin tương ứng.
n
Bước 1: Sắp xếp bảng chân trị từ 2 giá trị của hàm Boolean theo thứ

tự tăng dần của các giá trị của biến đầu vào. Chúng ta ký hiệu chúng là
mô tả dưới dạng cột:
 f (b0 ) 
 f (b ) 
2 
Pf = 
,
 … 


 f (bm ) 

Pf



(2.3)

trong đó ;

Bước 2: Tính véc tơ cột
Zhegalkin cần tìm

vf

n
với 2 các hệ số chưa biết của đa thức

 v0 
v 
v =  1 ,
…
 
vm 

(2.4)

trong đó
Bước 3: Xây dựng ma trận Ln theo cách đệ quy như sau:

0
L
1 0
L0 = [ 1] ; Ln = 
⊗ Ln−1 =  n−1
,

L
L
1

1


 n−1 n−1 
Bước 4: Tính các hệ số của đa thức:
v = Ln Pf .

(2.5)

(2.6)

Ví dụ 3: Cho các hàm Boolean với các hệ số của bảng chân trị như sau:
f1 = [0,0,1,0,0,1,1,1,0,0,0,1,1,1,0,1] .
Tạ Thị Thanh Thùy

22

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

f 2 = [0,1,1,0,1,1,1,0,1,0,0,1,0,0,1,0] .

Các hệ số và đa thức Zhegalkin tương ứng nhận được bởi thuật toán
trên là:
v1 = [0,0,1,1,0,1,0,0,0,0,1,0,1,1,1,0],


p1 = x1 ⊕ x0 x1 ⊕ x0 x2 ⊕ x1 x3 ⊕ x2 x3 ⊕ x0 x2 x3 ⊕ x1x2 x3 ,
v2 =[0,1,1,0,1,1,1,1,1,0,0,0,0,0,1,0],
p2 = x0 ⊕ x1 ⊕ x2 ⊕ x0 x2 ⊕ x1 x2 ⊕ x0 x1 x2 ⊕ x3 ⊕ x1 x2 x3 ,

Định nghĩa 2.1.7: Trọng số Hamming của véc tơ là số hệ số khác
không, và được ký hiệu là wtH (v) .
Định nghĩa 2.1.8: Trọng số Hamming của hàm Boolean là số giá trị 1
trong bảng chân trị của hàm f.
Định nghĩa 2.1.9: Khoảng cách Hamming giữa 2 hàm Boolean và g
là được xác định bởi biểu thức sau:
.

(2.7)

Ví dụ 4: Cho hàm Boolean f có bảng chân trị là: {01011001}. Hàm g:
{10001001}. Khi đó, khoảng cách Hamming giữa f và g là:
Định nghĩa 2.1.10: Hai hàm và được gọi là tương đương affine với
nhau nếu tồn tại ma trận khả nghịch A sao cho:

 f ( x ),
(2.8)
g ( Ax ⊕ a) = 
 f ( x ) ⊕ 1.
Để mô tả các thuộc tính của hệ thống mật mã, cũng như xác định độ an
toàn của nó chống lại các phương pháp thám mã đã biết, các tính chất sau đây
của hàm Boolean là rất quan trọng:
Tính cân bằng: Hàm Boolean f được gọi là cân bằng nếu , tức là số giá
trị 1 và 0 trong bảng chân trị của nó là bằng nhau.
Ví dụ 5: Hàm f 3 biến: {11000101}. Trọng số Hamming , là hàm cân
bằng. Có 4 giá trị bằng 1 và 4 giá trị bằng 0.

Hàm g 3 biến: {11110101}. Trọng số . Đây là hàm không cân bằng. Có
6 giá trị bằng 1và 2 giá trị bằng 0.
Tạ Thị Thanh Thùy

23

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

Độ phi tuyến: Khoảng cách Hamming nhỏ nhất của hàm f với tập tất
cả các hàm affine được gọi là độ phi tuyến của hàm và được ký hiệu là .
Ví dụ 6: Xác định độ phi tuyến của hàm f 2 biến
Cho hàm f với bảng chân trị là: {1011}. Ta sẽ viết tập các hàm affine
dưới dạng ANF:
ϕ1 = 0, ϕ2 = 1, ϕ3 = x1, ϕ4 = x2 , ϕ5 = x1 + x2 ,
ϕ6 = x1 ⊕ 1, ϕ7 = x2 ⊕ 1, ϕ8 = x1 ⊕ x2 ⊕ 1.

Mô tả các hàm affine này đưới dạng bảng chân trị
Bảng 2.2.

Hàm f và tập các hàm affine

x2

x1


ϕ1

ϕ2

ϕ3

ϕ4

ϕ5

ϕ6

ϕ7

ϕ8

0
0
1
1

0
1
0
1

0
0
0
0


1
1
1
1

0
1
0
1

0
0
1
1

0
1
1
0

1
0
1
0

1
1
0
0


1
0
0
1

f
1
1
0
1

Tính khoảng cách Hamming giữa f với các hàm affine:
dist ( f , ϕ1 ) = 3, dist ( f , ϕ2 ) = 1, dist ( f , ϕ3 ) = 1, dist ( f , ϕ4 ) = 3,

dist ( f , ϕ5 ) = 3, dist ( f , ϕ6 ) = 3, dist ( f , ϕ7 ) = 1, dist ( f , ϕ8 ) = 1.

Như vậy độ phi tuyến của hàm f là:
N f = min{dist ( f , An )} = 1.
Định nghĩa 2.1.11: Hàm nhận giá trị số nguyến trên được gọi là phép
biến đổi Hadamard và được xác định như sau:

W f (u ) =



x∈GF (2n )

( −1) f ( x ) ⊕< x,u >


(2.9)

Đối với mỗi giá trị được gọi là hệ số Hadamard.
Có một cách khác (thuận tiện hơn cho việc lập trình) để định độ phi
tuyến của hàm Boolean là tính toán thông quan hệ số Hadamard.
Độ phi tuyến của hàm Boolean f có thể được tính thông qua biến đổi
Hadamard theo công thức sau đây:
(2.10)
1
maxn | W f (u ) |
2 u∈GF ( 2 )
Bậc đại số: Bậc đại số của hàm Boolean là bậc của số hạng dài nhất
N f = 2n−1 −

trong hàm đó khi nó được biểu diễn dưới dạng ANF.
Tạ Thị Thanh Thùy

24

S-box Gost 34.12-2015


Đồ Án Tốt Nghiệp

Khoa An Toàn Thông Tin

Ví dụ 7: Hàm f(x) 3 biến: f = 1 ⊕ x1 ⊕ x3 ⊕ x1x3 ⊕ x1x2 x3 . Số hạng có độ
dài lớn nhất là: x1 x2 x3 , tức là bậc của nó bằng 3. Vậy bậc đại số của f là deg(f)
= 3.
Một tiêu chuẩn nữa cũng rất quan trọng là tiêu chuẩn phân phối (РС –

Propagation Criterion) và hiệu ứng lan truyền thác chặt (SAC – Strict
Avalanche Criterion). Nội dung chính của các tiêu chuẩn này là đánh giá xác
suất thay đổi giá trị hàm Boolean phụ thuộc vào một phần xác định các đối số
đầu vào.
Định nghĩa 2.1.12: Hàm Boolean f trên trường thõa mãn:
– Tiêu chuẩn PC với véc tơ , nếu hàm là cân bằng, với , ,
– Tiêu chuẩn PC bậc , nếu thõa mã tiêu chuẩn PC với mọi véc tơ mà ,
– Tiêu chuẩn hiệu ứng lan truyền thác chặt, SAC, nếu f thõa mã tiêu
chuẩn PC bậc 1.
Nếu hàm f thõa mãn , điều này có nghĩa là, thay đổi bit đầu vào dẫn đến

1
thay đổi mỗi bít đầu ra với xác suất bằng 2 .
Ví dụ 8: Cho f :{1011} . Ta sẽ xem xét f có thõa mãn РС (1) hay không
Đối với các véc tơ:
α = 1:



2

f ( x) ⊕ f ( x ⊕ 1)

x∈GF (2 )

= { f (0) ⊕ f (0 ⊕ 1)} + { f (1) ⊕ f (1 ⊕ 1)} + { f (2) ⊕ f (2 ⊕ 1)} + { f (3) ⊕ f (3 ⊕ 1)}
= {1 ⊕ 1} + {1 ⊕ 1} + {0 ⊕ 1} + {1 ⊕ 0} = 2.
α = 2:




x∈GF (22 )

f ( x ) ⊕ f ( x ⊕ 2)

= { f (0) ⊕ f (0 ⊕ 2)} + { f (1) ⊕ f (1 ⊕ 2)} + { f (2) ⊕ f (2 ⊕ 2)} + { f (3) ⊕ f (3 ⊕ 2)}
= {1 ⊕ 0} + {1 ⊕ 1} + {0 ⊕ 1} + {1 ⊕ 1} = 2.
Như vậy f thõa mã РС(1) và, hệ quả là thõa mãn tiêu chuẩn SAC.
Kiểm tra với РС(2). Với các α : wt H (α) = 2 :
α = 3:



f ( x ) ⊕ f ( x ⊕ 3)
2

x∈GF (2 )

= { f (0) ⊕ f (0 ⊕ 3)} + { f (1) ⊕ f (1 ⊕ 3)} + { f (2) ⊕ f (2 ⊕ 3)} + { f (3) ⊕ f (3 ⊕ 3)}
= {1 ⊕ 1} + {1 ⊕ 0} + {0 ⊕ 1} + {1 ⊕ 1} = 2.
Tạ Thị Thanh Thùy

25

S-box Gost 34.12-2015


×