TIÊU CHUẨN QUỐC
GIA
TCVN
12854-3:2020
ISO/IEC 29192-3:2012
CÔNG
NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - MẬT MÃ HẠNG NHẸ - PHẦN 3: MÃ DÒNG
Information
technology - Security techniques - Lightweight cryptography - Part 3:
stream ciphers
Lời nói đầu
TCVN 12854-3 : 2020 hoàn toàn
tương đương với ISO/IEC 29192- 3:2012.
TCVN 12854-3 : 2020 do Cục Quản
lý mật mã dân sự và Kiểm định sản phẩm mật mã biên soạn, Ban Cơ yếu Chính phủ đề
nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công
nghệ công bố.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- TCVN 12854-1 : 2020 (ISO/IEC
29192-1:2012) Phần 1: Tổng quan
- TCVN 12854-2 : 2020 (ISO/IEC
29192-2:2012) Phần 2: Mã khối
- TCVN 12854-3 : 2020 (ISO/IEC
29192-3:2012) Phần 3: Mã dòng
- TCVN 12854-4 : 2020 (ISO/IEC
29192-4:2013) Phần 4: Cơ chế sử dụng kỹ thuật phi đối xứng.
CÔNG NGHỆ
THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - MẬT MÃ HẠNG NHẸ - PHẦN 3: MÃ DÒNG
Information
technology - Security techniques - Lightweight cryptography - Part 3: Stream
ciphers
1 Phạm vi áp dụng
Tiêu chuẩn này quy định hai bộ tạo
dòng khóa cho mã dòng hạng nhẹ:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Trivium: Một bộ tạo dòng khóa
hạng nhẹ với kích thước khóa 80 bit.
2 Tài liệu viện dẫn
Các tài liệu viện dẫn sau rất cần thiết
cho việc áp dụng tiêu chuẩn này. Đối với những tài liệu viện dẫn có năm công bố,
thì áp dụng phiên bản được nêu. Đối với tài liệu viện dẫn không ghi năm công bố,
thì áp dụng phiên bản mới nhất (bao gồm cả các sửa đổi, bổ sung).
TCVN 12854-1 (ISO/IEC 29192-1), Công
nghệ thông tin - Các kỹ thuật an toàn - Mật mã hạng nhẹ - Phần 1: Tổng quan.
3 Thuật ngữ và định
nghĩa
Tiêu chuẩn này áp dụng các thuật ngữ
và định nghĩa sau đây:
3.1
big-endian (big-endian)
Phương pháp lưu trữ các số nhiều byte
với byte có trọng số cao nhất tại các địa chỉ bộ nhớ thấp nhất. [TCVN 11367-4
(ISO/IEC 18033-4)]
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Bản mã (ciphertext)
Dữ liệu đã được biến đổi để che giấu nội
dung thông tin trong đó.
[TCVN 11357-1 (ISC/IEC 18033-1)]
3.3
Giải mã (decryption)
Phép ngược của phép mã hóa tương ứng
[TCVN 11367-1 (ISO/IEC 18033-1)]
3.4
Mã hóa (encryption)
Phép biến đổi (khả nghịch) dữ liệu bởi
một thuật toán mật mã để tạo ra bản mã, tức là giấu nội dung thông tin của dữ
liệu
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3.5
Giá trị khởi tạo
(initialization value)
Giá trị được sử dụng để xác định điểm
khởi đầu của quá trình mã hóa [TCVN 11367-4 (ISO/IEC 18033-4)]
3.6
Khóa (key)
Dãy các kí tự điều khiển sự vận hành của
các thuật toán mật mã (ví dụ mã hóa, giải mã)
[TCVN 11367-1 (ISO/IEC 18033-1)]
3.7
Hàm dòng khóa (keystream
function)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
[TCVN 11367-4 (ISO/IEC 18033-4)]
3.8
Bộ tạo dòng khóa (keystream
generator)
Quá trình dựa trên trạng thái (nghĩa
là máy trạng thái hữu hạn) nhận đầu vào là một khóa, một véc tơ khởi tạo, và bản
mã nếu cần thiết, và đưa ra đầu ra là một dòng khóa (nghĩa là một dãy các bit
hoặc các khối bit) có độ dài tùy ý.
[TCVN 11367-4 (ISO/IEC 18033-4)]
3.9
Hàm trạng thái tiếp theo (next-state
function)
Hàm nhận đầu vào là trạng thái hiện tại
của bộ tạo dòng khóa và một phần của bản mã đã tạo ra trước đó (tùy chọn) và tạo
ra đầu ra là một trạng thái mới cho bộ tạo dòng khóa
[TCVN 11367-4 (ISO/IEC 18033-4)]
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Bản rõ (plaintext)
Thông tin chưa được mã hóa [TCVN
11367-1 (ISO/IEC 18033-1)]
3.11
Khóa bí mật (secret key)
Khóa được sử dụng với kỹ thuật mật mã
đối xứng bởi một tập các thực thể cụ thể.
[TCVN 11367-1 (ISO/IEC 18033-1)]
3.12
Trạng thái (state)
Trạng thái bên trong của bộ tạo dòng
khóa
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
0x
Tiền tố cho các giá trị thập lục
phân.
0(n)
Biến n-bit mà 0 được gán cho
mọi bít.
AND
Phép toán logic AND từng bit.
ai
Biến tạo thành một phần trạng thái
trong của bộ tạo dòng khóa.
bi
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Ci
Khối bản mã
F[x]
Vành đa thức trên trường hữu hạn F
GF(2n)
Trường hữu hạn của 2n phần
tử
Init
Hàm tạo ra trạng thái khởi tạo bên
trong của bộ tạo dòng khóa
IV
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
K
Khóa
Next
Hàm trạng thái tiếp theo của bộ tạo
dòng khóa
n
Độ dài khối
OR
Phép toán logic OR theo từng bit
Out
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
P
Bản rõ
Pi
Khối bản rõ
Strm
Hàm dòng khóa của bộ tạo dòng khóa
Si
Trạng thái bên trong của bộ tạo dòng
khóa
Z
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Zi
Khối dòng khóa
[x]
Số nguyên nhỏ nhất lớn hơn hoặc bằng
số thực x
¬x
Phép toán bù theo từng bit
•
Phép nhân đa thức
‖
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
+m
Phép cộng số nguyên modulo 2m.

