Logo
  • Văn bản
    Công vănNghị địnhÁn lệBản án
  • Tin tức
    Tin văn bảnChính sách mớiTin pháp luậtKiến thức pháp luậtBản tin luậtMedia Luật
  • Biểu mẫu
  • Công cụ
    Rủi ro & phạt khi giải thểhotTra cứu mã số thuếTra cứu thuật ngữ pháp lýTra cứu mã ngành nghềGiá xăng dầu hôm nayTính lươngThuế TNCN người nước ngoàimới
    Xem tất cả công cụ
Logo
Logo
  • Trang chủ
    • Công văn
    • Nghị định
    • Án lệ
    • Bản án
    • Tin văn bản
    • Chính sách mới
    • Tin pháp luật
    • Kiến thức pháp luật
    • Bản tin luật
    • Media Luật
  • Biểu mẫu
    • Rủi ro & phạt khi giải thểhot
    • Tra cứu mã số thuế
    • Tra cứu thuật ngữ pháp lý
    • Tra cứu mã ngành nghề
    • Giá xăng dầu hôm nay
    • Tính lương
    • Thuế TNCN người nước ngoàimới
    • Xem tất cả công cụ
Giới thiệuSơ đồ website

Tìm kiếm văn bản

Nhập từ khóa, hoặc mở bộ lọc nâng cao để lọc theo cơ sở dữ liệu, thời gian và tình trạng hiệu lực

đến
đến
Trang chủ›Văn bản› Xây dựng - Đô thị ›TCVN12854-3:2020

Tiêu chuẩn quốc gia TCVN 12854-3:2020 (ISO/IEC 29192-3:2012) về 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

Đã sao chép thành công!
Số hiệuTCVN12854-3:2020
Loại văn bảnTiêu chuẩn Việt Nam
Cơ quanĐã xác định
Ngày ban hành01/01/2020
Người kýĐã xác định
Ngày hiệu lực 01/01/1970
Tình trạng Còn hiệu lực
Ngày ban hành:01/01/2020Tình trạng:Còn hiệu lực

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ộ tiêu chuẩn TCVN 12854 (ISO/IEC 29192) Công nghệ thông tin - Các kỹ thuật an toàn - Mật mã hạng nhẹ gồm các tiêu chuẩn sau:

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

- Enocoro: Một bộ tạo dòng khóa hạng nhẹ với kích thước khóa 80 hoặc 128 bit;

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

3.2

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

[TCVN 11367-1 (ISO/IEC 18033-1)]

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)

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ã được tạo ra trước đó (tùy chọn) và đưa ra là phần tiếp theo của dòng khóa.

[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)]

3.10

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

4  Ký hiệu

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

Biến tạo thành một phần trạng thái trong của bộ tạo dòng khóa.

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

Véc tơ khởi tạo

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

Hàm đầu ra kết hợp với dòng khóa và bản rõ để tạo ra bản mã

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

Dòng khóa

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

‖

Phép ghép theo bit

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

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

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ộ tạo dòng khóa đồng bộ là một máy trạng thái hữu hạn. Nó được xác định bởi:

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.

5.3  Các hàm đầu ra

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)

5.3.2  Hàm đầu ra nhị phân cộng tính

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

Biến trạng thái Si được chia nhỏ thành một biến 2 byte:

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

6.1.2  Hàm khởi tạo Init

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 Kjlà 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.

- Với j = 0,1,2, ..., 7, đặt = Ij

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,

- Đặt = C8 = 0x88,

- Đặ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

6.1.3  Hàm trạng thái tiếp theo Next

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:

Đầu vào: Biến trạng thái Si.

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

Đầu ra: giá trị tiếp theo của biến trạng thái a(i+1)

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

Đầu ra: Giá trị tiếp theo của biến trạng thái b(i+1)

- Đặ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 L8432là U và V tương ứng. Hàm L8432như sau:

Đầu vào: Xâu 16 bit U.