Phép toán XOR (loại trừ OR) theo từng
bit.

Phép dịch trái t-bit trong
thanh ghi n-bit.

Phép dịch phải t-bit trong
thanh ghi n-bit.

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Phép dịch vòng sang phải t-
bit trong thanh ghi n-bit.

Phép nhân cho các phần tử trong trường
hữu hạn GF(2n).
CHÚ THÍCH Ví dụ cho phép nhân của các
phần tử trong trường hữu hạn GF(2n) được đưa ra trong Phụ lục
A.
5 Mô hình tổng quát
cho mã dòng
5.1 Tổng quan
Điều này mô tả mô hình tổng quát cho
các mã dòng [TCVN 11367-4 (ISO/IEC 18033-4)]
5.2 Bộ tạo dòng khóa đồng bộ
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1. Hàm khởi tạo, Init lấy đầu
vào là một khóa K và một véc tơ khởi tạo IV, và đưa ra một trạng
thái khởi tạo S0 cho bộ tạo dòng khóa. Véc tơ khởi tạo phải
được chọn sao cho không có hai thông điệp nào được mã hóa sử dụng cùng khóa và
cùng véc tơ khởi tạo IV.
2. Hàm trạng thái tiếp theo Next,
lấy đầu vào là trạng thái hiện tại Si của bộ tạo dòng khóa,
và đưa ra trạng thái tiếp theo Si+1 của bộ tạo
dòng khóa.
3. Hàm dòng khóa Strm, lấy đầu
vào là một trạng thái Si của bộ tạo dòng khóa, và đưa ra một
khối dòng khóa Zi
Khi bộ tạo dòng khóa đồng bộ được khởi
tạo lần đầu tiên, ta sẽ nhập vào một trạng thái khởi tạo S0 được
xác định bởi:
S0
= Init (IV, K)
Tùy theo yêu cầu, bộ tạo dòng khóa đồng
bộ sẽ thực hiện với i = 0,1,....
1. Đưa ra một khối dòng khóa Zi
= Strm (Si, K)
2. Cập nhật trạng thái của máy Si+1
= Next (Si, K).
Vì thế để định nghĩa một bộ tạo dòng
khóa đồng bộ, ta chỉ cần xác định các hàm Init, Next và Strm,
bao gồm cả độ dài và bảng chữ cái của khóa, véc tơ khởi tạo, trạng thái, và khối
đầu ra.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5.3.1 Mô hình tổng quát cho hàm đầu
ra
Điều này quy định một hàm đầu ra của
mã dòng, tức là một kỹ thuật được sử dụng trong một mã dòng để kết hợp một dòng
khóa với bản rõ để tạo ra bản mã.
Một hàm đầu ra cho mã dòng đồng độ hoặc
tự đồng bộ là một hàm khả nghịch Out, kết hợp một khối bản rõ Pi,
một khối dòng khóa Zi để đưa ra một khối bản mã Ci
(i ≥ 0). Mô hình tổng quát cho một hàm đầu ra của một mã dòng được định
nghĩa như sau.
Mã hóa một khối bản rõ Pi
bởi một khối dòng khóa Zi.
Ci = Out (Pi,Zi),
và giải mã một khối bản mã Ci
bởi một khối dòng khóa Zi được cho bởi:
Pi = Out-1(Ci,Zi)
Hàm đầu ra phải thỏa mãn là với mọi khối
dòng khóa Zi, và khối bản rõ Pi nào, chúng
ta có:
Pi = Out-1(Out (Pi,Zi),Zi)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Một mã dòng nhị phân cộng tính là một
mã dòng trong đó các khối dòng khóa, bản rõ, và bản mã là các số nhị phân, và phép
toán để kết hợp bản rõ với dòng khóa là phép toán cộng XOR theo từng bit. Cho n
Telia độ dài bit của Pi. Hàm này được xác định bởi:

Phép toán Out-1 được xác định
bởi:

6 Bộ tạo dòng khóa
chuyên dụng
6.1 Bộ tạo
dòng khóa Enocoro-128v2
6.1.1 Giới thiệu Enocoro-128v2
Enocoro-128v2 là một bộ tạo dòng khóa
sử dụng một khóa bí mật K128 bit, một véc tơ khởi tạo IV 64 bit, và một biến trạng
thái Si (i > 0) bao gồm 34 byte, và đưa ra một khối
dòng khóa Zi độ dài một byte tại mỗi vòng lặp của hàm Strm.
CHÚ THÍCH Bộ tạo dòng khóa được đề xuất
ban đầu trong [5],
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

với aj(i)
là một byte (j = 0, 1) và một biến 32 byte:

với bj(i)là một byte (j= 0, 1,…, 31).
Hàm Init định nghĩa chi tiết
trong 6.1.2, lấy đầu vào là khóa K 128 bit và véc tơ khởi tạo IV
64 bít, và tạo ra giá trị khởi tạo của biến trạng thái S0 = (a(0),
b(0)).
Hàm Next, định nghĩa chi tiết
trong 6.1.3, lấy đầu vào là biến trạng thái 34 byte Si = (a(i),b(i))
và tạo ra giá trị tiếp theo của biến trạng thái Si+1 = (a(i+1),b(i+1)).
Hàm Strm, định nghĩa chi tiết
trong 6.1.4, nhận đầu vào là biến trạng thái 34 byte Si = (a(i),b(i))và
tạo ra khối dòng khóa Zi.
Enocoro-128v2 sử dụng các phép
toán trên trường hữu hạn GF(28). Trong biểu diễn dạng đa thức,
GF(28) được thực hiện như GF(2)[x]/ψ8432(x),
với ψ8432 (x) là đa thức bất khả quy bậc 8 được xác định trên trường
GF(2). Bộ tạo dòng khóa Enocoro-128v2 sử dụng đa thức bất khả quy dưới
đây:
ψ8432 (x) =x8
+ x4 + x3 + x2 + 1
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Việc khởi tạo của Enocoro-128v2
được chia thành 6 bước. Trong quá trình khởi tạo Enocoro-128v2, trạng
thái được cập nhật như phác họa trong hình 1.
Hàm khởi tạo Init như sau:
Đầu vào: Khóa 128 bit K, véc tơ
khởi tạo 64 bit IV.
Đầu ra: giá trị khởi tạo của biến trạng
thái S0 = (a(0),b(0)).
a) Sử dụng khóa K để thiết lập phần của
biến trạng thái bj(-96) như sau:
- Đặt (K0 ‖ K1‖…‖
K15) = K, với Kj là 8 bit với j = 0,
1, 2,…, 15.
- Với j = 0, 1, 2, …, 15, đặt bj(-96)
= Kj
b) Sử dụng véc tơ khởi tạo IV để thiết
lập phần của biến trạng thái bj(-96) như sau:
- Đặt (I0 ‖ I1 ‖ … ‖ I7) = IV,
với Ij là 8 bit với j = 0, 1, 2,…, 7.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
c) Sử dụng các hằng số C0,
C1,... C9 để thiết lập phần của biến trạng thái aj(-96)
và bj(-96) như sau:
- Đặt
= C0
= 0x66,
- Đặt
= C1
= 0xe9,
- Đặt
= C2
= 0x4b,
- Đặt
= C3
= 0xd4,
- Đặt
= C4
= 0xef,
- Đặt
= C5
= 0x8a,
- Đặt
= C6
= 0x2c,
- Đặt
= C7
= 0x3b,
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt
= C9
= 0x4c,
d) Đặt bộ đếm 8 bit ctr = 1.
e) Thực hiện các bước dưới đây với i
= -96, -95, ..., -1:


- Đặt Si+1 = Next (Si)
f) Đưa ra S0.

Hình 1 - Cập
nhật trạng thái quá trình khởi tạo của Enocoro-128v2
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hàm trạng thái của Enocoro-128v2 được
định nghĩa sử dụng các hàm p và λ được xác định trong 6.1.5 và
6.1.6 tương ứng. Hàm trạng thái tiếp theo Next của Enocoro-128v2 như sau:
Đầu vào: Biến trạng thái Si
= (a(i),b(i)).
Đầu ra: Giá trị tiếp theo của biển trạng
thái Si+1 = (a(i+1),b(i+1)).
- Đặt a(i+1) = p(a(i),b(i))
- Đặt b(i+1)
=
λ(b(i), a0(i))
- Đặt Si+1 = (a(i+1),b(i+1))
- Đưa ra Si+1.
6.1.4 Hàm dòng khóa Strm
Hàm dòng khóa Strm như sau:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đầu ra: Khối dòng khóa Zi.
- Đặt Zi = a1(i).
- Đưa ra Zi.
Trạng thái được cập nhật và dòng khóa
được sinh như minh họa hình 2.

Hình 2 - Cập
nhật trạng trong quá trình sinh dòng khóa của Enocoro-128v2
6.1.5 Hàm ρ
Hàm ρ bao gồm các phép XOR, một
biến đổi phi tuyến sử dụng hàm S8, và một biến đổi tuyến tính
sử dụng ma trận L8432. Hàm ρ được cho như sau:
Đầu vào: Biến trạng thái Si
= (a(i),b(i)).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt 
- Đặt 
- Đặt (v0,v1)
= L8432(u0,u1),
- Đặt 
- Đặt 
- Đưa ra a(i+1)
6.1.6 Hàm λ
Hàm λ như sau:
Đầu vào: Biến trạng thái Si
= (a(i),b(i)).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt
=
với j≠0, 3, 8, 17
- Đặt 
- Đặt 
- Đặt 
- Đặt 
- Đưa ra b(i+1)
6.1.7 Hàm L8432
Hàm L8432 là hàm bên
trong của hàm p. Ký hiệu đầu vào và đầu ra của hàm L8432
là U và V tương ứng. Hàm L8432 như
sau:
Đầu vào: Xâu 16 bit U.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt (u0,u1)
= U, với ui là xâu 8 bít và là phần tử của trường GF(28)
- Đặt