Đầu ra: Xâu 16 bit V.

- Đặ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:

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

- Đưa ra Z.

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:

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

Việc khởi tạo Enocoro-80 được chia thành 5 bước. Hàm khởi tạo Init như sau:

Đầ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:

- Đặt b18(-40) = C0 = 0x66,

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

Đầ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) = ρ(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).

Đưa ra Zi.

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áiSi = (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

- Đưa ra a(i+1)

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

- Đưa ra b(i+1).

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 L8431như 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.

6.3  Bộ tạo dòng khóa Trivium

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 IVIV = (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:

Si = (ai-1,…, ai-93, bi-1,…, bi-84, ci-1,… ci-111).

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

- Đặt (ai–84,…, bi–1) = (0, …, 0, IV0,..., IV79).

- Đặt (ci–111,..., ci–1) = (1,1,1,0,..., 0).

b) Với i = -1151, -1150,..., -1,0:

- ĐặtSi = 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:

- Đặt

- Đặ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

 

Phụ lục A

(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.1.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ố 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.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

Các giá trị của các bít dãy bên trong ai, bi và ci được tính toán để sinh ra véc tơ kiểm tra ở trên, được liệt kê bên dưới:

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.

 

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:

a) Cho phép dữ liệu được mã hóa với cùng một khóa bí mật, được chia thành các đoạn có thể được giải mã theo thứ tự tùy ý.

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.

Người dùng sẽ quyết định, vì những ràng buộc cụ thể của ứng dụng, có thể làm chệch thủ tục được khuyến nghị đưa ra bên trên, khi đó họ nên ít nhất thực hiện các biện pháp để đảm bảo các quy tắc sau:

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.

- Với j = 0,1,2, ..., 15, đặt = Ij

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

 

Tên thuật toán

Enocoro

Trivium

Kích thước khóa [bit]

80

128

80

Bề mặt chip [GE]

2700

4100

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

Năng lượnga [GE]

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

513

2599

Công nghệ [µm]

0,18

0,09

0,13

Tham chiếu

[6]

[5]

[3]

a ước lượng sử dụng chỉ số phần cứng cho mật mã hạng nhẹ trong phụ lục C của TCVN 12854-1

 

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 đó aivà 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

[2] TCVN 11367-4 (ISO/IEC 18033-4), Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 4: Mã dòng

[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

2  Tài liệu viện dẫn

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

6.3  Bộ tạo dòng khóa Trivium

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

Từ khóa:
TCVN12854-3:2020Tiêu chuẩn Việt Nam TCVN12854-3:2020Tiêu chuẩn Việt Nam số TCVN12854-3:2020Tiêu chuẩn Việt Nam TCVN12854-3:2020 của Đã xác địnhTiêu chuẩn Việt Nam số TCVN12854-3:2020 của Đã xác địnhTiêu chuẩn Việt Nam TCVN12854 3:2020 của Đã xác định
Nội dung đang được cập nhật.
Văn bản gốc đang được cập nhật.

Được hướng dẫn ()Xem thêmẨn bớt

    Bị hủy bỏ ()Xem thêmẨn bớt

      Được bổ sung ()Xem thêmẨn bớt

        Đình chỉ ()Xem thêmẨn bớt

          Bị đình chỉ ()Xem thêmẨn bớt

            Bị đinh chỉ 1 phần ()Xem thêmẨn bớt

              Bị quy định hết hiệu lực ()Xem thêmẨn bớt

                Bị bãi bỏ ()Xem thêmẨn bớt

                  Được sửa đổi ()Xem thêmẨn bớt

                    Được đính chính ()Xem thêmẨn bớt

                      Bị thay thế ()Xem thêmẨn bớt

                        Được điều chỉnh ()Xem thêmẨn bớt

                          Được dẫn chiếu ()Xem thêmẨn bớt

                            Văn bản hiện tại

                            Số hiệuTCVN12854-3:2020
                            Loại văn bảnTiêu chuẩn Việt Nam
                            Cơ quanĐã xác định
                            Ngày ban hành01/01/2020
                            Người kýĐã xác định
                            Ngày hiệu lực 01/01/1970
                            Tình trạng Còn hiệu lực

                            Hướng dẫn ()Xem thêmẨn bớt

                              Hủy bỏ ()Xem thêmẨn bớt

                                Bổ sung ()Xem thêmẨn bớt

                                  Đình chỉ 1 phần ()Xem thêmẨn bớt

                                    Quy định hết hiệu lực ()Xem thêmẨn bớt

                                      Bãi bỏ ()Xem thêmẨn bớt

                                        Sửa đổi ()Xem thêmẨn bớt

                                          Đính chính ()Xem thêmẨn bớt

                                            Thay thế ()Xem thêmẨn bớt

                                              Điều chỉnh ()Xem thêmẨn bớt

                                                Dẫn chiếu ()Xem thêmẨn bớt

                                                  Văn bản gốc đang được cập nhật
                                                  Tải văn bản Tiếng Việt (Word)

                                                  Tóm tắt văn bản

                                                  Số hiệuTCVN12854-3:2020
                                                  Loại văn bảnTiêu chuẩn Việt Nam
                                                  Cơ quanĐã xác định
                                                  Ngày ban hành01/01/2020
                                                  Người kýĐã xác định
                                                  Ngày hiệu lực 01/01/1970
                                                  Tình trạng Còn hiệu lực
                                                  Tra cứu mã số thuế doanh nghiệp

                                                  Tin pháp luật

                                                  • Thuê trọ nhưng không đăng ký tạm trú, sinh viên bị xử phạt như thế nào?
                                                  • Thu nhập từ lãi gửi tiền ở các tổ chức tín dụng có phải nộp thuế thu nhập cá nhân hay không?
                                                  • Hành vi lấn chiếm vỉa hè sẽ bị xử phạt như thế nào?
                                                  • Đi xem phim và quay lén lại đăng lên mạng xã hội có bị xử phạt không

                                                  Media Luật

                                                  • VIDEO: Cảnh Sát Giao Thông Không Còn Công Khai Kế Hoạch Tuần Tra Giao Thông Từ 15/9/2023
                                                  • VIDEO: Nóng, Cảnh sát giao thông được mặc thường phục để dừng xe từ 15/9/2023
                                                  • VIDEO: Nóng, Từ ngày 15/09/2023 không cần mang giấy tờ xe khi tham gia giao thông
                                                  • VIDEO: Hiện nay ai có thẩm quyền cấp sổ đỏ?

                                                  Mục lục

                                                    Dữ Liệu Pháp Luật

                                                    Cổng tra cứu văn bản pháp luật, bản án, án lệ và bộ công cụ pháp lý trực tuyến — cập nhật nhanh, chính xác, đáng tin cậy.

                                                    Liên hệ hỗ trợ[email protected]

                                                    Tra cứu

                                                    • Văn bản pháp luật
                                                    • Bản án & Án lệ
                                                    • Biểu mẫu
                                                    • Tin văn bản
                                                    • Chính sách mới

                                                    Công cụ tiện ích

                                                    • Tính lương
                                                    • Tính thuế TNCN
                                                    • Tra cứu mã số thuế
                                                    • Tra cứu mã ngành nghề
                                                    • Xem tất cả công cụ

                                                    Về chúng tôi

                                                    • Giới thiệu
                                                    • Nền tảng Vi-Office
                                                    • Sơ đồ website

                                                    Pháp lý rõ ràng,
                                                    công việc nhẹ nhàng

                                                    Cập nhật văn bản mới, công cụ hữu ích và nhiều tính năng hỗ trợ khác.

                                                    © 2026 Công ty Cổ phần Giải pháp Vi-OfficeMã số thuế: 0109181523

                                                    Giới thiệuSơ đồ website
                                                    văn bản pháp luật liên quan