- Đặt V = v0 ‖ vi.
- Đưa ra V.
6.1.8 Hàm S8
Hàm S8 sử dụng phép
toán trên trường hữu hạn GF(24). Trong biểu diễn đa thức, GF(24)
được thực hiện như GF(2)[x]/ø41(x), với ø>41(x) là đa thức
bất khả quy bậc 4 được xác định trên trường GF(2). Bộ tạo H dòng khóa
Enocoro-128v2 sử dụng đa thức bất khả quy sau:
ø41(x) = x4
+ x + 1
Hàm S8 là một hoán vị
mà ánh xạ từ các đầu vào 8 bit tới các đầu ra 8 bit. Nó có cấu trúc SPS (thay thế,
hoán vị, thay thế) và nó bao gồm 4 S-hộp nhỏ s4, ánh xạ từ
các đầu vào 4 bit tới các đầu ra 4 bit và một biến đổi tuyến tính l xác định bởi
một ma trận 2x2 trên trường GF(24). Biến đổi tuyến tính l được xác định:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Ký hiệu đầu vào và đầu ra của hàm S8 bởi X
và Y tương ứng. Hàm S8 như sau:
Đầu vào: Xâu X 8 bit.
Đầu ra: Xâu Z 8 bit.
- Đặt (x0,xi)
= với xi là một xâu 4 bít và là phần tử của trường GF(24)
- Đặt

với 0x4, 0x5 là biểu diễn các phần tử
của trường GF(24) ở hệ thập lục phân, và S4 được
xác định như sau:
S4[16] =
{1,3,9,10,5,14,7,2,13,0,12,15,4,8,6,11}.
- Đặt 
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Hình 3 - Shộp
S8
Hàm S8 được xác định
bằng cách sử dụng một bảng thay thế sau:

6.2 Bộ tạo
dòng khóa Enocoro-80
6.2.1 Giới thiệu Enocoro-80
Enocoro-80 là một bộ tạo dòng khóa sử
dụng một khóa bí mật K 80 bit, một véc tơ khởi tạo IV 64 bit, và
một biến trạng thái Si (i ≥ 0) bao gồm 22 byte, và đưa ra một
khối dòng khóa Zi tại mỗi vòng lặp của hàm Strm.
CHÚ THÍCH Bộ tạo dòng khóa được đề xuất
ban đầu trong [6],
Biến trạng thái Si
được chia nhỏ thành một biến 2 byte:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
với aj(i)
là một byte (j = 0, 1) và một biến 20 byte:

với bj(i) là một byte
(j= 0, 1,..., 19).
Hàm Init định nghĩa chi tiết
trong 6.2.2, nhận đầu vào là khóa K 80 bit và véc tơ khởi tạo IV 64 bit, và tạo
ra giá trị khởi tạo của biến trạng thái S0 = (a(0), b(0)).
Hàm Next, định nghĩa chi tiết
trong 6.2.3, nhận đầu vào biến trạng thái 22 byte Si = (a(i),
b(i)) và tạo ra giá trị tiếp theo của biến trạng thái Si+1
= (a(i+1), b(i+1)).
Hàm Strm, định nghĩa chi tiết
trong 6.3.5, nhận đầu vào biến trạng thái 22 byte Si = (a(i),
b(i)) và tạo ra khối dòng khóa Zi.
Hàm L8431 sử dụng
các phép toán trên trường hữu hạn GF(28). Trong biểu diễn đa
thức, GF(28) được thực hiện như GF(2)[x]/ψ8431(x),
với ψ8431(x) là đa thức bất khả quy bậc 8 được xác định trên trường
GF(2). Bộ tạo dòng khóa Enocoro-80 sử dụng đa thức bất khả quy dưới đây:
ψ8431(x) =x8
+ x4 + x3 + x + 1
6.2.2 Hàm khởi tạo
Init
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đầu vào: Khóa K 80 bit, véc tơ
khởi tạo IV 64 bit.
Đầu ra: giá trị khởi tạo của biến khởi
tạo S0 = (a(0), b(0)).
a) Sử dụng khóa K để thiết lập phần của
biến trạng thái bj(-40) như sau:
- Đặt (K0 ‖ K1
‖ … ‖ K9) = K, với Kj là 8 bit với j
= 0, 1, 2,…, 9.
- Với j = 0,1,2, ..., 9, đặt bj(-40)=
Kj
b) Sử dụng véc tơ khởi tạo IV để
thiết lập phần của biến trạng thái bj(-40) như
sau:
- Đặt (I0 ‖ I1 ‖ … ‖ I7) = IV, với Ij là 8 bit với
j = 0, 1, 2,…, 7.
- Với j = 0,1,2, ..., 7, đặt
= Ij
c) Sử dụng các hằng số C0,C1,C2,C3
để thiết lập một phần của biến trạng thái aj(-40)
và bj(-40) như sau:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt b19(-40)
= C1 = 0xe9,
- Đặt a0(-40) = C2
= 0x4b,
- Đặt a0(-40) = C3
= 0x4d,
d) Thực hiện các bước dưới đây với i =
-40, -39,..., -1:
- Đặt Si+1 = Next
(Si)
f) Đưa ra S0.
6.2.3 Hàm trạng
thái tiếp theo Next
Hàm trạng thái tiếp theo của
Enocoro-80 được xác định sử dụng các hàm ρ và λ được định nghĩa
trong 6.2.5 và 6.2.6 tương ứng. Hàm trạng thái tiếp theo Next của
Enocoro-80 như sau:
Đầu vào: Biến trạng thái Si
= (a(i), b(i)).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt a(i+1) = ρ(a(i),
b(i))
- Đặt b(i+1) = λ(b(i), a0(i))
- Đặt Si+1 = (a(i+1),
b(i+1)).
- Đưa ra Si+1.
6.2.4 Hàm dòng khóa Strm
Hàm dòng khóa Strm như sau:
Đầu vào: Biến trạng thái Si.
Đầu ra: Khối dòng khóa Zi.
- Đặt Zi = a1(i).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6.2.5 Hàm ρ
Hàm ρ bao gồm các phép XOR, một
biến đổi phi tuyến sử dụng hàm S8, và một biến đổi tuyến tính
sử dụng ma trận L8431. Hàm S8 được
mô tả trong 6.1.8. Hàm ρ được cho như sau:
Đầu vào: Biến trạng thái Si
= (a(i), b(i)).
Đầu ra: giá trị tiếp theo của biến trạng
thái a(i+1)
- Đặt 
- Đặt 
- Đặt (v0,v1)
= L8431(u0,u1),
- Đặt 
- Đặt 
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6.2.6 Hàm λ
Hàm λ như sau:
Đầu vào: Biến trạng thái Si
= (a(i), b(i)).
Đầu ra: Giá trị tiếp theo của biến trạng
thái b(i+1)
- Đặt bj(i+1) = bj-1(i) với j≠0, 2, 5, 7
- Đặt 
- Đặt 
- Đặt 
- Đặt 
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6.2.7 Hàm L8431
Hàm L8431 là hàm bên
trong của hàm ρ. Ký hiệu đầu vào và đầu ra của hàm L8431
là U và V tương ứng. Hàm L8431 như sau:
Đầu vào: Xâu 16 bit U.
Đầu ra: Xâu 16 bit V.
- Đặt (u0,u1)= U,
với ui là một xâu 8 bit và là phần tử của trường GF(28)
- Đặt

- Đặt V = v0 ‖ v1.
- Đưa ra V.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6.3.1 Tổng quan
TRIVIUM là bộ tạo dòng khóa lấy đầu
vào là khóa bí mật 80 bit K = (K0, ...,K79), véc
tơ khởi tạo 80 bit IV IV = (IV0, ...,IV79), và tạo ra đến
264 bit dòng khóa z0,z1,…,zN-1
CHÚ THÍCH Bộ tạo dòng khóa
này được giới thiệu ban đầu trong [7]
Các bit dòng khóa zi được tính
toán bằng cách kết hợp các phần tử của ba dãy bit bên trong {ai}, {bi} và {ci}, mà bản
thân chúng được tạo
ra bằng cách lặp ba quan hệ truy hồi phi tuyến. Chi tiết các quan hệ được mô tả
trong 6.3.4.
288 bit dãy đầu tiên trong phép truy hồi
được khởi tạo sử dụng khóa bí mật, véc tơ khởi tạo, và một số bít hằng số. 1152
bộ ba tiếp theo (ai, bi, ci),
bắt đầu từ chỉ số i = -1152, được tính toán truy hồi, nhưng không tạo ra
bất kỳ đầu ra nào. Việc lặp 1152 lần này được xem như là các vòng trống.
Mỗi lần lặp sau đó, bắt đầu từ i = 0,
đưa ra một bit dòng khóa zi, được tính toán bởi phép cộng XOR
của một tập con 6 bit dãy. Quá trình này được lặp lại cho đến khi tạo ra đủ tất
cả các bít dòng khóa được yêu cầu.
Trong các phần tiếp theo, thuật toán tạo
dòng khóa đầy đủ được mô tả chính thức hơn sử dụng khung đã giới thiệu trong Điều
5. Trạng thái bên trong Si được xác định trong 6.3.2, và các
hàm Init, Next, và Strm được mô tả trong 6.3.3, 6.3.4,
6.3.5.
6.3.2 Trạng thái bên trong
Vì mỗi bộ ba mới (ai,
bi, ci) chỉ phụ thuộc vào một số hạn
chế của các bit dãy trước đó, không cần giữ toàn các dãy trong bộ nhớ. Tại điểm
bất kỳ trong thời gian i, nó đủ để thuật toán duy trì trạng thái bên
trong Si bao gồm 288 dãy bit sau:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
CHÚ THÍCH Trong cài đặt
phần cứng đơn giản của TRIVIUM, trạng thái bên trong này có thể được lưu trữ
trong các thanh ghi dịch như minh họa trong Hình 4. Các bít trong các thanh ghi
(được biểu diễn bởi các hộp trong hình) được di chuyển theo chiều kim đồng hồ
sau mỗi lần lặp.

Hình 4 - Một
cài đặt của TRIVIUM sử dụng thanh ghi dịch
6.3.3 Hàm khởi tạo Init
Trạng thái bên trong của TRIVIUM được
khởi tạo sử dụng hàm Init như sau:
Đầu vào: Khóa 80 bit K, véc tơ
khởi tạo 80 bit IV.
Đầu ra: Giá trị khởi tạo của trạng
thái bên trong S0 = (a–1, ...,a–93, b–1,... ,b–84, c–1, .... c–111).
a) Đặt i = -1152, và khởi tạo 288 bit
của Si như sau:
- Đặt (ai–93, ..., ai–1)
= (0, ..., 0, K0, ..., K79).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt (ci–111,..., ci–1) =
(1,1,1,0,..., 0).
b) Với i = -1151,
-1150,..., -1,0:
- Đặt Si = Next
(Si-1)
c) Đưa ra S0.
6.3.4 Hàm trạng
thái tiếp theo Next
Hàm trạng thái tiếp theo Next
được xác định như sau:
Đầu vào: Trạng thái bên trong Si
= (ai-1,…, ai-93, bi-1,…, bi-84,
ci-1,… ci-111).
Đầu ra: Giá trị tiếp theo của trạng
thái bên trong Si+1 = (ai,…, ai-92, bi,…,
bi-83, ci,… ci-110).
a) Tính toán các bit ai,
bi, và ci:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Đặt 
- Đặt 
b) Đưa ra Si+1 = (ai,…,
ai-92, bi,…, bi-83, ci,… ci-110).
6.3.5 Hàm dòng khóa Strm
Hàm đầu ra Strm được xác định
như sau:
Đầu vào: Trạng thái bên trong Si
= (ai-1,…, ai-93, bi-1,…, bi-84,
ci-1,… ci-111).
Đầu ra: Bit dòng khóa zi.
Đưa ra 
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(quy
định)
Các định danh đối tượng
Phụ lục này liệt kê các định danh đối
tượng được gán cho các thuật toán được quy định trong tiêu chuẩn này và xác định
các cấu trúc tham số thuật toán.

Phụ
lục B
(tham
khảo)
Các véc tơ kiểm tra
B.1 Véc tơ kiểm tra cho Enocoro-128v2
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Điều này cung cấp các véc tơ kiểm tra
số học bao gồm một khóa 128 bit, một véc tơ khởi tạo 64 bit, và 256 bit dòng
khóa đầu tiên tương ứng được sinh ra bởi Enonoro-128v2.

B.1.2 Các trạng
thái trong mẫu
Các giá trị trung gian của trạng thái
và bộ đệm được sử dụng để tạo một dãy dòng khóa được liệt kê dưới đây:


B.2 Véc tơ kiểm
tra của Enocoro-80
B.2.1 Khóa, véc tơ khởi tạo, và bộ ba
dòng khóa
Điều này cung cấp các véc tơ kiểm tra
số bao gồm một khóa 80 bit, một véc tơ khởi tạo 64 bit, và 128 bit dòng khóa đầu
tiên tương ứng được tạo ra bởi Enccoro-80.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
B.2.2 Các trạng
thái mẫu 22
Các giá trị trung gian của trạng thái
và bộ đệm được sử dụng để tạo một dòng khóa được liệt kê bên dưới:

B.3 Véc tơ kiểm tra của Trivium
B.3.1 Khóa, véc tơ khởi tạo, và bộ ba
dòng khóa
Điều này cung cấp một véc tơ kiểm tra
số học bao gồm một khóa 80 bit, véc tơ khởi tạo 80 bit, và 128 bit dòng khóa đầu
tiên tương ứng được sinh bởi Trivium.
Chú ý rằng Trivium được quy định
ở mức bit, và không khác biệt đến thứ tự mà các bit này được nhóm thành các
byte. Để đơn giản hóa việc kiểm tra của véc tơ kiểm tra trên các nền tảng phần
mềm với các quy ước khác nhau, mỗi nhóm 8 bit được in theo hai dạng thập lục
phân khác nhau. Dạng đầu tiên ánh xạ bít đầu tiên của mỗi byte thành bit có trọng
số cao nhất, và phù hợp hơn cho nền tảng big-endian; Dạng thứ hai sử dụng thứ tự
ngược, và phù hợp hơn với nền tảng little-endian.

B.3.2 Các bit dãy
bên trong
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66



B.3.3 Trạng thái
bên trong
Như được đề cập trong 6.3.2, một cài đặt
điển hình của TRIVIUM chỉ cần duy trì trạng thái bên trong của 288 bit. Nội
dung của trạng thái bên trong S0 sau khi thực hiện 1152 vòng
trống được liệt kê bên dưới:

B.3.4 Song song
hóa
Véc tơ kiểm tra dưới đây minh họa cách
cài đặt cho phép tính toán song song hóa của TRIVIUM 64 bit của bi,
cùng lúc sử dụng 3 phép toán XOR 64 bit và một phép toán AND 64 bit.

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phụ
lục C
(tham
khảo)
Hướng dẫn cài đặt và sử dụng
C.1 Trivium
C.1.1 Song song
hóa
Một tính năng của các quan hệ truy hồi
được sử dụng trong TRIVIUM là các bit được tính toán tại một thời điểm cho trước
chỉ ảnh hưởng đến các tính toán tuần tự sau một độ trễ ít nhất là 66 lần lặp.
Do đó, việc lặp tới 66 lần liên tiếp (lựa chọn thông thường là 8, 16, 32, hoặc
64) có thể được tính toán song song mà không cần bất kỳ cản trở nào. Một minh họa
cho tính chất này được đưa ra trong B.3.4.
CHÚ THÍCH Chú ý rằng không nhiều ứng dụng
của TRIVIUM mà nó sẽ không có ý nghĩa để khai thác tính song song này ở mức độ
nào đó. Việc triển khai phần cứng song song có thể đạt được mức tiêu thụ điện
năng thấp hơn đáng kể hoặc thông lượng cao hơn để đổi lấy mức tăng khiêm tốn
trong khu vực. Trong phần mềm, song song hóa của TRIVIUM làm cho nó có thể tận
dụng lợi thế của kích thước từ lớn nhất có sẵn trên một kiến trúc nhất định
C.1.2 Khuyến nghị sử dụng các giá trị
khởi tạo
Phần này đưa ra các khuyến nghị về
cách sử dụng các véc tơ khởi tạo một cách hiệu quả nhất. Do đó, kỹ thuật này có
thể được áp dụng cho tất cả các mã dòng được quy định trong tiêu chuẩn này. Các
phần còn lại, chúng ta chỉ xem xét đến một ví dụ về Trivium. Trên thực tế,
Trivium sử dụng một khóa bí mật 80 bit tương đối ngắn, việc sử dụng không đúng
cách các véc tơ khởi tạo có thể làm giảm độ an toàn của nó xuống mức nguy hiểm
thấp. Điều quan trọng cần chú ý là các véc tơ khởi tạo của Trivium phục vụ hai
mục đích:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
b) Làm tăng độ an toàn kháng lại các tấn
công thông thường.
Để cho thấy rõ hơn hai mục đích khác
nhau này, ta chia véc tơ khởi tạo 80 bit IV thành hai thành phần, I
và V:

Thành phần đầu tiên I là một bộ đếm
n-bit đơn giản để xác định duy nhất từng đoạn dữ liệu. Ta giả sử nó được biết đến
công khai, và nếu giá trị của nó không thể nhận được theo cách bất kỳ nào khác,
thì nó cần được truyền đi cho mỗi đoạn. Độ dài n của nó phụ thuộc vào số
lượng tối đa các đoạn dữ liệu có thể truy cập ngẫu nhiên mà ứng dụng có thể mã
hóa với một khóa đơn. Chú ý rằng ta thường không cần n quá lớn, như minh
họa trong các ví dụ dưới đây.
VÍ DỤ 1 Một ổ đĩa DVD tốc độ 1x
đọc dữ liệu là 10Mbit/s và có thời gian truy cập điển hình là 100ms. Để truy cập
các phần tùy ý của một đĩa đã mã hóa mà không gây ra bất kỳ độ trễ nào, thiết bị
giải mã sẽ phải tạo ra dòng khóa với tốc độ 10Mbit/s, và có thể truy cập tới
dòng khóa tại điểm bất kỳ trong vòng 100ms. Yêu cầu này có thể dễ dàng đạt được
đáp ứng bằng cách khởi tạo lại Trivium với một giá trị khác của 1 sau mỗi khối
1Mbit. Trong trường hợp này, một biến đếm 16 bit / đủ để mã hóa một đĩa 4.7GB.
VÍ DỤ 2 Trong các ứng dụng liên quan đến
liên lạc thời gian thực (như liên lạc thoại), thường không có ý nghĩa khi giải
mã dữ liệu theo thứ tự khác với thứ tự đã được sử dụng trong quá trình mã hóa.
Toàn bộ cuộc trao đổi có thể được mã hóa như một dòng đơn, loại bỏ cần thiết
cho biến đếm, như n = 0. Tuy nhiên, để bù lại cho các khác biệt về đồng bộ, hoặc
cho các gói dữ liệu đến chưa đúng thứ tự hoặc bị bỏ qua, thì các bít dòng khóa
sẽ có thể cần được tạo ra ở tốc độ cao hơn so với tốc độ truyền và được giữ tạm
thời trong bộ đệm.
Thành phần thứ hai V có thể được sử dụng
để làm tăng khả năng chống lại các tấn công tổng quát của TRIVIUM, và cách hiệu
quả nhất để làm điều đó là coi nó như khóa bí mật bổ sung, có nghĩa là, khi nào
một khóa mới được yêu cầu, cả K và V đều được khởi tạo cùng lúc sử dụng khóa bí
mật lớn hơn 160 bit K'.

Điều quan trọng để thực hiện là sử dụng
một khóa mở rộng K' như vậy sẽ không làm tăng độ an toàn của TRIVIUM chống lại
các tấn công chuyên dụng.Tấn công đoán và xác định được đề xuất bởi Maximov và
Biryukov [4], là một trường hợp yêu cầu độ phức tạp đương với việc tìm kiếm vét
cạn trên không gian khóa 90 bít, và điều này không phụ thuộc vào cách khởi tạo
của TRIVIUM. Mặt khác, các tấn công vét cạn đòi hỏi nguồn lực tính toán lớn
hơn, đặc biệt khi n có thể giữ ở mức tương đối nhỏ. Trên thực tế, các tấn
công chuyên dụng hiệu quả nhất đòi hỏi đối phương phải chặn bắt một lượng lớn dữ
liệu (cỡ hàng trăm petabyte trong trường hợp của [4]), sử dụng một khóa mở rộng
sẽ làm tăng đáng kể hành lang an toàn của TRIVIUM trong thực hành.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a) Hai dòng dữ liệu khác nhau không
bao giờ được mã hóa với cùng một khóa K, và cùng một véc tơ khởi tạo IV. Vi phạm
quy tắc này sẽ làm lộ phép XOR của hai bản rõ cho kẻ tấn công. Nếu hai dòng dữ
chứa độ dư thừa thông tin thì thông tin này sẽ đủ để khôi phục lại cả hai.
b) Không nên sử dụng lại cùng véc tơ
khởi tạo với một số lượng lớn khóa khác nhau. Giả sử rằng một véc tơ khởi tạo
đơn đã biết công khai sẽ được sử dụng với 224 (16 triệu) các khóa bí mật 80 bit
khác nhau. Trong trường hợp này, việc khôi phục ít nhất một trong số các khóa
80 bit trên sẽ không khó hơn việc khôi phục một khóa đơn 56 bit.
C.2 Enocoro
C.2.1 Khuyến nghị sử dụng các giá trị
khởi tạo mở rộng
Trong một số ứng dụng, không gian véc
tơ khởi tạo được yêu cầu lớn hơn không gian véc tơ của mã dòng được quy định trong
tiêu chuẩn này.
Phần này cung cấp các khuyến nghị về
cách sử dụng bản mã cho véc tơ khởi tạo mở rộng theo một cách an toàn. Do đó kỹ
thuật này có thể được áp dụng cho tất cả các mã dòng được quy định trong tiêu
chuẩn này. Trong phần còn lại của điều này, chúng ta xem xét đến ví dụ của
Enocoro-128v2 mà sử dụng một véc tơ khởi tạo 64 bit tương đối ngắn. Sau đây,
chúng tôi mô tả trường hợp sử dụng véc tơ khởi tạo 128 bít mở rộng IV của
Enocoro-128v2.
Theo mở rộng này, các thay đổi này chỉ
được thực hiện ở bước b) và c) trong hàm khởi tạo Init được quy định
trong 6.1.2 như sau:
b) Thiết lập véc tơ khởi tạo IV vào phần
của biến trạng thái bj(-96) như sau:
- Đặt (I0 ‖ I1 ‖ … ‖ I15) = IV,
với Ij là 8 bit với j = 0, 1, 2,…, 15.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
c) Đặt các hằng số vào phần của biến
trạng thái aj(-96) như sau:
- Đặt a0(-96) = C8= 0x88
- Đặt a1(-96) = C9=
0x4c.
Phụ
lục D
(tham
khảo)
Bảng tính năng
Phụ lục này chỉ ra các thuộc tính hạng
nhẹ của các thuật toán mật mã được mô tả trong TCVN XXX-1 Phụ lục C đưa ra các
tính năng phần cứng của mã dòng hạng nhẹ. Dựa trên các chỉ số, các thuộc tính hạng
nhẹ của Enocoro và Trivium được tổng hợp trong Bảng sau:
Bảng D.1 -
Các thuộc tính hạng nhẹ của Enocoro và Trivium
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tên thuật
toán
Enocoro
Trivium
Kích thước
khóa [bit]
80
128
80
Bề mặt chip
[GE]
2700
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2599
Số chu kỳ để
khởi tạo [CLK]
40
96
1152
Số bít trên
mỗi chu kỳ [bit/CLK]
8
8
1
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2700
4100
2599
Năng lượnga [GE*CLK]
2700
4100
2599
Năng lượng
trên mỗi bita [GE*CLK/bit]
338
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2599
Công nghệ [µm]
0,18
0,09
0,13
Tham chiếu
[6]
[5]
[3]
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phụ
lục E
(tham
khảo)
Tính toán trên trường hữu hạn
VÍ DỤ C = AÄB: Trong phép toán
này, trường hữu hạn được biểu diễn bằng cách chọn một đa thức bất khả quy F(x)
bậc n với các hệ số nhị phân, các khối n bit A = {an–1,an–2,
...,a0} và B = {bn–1, bn–2, …, b0}
(trong đó ai và bi là các bit) được biểu diễn
như các đa thức, A(x) = an–1xn–1, an–2xn–2,....
a0 và B(x) = bn–1xn–1, bn–2xn–2,....
b0 tương ứng. Cho C(x) = A(x) • B(x)mod F(x), với C(x)
là đa thức bậc cao nhất là n-1 nhận được bởi phép nhân A(x) và B(x),
chia kết quả cho F(x) và lấy phần dư. Nếu C(x) = cn–1xn–1,
cn–2xn–2,....
c0 (với ci
là các bit). Khi đó gọi C là khối n bit {cn–1, cn–2, c0}.
Với trường hợp này, chúng tôi giới thiệu một hàm Xtime mà nó thực hiện phép
nhân 2 trong trường GF(28) sử dụng đa thức bất khả quy ψ8431(x)=
x8 + x4 + x3 + x + 1 được biểu diễn dưới dạng
0x11b. Xtime có thể được cài đặt như sau:

Thư mục tài
liệu tham khảo
[1] TCVN 11367-1 (ISO/IEC 18033-1),
Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 1: Tổng
quan
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
[3] T. Good and M. Benaissa,
"Hardware results of selected stream cipher candidates", available at
http://www.ecrypt.eu.orq/stream/pa ersdir/2007/023. df
[4] A. Maximov and A. Biryukov,
"Two Trivial Attacks on TRIVIUM". In C. M. Adams, A. Miri, and M. J.
Wiener, editors, Selected Areas in Cryptography, SAC 2007, volume 4876 of
Lecture Notes in Computer Science, pages 36-55. Springer-Verlag, 2007
[5] Hitachi, Ltd, "Stream Cipher
Enocoro Evaluation Report". CRYPTREC submission package. http://www.hitachi.com/rd/yrl/crypto/enocoro/
[6] D. Watanabe, K. Ideguchi, J.
Kitahara, K. Muto, H. Furuichi, T. Kaneko, "Enocoro-80: A Hardware
Oriented stream Cipher". ARES 2008: pages 1294-1300
[7] C. De Canniere and B. Preneel,
"Trivium Specifications". eSTREAM submission package. http://www.ecrypt.eu.orci/stream/p3ciphers/trivium/trivium
p3.pdf
Mục lục
Lời nói đầu
1 Phạm vi áp dụng
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3 Thuật ngữ và định nghĩa
4 Ký hiệu
5 Mô hình tổng quát cho mã dòng
5.1 Tổng quan
5.2 Bộ tạo dòng khóa đồng bộ
5.3 Các hàm đầu ra
6 Bộ tạo dòng khóa chuyên dụng
6.1 Bộ tạo dòng khóa Enocoro-128v2
6.2 Bộ tạo dòng khóa Enocoro-80
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phụ lục A (quy định) Các định danh đối
tượng
Phụ lục B (tham khảo) Các véc tơ kiểm
tra
Phụ lục C (tham khảo) Hướng dẫn cài đặt
và sử dụng
Phụ lục D (tham khảo) Bảng tính năng
Phụ lục E (tham khảo) Tính toán trên
trường hữu hạn
Thư mục tài liệu tham khảo