TIÊU CHUẨN QUỐC GIA TCVN 11816-4:2017 (ISO/IEC 10118-4:1998 WITH AMENDMENT 1:2014) VỀ CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – HÀM BĂM – PHẦN 4: HÀM BĂM SỬ DỤNG SỐ HỌC ĐỒNG DƯ

Hiệu lực: Còn hiệu lực

TIÊU CHUẨN QUỐC GIA

TCVN 11816-4:2017

ISO/IEC 10118-4:1998 WITH AMENDMENT 1:2014

CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – HÀM BĂM – PHẦN 4: HÀM BĂM SỬ DỤNG SỐ HỌC ĐỒNG DƯ

Information technology – Security techniques – Hash-functions – Part 4: Hash-function using modular arithmetic

Lời nói đầu

TCVN 11816-4:2017 hoàn toàn tương đương với ISO/IEC 10118-4:1998 và sửa đổi 1:2014.

TCVN 11816-4:2017 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 11816 (ISO/IEC 10118) Công nghệ thông tin – Các kỹ thuật an toàn – Hàm băm gồm các tiêu chuẩn sau:

– TCVN 11816-1 : 2017 (ISO/IEC 10118-1:2016), Phần 1: Tổng quan.

– TCVN 11816-2 : 2017 (ISO/IEC 10118-2:2010), Phần 2: Hàm băm sử dụng mã khối n-bit.

– TCVN 11816-3 : 2017 (ISO/IEC 10118-3:2004), Phần 3: Hàm băm chuyên dụng.

– TCVN 11816-4 : 2017 (ISO/IEC 10118-4:1998), Phần 4: Hàm băm sử dụng số học đồng dư.

 

CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – HÀM BĂM – PHẦN 4: HÀM BĂM SỬ DỤNG SỐ HỌC ĐỒNG DƯ

Information technology – Security techniques – Hash-functions – Part 4: Hash-functions using modular arithmetic

1  Phạm vi áp dụng

TCVN 11816-4 đặc tả 2 hàm băm sử dụng số học đồng dư. Những hàm này, được cho là kháng va chạm, nén thông điệp có độ dài bất kì, nhưng giới hạn độ dài mã băm, độ dài đó được xác định bi độ dài của số nguyên t được sử dụng trong hàm rút gọn được đnh nghĩa trong 7.3. Do đó, mã băm dễ dàng được m rộng (scaled) với độ dài đầu vào của bất kỳ cơ chế nào (ví dụ thuật toán chữ ký, lược đồ định danh).

Các hàm băm được đặc tả trong tiêu chuẩn này là MASH-1 và MASH-2 (hàm băm an toàn số học đồng dư) phù hợp riêng cho các môi trường thực hiện s học đồng dư với đủ các chiều dài. Hai hàm băm chỉ khác nhau ở số mũ được sử dụng trong hàm vòng.

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

Tiêu chuẩn sau bao gồm các điều khoản mà thông qua tài liệu viện dẫn này chứa đựng các điều khoản của TCVN 11816-4. Vào thời đim xuất bản, ấn phẩm này là hợp lệ. Tất cả các tiêu chuẩn được hiệu chỉnh và thỏa thuận dựa trên TCVN 11816-4 đều được khuyến khích nghiên cứu khả năng áp dụng n phẩm mới nhất của tiêu chuẩn được chỉ rõ dưới đây. Các phần của IEC và ISO duy trì đăng ký của các tiêu chuẩn quốc tế hợp lệ hiện hành.

TCVN 11816-1:2016 (ISO/IEC 10118-1:2016), Công nghệ thông tin  Các kỹ thuật an toàn  Hàm băm – Phần 1: Tng quan.

3  Các thuật ngữ và định nghĩa

Trong phần này các thuật ngữ và định nghĩa sau đây được áp dụng.

3.1  Thuật ngữ từ TCVN 11816-1

3.1.1

Hàm băm kháng va chạm (collision-resistant hash-function)

Hàm băm thỏa mãn tính chất sau: không thể tìm được 2 đầu vào khác nhau với cùng một giá trị đầu ra.

3.1.2

Xâu dữ liệu (data string)

Xâu bit được dùng làm đầu vào cho hàm băm.

3.1.3

Mã băm (hash-code)

Xâu bit là đầu ra của hàm băm.

3.1.4

Hàm băm (hash-function)

Hàm mà ánh xạ một xâu bit tới một xâu bit có độ dài xác định thỏa mãn 2 tính chất sau:

– Không thể tìm được một giá trị đầu vào ứng với một giá trị đầu ra cho trước.

– Không thể tìm được một đầu vào thứ 2 khác với đầu vào cho trước mà có cùng đầu ra.

3.1.5

Giá trị khi tạo (initializing value)

Một giá trị sử dụng để định nghĩa điểm bắt đầu của một hàm băm.

3.1.6

Đệm (padding)

Bit mở rộng đính kèm cho xâu dữ liệu.

3.2  Duy nhất cho TCVN 11816-4

3.2.1

Khối (block)

Một xâu bit có độ dài Lϕ là bội số nguyên của 16 (xem trong điều 6.1).

 DỤ: Độ dài đầu ra Hj của hàm vòng.

3.2.2

Nửa khối (half-block)

Một xâu bit có độ dài Lϕ/2

 DỤ: Nửa độ dài của khối Hj

3.2.3

Định danh của hàm băm (hash-function identifier)

Một byte xác định một hàm băm cụ thể

3.2.4

Số đồng dư (modulus)

Tham số là một số nguyên dương và là tích của 2 số nguyên t riêng biệt.

3.2.5

Hàm rút gọn (reduction-function)

Một hàm RED được áp dụng cho khối Hq có độ dài Lϕ để tạo ra mã băm H với độ dài Lp.

3.2.6

Hàm vòng (round-fucntion)

Hàm ϕ(˙,˙) chuyển 2 xâu nhị phân độ dài Lϕ thành một xâu nhị phân độ dài Lϕ.

CHÚ THÍCH: Nó được dùng lặp đi lặp li như một phần của hàm băm, trong đó, nó kết hợp lại một khối dữ liệu ‘m rộng có độ dài Lϕ với đầu ra trước đó có độ dàLϕ

3.3  Các quy ước

3.3.1  Sự sắp thứ tự bit (bit ordering)

Trong TCVN 11816-4, thứ tự bit được mô tả trong điều 3 của TCVN 11816-1.

3.3.2  Biến đổi một số thành một xâu (converting a number to a string)

Trong quá trình tính hàm vòng, các số nguyên được biến đi thành các xâu L bit. Ở nơi mà điều này được yêu cầu, xâu bit được tạo ra bằng sự biểu diễn nhị phân của số nguyên, với bit ở bên trái nhất của xâu tương ứng với bit quan trọng nhất của sự biểu diễn nhị phân. Nếu xâu bit cuối cùng có ít hơn L bit thì xâu sẽ được bổ sung vào bên trái số 0 phù hp để tạo ra xâu có độ dài L.

3.3.3  Biến đổi một xâu thành một số nguyên (converting a string to a number)

Trong quá trình tính hàm vòng, các xâu bit cần được chuyển thành số nguyênỞ đó, số nguyên sẽ được tạo ra bằng số mà có biểu diễn nhị phân bằng xâu nhị phân, ở đó bit trái nhất của xâu được coi như bit có nghĩa nhất của biểu diễn nhị phân.

3.4  Các định danh của hàm băm (hash-function identifier)

Các định danh được định nghĩa cho 2 hàm băm MASH được đặc tả trong TCVN 11816-4. Các định danh hàm băm cho các hàm băm quy định trong điều 8.1 và 8.2 là tương đương 41 và 42 (hệ thập lục phân). Dải các giá trị từ 43 tới 4f (hệ thập lục phân) được dành riêng để sử dụng sau này như định danh các hàm băm của TCVN 11816.

4  Các ký hiệu và các thuật ngữ viết tắt

Trong TCVN 11816-4, các ký hiệu sau đây được sử dụng.

D Data Dữ liệu
H Hash-code Mã băm
IV Initializing value Giá trị khởi tạo
X Å Y Exclusive-or of strings of bits X and Y Phép toán XOR của xâu bit X và Y

4.2  Duy nhất cho TCVN 11816-4

Bj Khối thứ j được chia từ xâu dữ liệu D sau quá trình đệm, tách và m rộng.
Dj Một nửa khối thứ j từ xâu dữ liệu D sau quá trình đệm và tách. Dq+1 đến Dq+8 là các khối dữ liệu bổ sung được tính toán trong hàm rút gọn.
e Số mũ được dùng trong hàm vòng.
E Một khối hằng s tương đương 4 khối (ở vị trí trái nhất) theo sau Lϕ – 4 số 0.
Hj Đầu ra vòng thứ j của hàm vòng. Hj có độ dài Lϕ
LD Độ dài của xâu đầu vào D tính theo bit.
Lϕ Độ dài đầu ra Hj của hàm vòng ϕ. Nó là bội số nguyên của 16.
LN Độ dài của số đồng dư N sử dụng trong hàm vòng.
Lp Độ dài của số nguyên tố p sử dụng trong hàm rút gọn.
mod Nếu Z1 là một số nguyên và Z2 là một số nguyên dương thì Z1 mod Z2 thì số nguyên duy nhất Z3 thỏa mãn
a) a) 0 ≤ Z3 < Z2, và
b) b) Z1 – Z3 là một số nguyên và là bội của Z2.
N Một số nguyên hợp số được dùng như số đồng dư trong hàm vòng.

CHÚ THÍCH: Để xác định giá trị N, xem điều 5.

p Một số nguyên t được sử dụng trong hàm rút gọn.

CHÚ THÍCH: Để xác định giá trị p, xem điều 5.

q Số lượng nửa khối trong xâu dữ liệu D sau các quá trình đệm và tách, và cũng là s các khối sau quá trình đệm, tách và mở rộng.
RED Hàm rút gọn, mà được áp dụng như thao tác cuối cùng của quá trình băm để rút gọn khối Hq  độ dài Lϕ đ nhận được mã băm H có chiu dài Lp.
Yj Xâu con thứ j có độ dàLϕ/4 bit được dùng trong hàm rút gọn.
ϕ Một hàm vòng. Nếu X và Y biểu thị các xâu Lϕ bit, thì ϕ(X, Y) biểu thị một xâu Lϕ bit thu được bằng cách áp dụng ϕ tới X và Y.
Ú Phép toán OR trên các xâu bit, tức là nếu X và Y là các xâu có cùng độ dài thì XÚY biểu thị xâu có được là kết quả phép OR của X và Y.
~ Một ký hiệu biểu th phép toán cắt. Nếu X là một xâu bit thì X~j biểu th xâu bit có được là j bit bên phải tận cùng của X.
:= Một ký hiệu biểu thị phép toán “thiết lập bằng”. Nó được sử dụng trong bản đặc tả kỹ thuật theo thủ tục của hàm vòng và của hàm rút gọn, trong đó nó chỉ ra rằng khối ở bên trái của ký hiệu sẽ được thay đổi để bằng với giá trị biểu thức ở bên phải của ký hiệu.
X || Y Phép nối các xâu bit X và Y theo thứ tự xác định.

5  Các yêu cầu

5.1. Để sử dụng một trong các hàm băm được đặc tả trong TCVN 11816-4, hai số nguyên sẽ được lựa chọn: số đồng dư N được sử dụng trong hàm vòng và số nguyên tố p được sử dụng trong hàm rút gọn.

Cả hai số nguyên, N và p được xác định bi các yêu cầu an toàn của ứng dụng sử dụng những hàm băm này.

5.1.1  Việc phân tích thành thừa số của N được chọn là không khả thi về mặt tính toán.

5.1.2  N được tạo ra bằng cách duy trì các thừa số bí mật. Điều này có thể được thực hiện bởi một bên thứ 3 đáng tin cậy hoặc bởi sự tính toán nhiều bên an toàn.

CHÚ THÍCH 1: Việc tạo ra một số N với thuộc tính mà các thừa số của nó được giữ bí mật có thể được thực hiện bằng việc sử dụng một bên th ba đáng tin cậy, phần cứng đáng tin, và/hoặc sự tính toán nhiều bên an toàn. Các ví dụ có thể được tìm thấy trong Boneh [1], Cocks [2] và Frankel [3].

CHÚ THÍCH 2: Nếu các thừa số của s đồng dư được giữ bí mật, và nếu kích thước của số nguyên t p là đủ lớn thì thuật toán tốt nhất để tìm sự va chạm xp xỉ 2Lp/2 các ước lượng của hàm vòng và thuật toán tốt nhất đ tìm một tiền ảnh thứ 2 cần xấp xỉ 2Lp các ước lượng của hàm vòng. Do vậy, trong các tình huống đó, MASH-1 và MASH-2 này được tin tưởng là các hàm băm không va chạm.

5.1.3  Số nguyên tố p của hàm rút gọn sẽ không phải là một thừa số của N của hàm vòng.

5.1.4  Độ dài Lp của s nguyên tố p lớn nhất là bằng một nửa độ dài của N, Lp ≤ Lϕ/2.

5.1.5  Ba bit bậc cao của số nguyên tố p phải bao gồm các số 1.

5.2  Đ sử dụng một trong các hàm băm, MASH-1 và MASH-2, người dùng phải chọn một trong hai số mũ e được dùng trong hàm vòng ϕ.

5.3  MASH-1 và MASH-2 có th được áp dụng cho tất cả các xâu dữ liệu D chứa nhiều nhất 2/2 – 1 bit.

6  Các biến và giá trị cần thiết cho phép băm

6.1  Độ dài của mã băm và của N

Độ dài của N và độ dài của các khối Hj có liên quan theo cách thức sau:

Lϕ + 1 ≤ LN ≤ Lϕ + 16

Độ dài Lϕ của khối Hq là bội số nguyên của 16.

CHÚ THÍCH 1: Nếu độ dài Lϕ được chọn, thì độ dài LN ràng buộc theo bất đẳng thức ở trên. Nếu độ dàLN được chọn thì độ dài Lϕ sẽ là bội số lớn nhất của 16 mà nhỏ hơn LN.

CHÚ THÍCH 2: Sự hiểu biết về N đ để xác định LN và hệ quả là Lϕ.

6.2  Đồng dư của hàm vòng

Số đồng dư N được dùng trong hàm vòng là một số nguyên hợp số được tạo ra bởi một tích của hai số nguyên tố có cùng độ dài sao cho việc tính toán để tìm thừa s của N là không khả thi.

CHÚ THÍCH 1: Ngoài tính không khả thi của việc tìm thừa số đồng dư, độ an toàn của hàm băm MASH được dựa trên một phần độ khó của việc khai căn các số đồng dư.

CHÚ THÍCH 2: Việc lựa chọn một số đồng dư riêng N với độ dài phù hợp nằm ngoài phạm vi của TCVN 11816-4.

6.3  Giá trị khởi tạo

Giá trị khởi tạo IV được định nghĩa là xâu của Lϕ các s nhị phân 0.

6.4  Số mũ

Đối với MASH-1, giá trị của số mũ e trong hàm vòng bằng 2. Đối với MASH-2, giá trị của số mũ e trong hàm vòng bằng 257.

6.5  Số nguyên tố của hàm rút gọn

Hàm rút gọn được đặc tả trong Điều 7.3 yêu cầu một số nguyên tố p. Độ dài Lp của số nguyên tố p được xác định bởi các yêu cầu an toàn, và bằng độ dài đầu vào của bất kỳ cơ chế nào sử dụng mã băm. Độ dài Lp lớn nhất là bằng một nửa độ dài của N, Lp <Lϕ/2.

CHÚ THÍCH 1: Việc lựa chọn một số nguyên tố cụ thể p với độ dài thích hợp nằm ngoài phạm vi của TCVN 11816-4.

CHÚ THÍCH 2: Đ tránh các kết quả không cân bằng bi rút gọn p, số nguyên tố p phải được chọn vi ba bit cao là các số 1.

7. Quy trình băm

Mã băm H của xâu dữ liệu D được tính toán theo các bước sau (xem Hình 1):

7.1  Chuẩn bị xâu dữ liệu

Xâu dữ liệu D được chuyển thành một chuỗi các khối đầu vào cho hàm vòng ϕ. Việc chun bị gồm việc đệm, tách và khai triển chi tiết trong các phần sau.

7.1.1  Đệm xâu dữ liệu

Nếu độ dài LD của xâu dữ liệu D không phải là một bội số nguyên của Lϕ/2, thì D được đệm bên phải với các bit 0 nhị phân tuân theo phương pháp đệm 1 được mô tả trong Phụ lục B của TCVN 11816-1:2017 (ISO/IEC 10118-1).

7.1.2  Nối thêm độ dài

Một nửa khối bổ sung là được đệm thêm bên phải của xâu dữ liệu. Nó bao gồm biểu diễn nhị phân với độ dài LD của xâu dữ liệu gốc D (chưa đệm thêm), được đệm bên trái với các bit nhị phân 0 (xem 3.3.2).

CHÚ THÍCH: Nếu khối dữ liệu D rỗng, thì chỉ có độ dài khi là đầu vào của quy trình băm.

7.1.3  Tách xâu dữ liệu

Xâu kết quả được chia thành một chuỗi các nửa khối q: D1, D2,..,Dq.

7.1.4  Khai triển

Mỗi nửa khối Dj, j = 1,2,..…,q được nhân đôi độ dài từ Lϕ/2 bit thành  bit. Điều này đạt được bằng cách chia Dj thành các na byte và đặt vào trước mỗi nửa byte của Dj với một nửa byte gồm 4 bit 1 (1111), cho j =1,2,…., q. Kết quả của quá trình này khi áp dụng với nửa khối Dj được ký hiệu là Bj, j = 1, 2,.., q.

7.2  Ứng dụng của hàm vòng

Hàm vòng ϕ, hàm mà các hàm băm MASH dựa vào để ly hai khối đầu vào Hj-1 và Bj, cả hai có độ dài Lϕ. Nó trả về một khối Hj độ dàLϕ. Được định nghĩa như sau:

ϕ(Bj, Hj-1) = ((((Hj-1Å BjÚ E)e mod N)~Lϕ)Å Hj-1

Hàm vòng được áp dụng lần lượt liên tục tới các khối dữ liệu Bj như sau:

H0:= IV

Hj:= ϕ(Bj, Hj-1) j = 1,2,…, q

7.3  Hàm rút gọn

Hàm rút gọn RED gồm tám ứng dụng của hàm vòng với một đầu vào dữ liệu được lấy từ Hq. Mã băm H được tính toán bởi bốn bước sau: tách khối Hq, mở rộng xâu dữ liệu, xử lý các khối dữ liệu bổ sung và rút gọn khối Hq+8.

7.3.1  Việc tách khối Hq

KhHq được chia thành 4 xâu độ dài Lϕ/4 bit, kí hiệu Hq1, Hq2, Hq3, Hq4

Hq:= Hq1 || Hq2 || Hq3 || Hq4

7.3.2  Mở rộng xâu dữ liệu

Định nghĩa Y0 := Hq3, Y1 := Hq1, Y2 := Hq4, và Y3 := Hq2. Với i = 4 ti 15 đặt:

Yi := Yi-1 Å Yi4

Sau đó xác đnh 8 nửa khi dữ liệu bổ sung Dq+1 tới Dq+8 như sau:

Vi = 1 đến 8 đặt

Dq+i := Y2i-2 || Y2i-1

7.3.3  Xử lý các nửa khối

Tám nửa khối Dq+1 tới Dq+8 được xử lý như trong 7.1.4 và 7.2, nhưng với IV = Hq, nhận được kết quả là Hq+8.

7.3.4  Rút gọn

Mã băm H với độ dàLp được tính toán như sau:

H:= Hq+8 mod p

8  Các hàm băm

Hai hàm băm được đặc tả trong TCVN 11816-4 khác nhau về giá trị của số mũ e được sử dụng trong hàm vòng ϕ.

8.1  MASH-1

Đối với MASH-1, hàm vòng ϕ đã quy định trong điều 7 tr thành:

ϕ(Bj, Hj-1) = ((((Hj-1 Å BjÚ E)2 mod N) ~ Lϕ) Å Hj-1

Định danh của hàm băm MASH-1 là 41 (hệ thập lục phân).

8.2  MASH-2

Đối với MASH-2, hàm vòng ϕ đã quy định trong điều 7 trở thành

ϕ(Bj, Hj-1) = ((((Hj-1 Å BjÚ E)257 mod N) ~ Lϕ) Å Hj-1

Định danh của hàm băm MASH-2 là 42 (hệ thập lục phân).

Hình 1: Hàm băm MASH

 

Phụ lục A

(Tham kho)

Các ví dụ

A.1  Quy trình băm

Thực tế, xâu dữ liệu có thể được cung cấp như một luồng. Độ dài tổng thể LD có th không được biết trước kết thúc luồng cuối cùng. Khi luồng đi qua, việc tính toán hàm băm được thực hiện. Đ thuận lợi cho việc mô tả, một hằng số k = Lϕ/2 được đưa ra. Ch bn thanh ghi sau đây được yêu cầu cho các biến: i, A, B, C.

i bộ đếm bit cho độ dài LD.
A bộ đệm để lưu giữ mã băm.
B bộ cộng tích lũy để giữ các kết quả trung gian.
C giữ nửa khối dữ liệu

Mã băm H của dữ liệu D được tính toán theo các bước sau:

A.1.1  Bước 1 (Khi tạo)

Bộ đệm A được thiết lập về 0:

A:= 0

(giá trị khởi tạo IV = H0 = 0)

Bộ cộng tích lũy B được đặt về 0:

B:= 0

Bộ đếm bit được đặt về 0:

i:= 0

(đếm số các bit dữ liệu hiệu dụng đã được băm)

A.1.2  Bước 2a (Đọc một khối dữ liệu)

Nếu dữ liệu còn lại ít nhất k bit, đọc k bit của dữ liệu D vào C. Nếu dữ liệu còn lại là k (với 0 < k’ < k) đọc k’ bit của dữ liệu D vào C và và lấp đầy C vk-k các bit 0 nhị phân vào bên phảik (tương ứng với k) được cộng vào i. Nếu không có thêm dữ liệu nào (k’ = 0) thì đi tới bước 3a.

Bước 2b (Khai triển)

Mỗi byte của C được tách thành các nửa và mỗi nửa được đứng trước vi bốn bit 1 nhị phân. Kết quả được đặt vào trong bộ cộng tích lũy B.

Bước 2c (Kết hợp với giá trị băm trước đó)

Tính: B:= B Å A (kết hợp)

Bước 2d

B:= B Ú E (bốn bit giá trị cao nhất được đặt về 1)

Bước 2e (Nâng lũy thừa)

Tính: B:= Be mod N trong đó e = 2 (phép bình phương) vi MASH-1 và e = 257 với MASH-2

Bước 2f (Phép cắt)

(Các bit bên trái cùng của C vượt quá độ dài Lϕ b xóa)

Bước 2g (Tiếp với giá trị băm trưc đó)

Tính: A:= B Å A

Bước 2h: Quay tr lại bước 2a.

A.1.3  Bưc 3a (Đọc bộ đếm độ dài)

C := i (nội dung của bộ đếm độ dài được đặt vào trong C).

Số nguyên được biến đổi thành một xâu như đã quy định ở 3.3.2.

Bước 3b (Băm với bộ đếm độ dài)

Thực hiện các bưc 2b, 2c, 2d, 2e, 2f và 2g, sau đó chuyển sang bước 4.

A.1.4  Bưc 4 (Đưa ra kết quả)

Khối Hq được chứa trong bộ đệm A là  các bit tận cùng bên phải.

A.1.5  Quá trình rút gọn

Các thanh ghi sau được yêu cầu cho các biến: A, B, C, C0, C1, C2, C3, i.

A lưu giữ khối Hq đ rút gọn.
B bộ đệm được dùng trong hàm vòng.
C bộ cộng tích lũy của độ dài Lϕ/2 để lưu giữ nửa khối.
C0, C1, C2, C3 bốn bộ đệm độ dài Lϕ/4.
i bộ đếm.

Mã băm H được tính toán theo các bước sau.

A.1.5.1  Bưc 4a (Khởi tạo)

Bộ đếm được đặt về 8: i: = 8 (s nửa khối được xử lý)

A.1.5.2  Bước 4b (Tách khối Hq)

Khối Hq được cha trong bộ đệm A được chia thành 4 phần Hq1, Hq2, Hq3, Hq4 mỗi phần độ dài Lϕ/4 (xem Hình 1) và được lưu:

C0 := Hq3

C1 := Hq1

C2 := Hq4

C3 := Hq2

A.1.5.3  Bước 4c (Mở rộng và bưc lặp)

Tính C:C0 || C1 (phép nối)
Và thực hiện các bước 2b tới 2g (áp dụng hàm vòng ϕ) (số vòng q+1)
Tính i:= i – 1. giảm bộ đếm
Bước 4d (M rộng và bước lặp)
Tính C:=C2 || C3 (phép nối)
Và thực hiện các bước 2b tới 2g (áp dụng hàm vòng ϕ) (số vòng q+2)
Tính i:= t – 1. giảm bộ đếm

A.1.5.4  Bước 4e (Kết hợp, m rộng và phép lặp)

Tính C0 := C0 Å C3 (kết hợp)
  C1 := C1 Å C0  
Tính C:= C0|| C1 (phép nối)
Và thực hiện các bước 2b tới 2g (áp dụng hàm vòng ϕ) (số vòng q+3, q+5, q+7)
Tính i:= i – 1. giảm bộ đếm
Bước 4f (Kết hợp các khối đã tách)
Tính C2 := C2 Å C1 (kết hợp)
  C3 := C3 Å C2  
Tính C:= C2 || C3 (phép nối)
Và thực hiện các bước 2b tới 2g (áp dụng hàm vòng ϕ) (số vòng q+4, q+6, q+8)
Tính i:= i – 1. Nếu i khác 0, quay lại bước 4e.

A.1.6  Bước 5 (Phép rút gọn cuối cùng)

Tính: A: = A mod p

A.1.7  Bước 6 (Đưa ra kết quả)

Mã băm H được chứa trong bộ đệm A là Lp bit ở tận cùng bên phải.

A.2  Các ví dụ tính toán băm

Trong ví dụ sau, N là một hợp số, lớn hơn Lϕ 12 bit. Lϕ là một bội số của 16 ngay dưới LN . Độ dài của số đồng dư N được chọn chỉ để minh họa quy trình băm từng bước một và không nhất thiết đáp ứng các yêu cầu an toàn. Để phân biệt giữa các s thập phân và các số hệ thập lục phân, ký hiệu d hay h được thêm vào tương ứng.

Dữ liệu sau được dùng:

Độ dài của s đồng dư N, LN = 10ch = 268d
Độ dài của khối Hj, Lϕ = 100h = 256d
Độ dài của s nguyên tố p, Lp = 80h = 128d
Độ dài của mã băm H, Lp = 80h = 128d

Xâu dữ liệu D = ‘Now is the time for all’

Xâu dữ liệu D được mã hóa theo ISO 646 trong định dạng cơ số 16:

Độ dài của xâu dữ liệu D, LD = c0h = 192d

CHÚ THÍCH: – Mã ISO 646 thưng được gọi chung là mã ASCII vì nó tương đương vi mã ASCII 7 bit. Mã ASCII 7 bit được m rộng thành 8 bit bằng cách chèn một bit 0 ở v trí đầu tiên.

Mỗi bước được ghi lại để chỉ ra các giá trị thay đổi của các biến i, A, B, C và C0, C1, C2, C3 trong suốt giai đoạn tính toán. Cột đầu tiên tham chiếu tới các bước được mô tả trong phụ lục A.1.

A.2.1  Ví dụ tính toán băm dùng MASH-1

Bước khởi tạo:

A:= 0

B:= 0

i:= 0

Vòng đầu

Vòng thứ 2

Vòng thứ q (Bộ đếm độ dài)

Hàm rút gọn RED

Phân tách

M rộng

Vòng thứ q+1

M rộng

Vòng thứ q+2

Vòng thứ q+3

Vòng thứ q+4

Vòng thứ q+5

Vòng thứ q+6

Vòng thứ q+7

Vòng thứ q+8

Rút gọn mod p

A.2.2  Ví dụ tính giá trị băm sử dụng MASH-2

Bước khởi tạo:

A:= 0

B:= 0

i:= 0

Vòng đầu

Vòng thứ 2

Vòng thứ q (Bộ đếm độ dài)

Hàm rút gọn RED

Phân tách

Mở rộng

Vòng thứ q+1

Mở rộng

Vòng thứ q+2

Vòng thứ q+3

Vòng thứ q+4

Vòng thứ q+5

Vòng thứ q+6

Vòng thứ q+7

Vòng thứ q+8

Rút gọn mod p

A.3  Thông điệp kiểm tra mẫu và giá tr băm của chúng

Theo tính toán của mã băm cho tập hợp các thông điệp kiểm tra (A.3.1 tới A.3.9), các s nguyên sau đây được sử dụng:

1) Hợp số đồng dư

2) Số nguyên tố

Chiều dài của số đồng dư N sử dụng trong hàm vòng  LN = 780d = 30Ch
Chiều dài đầu ra của hàm vòng  Lϕ = 768d = 300h
Chiều dài của số nguyên tố p sử dụng trong hàm rút gọn là Lp = 160d = A0h
Chiều dài của mã băm là Lp = 160d = A0h

Những nội dung của các trường:

leng of text Số bit của thông điệp. Được đưa ra theo dạng thập phân đầu tiên (với kí hiệu là d) tiếp theo là biểu diễn dạng thập lục phân tương đương (vi ký hiệu là h)
text Chứa thông điệp sẽ được băm phân định bởi các dấu ngoặc đơn
text in ASCII Chứa thông điệp theo mã ASCII. Những khoảng trống được chèn vào cho dễ đọc
Hq Chứa đầu ra của hàm vòng theo định dạng thập lục phân sau q ứng dụng
Hq+8 Chứa đầu ra của hàm vòng theo định dạng thập lục phân sau q+8 ứng dụng
H Chứa mã băm theo định dạng thập lục phân sau phép rút gọn modulo p

A.3.1  Ví dụ 1

A.3.2  Ví dụ 2

A.3.3  Ví dụ 3

A.3.4  Ví dụ 4

A.3.5  Ví dụ 5

A.3.6  Ví dụ 6

A.3.7  Ví dụ 7

A.3.8  Ví dụ 8

A.3.9  Ví dụ 9

 

Phụ lục B

(Tham khảo)

Thông tin bổ sung

B.1  Xác định các giá trị của tham số

TCVN 11816-4 không chỉ rõ các giá trị sẽ được sử dụng để tiếp cận đến một mức an toàn đã đề ra. Tuy nhiên, TCVN 11816-4 được đặc tả theo cách để tối thiểu hóa những sự thay đổi yêu cầu trong việc sử dụng nó nếu một trong các tham số này phải được sửa đổi.

Số nguyên tố p nên được lựa chọn cẩn thận, vì chiều dài bit của nó xác định kích c của mã băm.

B.2  Sự khác nhau giữa MASH-1 và MASH-2

Lý do cho việc giới thiệu một phiên bản bổ sung của hàm băm với số mũ cao hơn (MASH-2) là để triệt tiêu bất kỳ tính chất thống kê nào có thể có với MASH-1. Đối với các yêu cầu an toàn rất cao, nên lựa chọn MASH-2 thay cho MASH-1

B.3  Hàm rút gọn

Hàm rút gọn RED được định nghĩa trong 7.3 để điều chỉnh chiều dài mã băm cho phù hợp vi các yêu cầu về ứng dụng tiếp theo của mã băm H, và để tăng cường mức an toàn.

 

Phụ lục C

(Quy định)

Định danh đối tượng

Phụ lục này liệt kê các định danh đối tượng chỉ định cho hàm băm sử dụng số học đồng dư được đặc tả trong TCVN 11816-4.

 

Thư mục tài liệu tham khảo

[1] BONEH D., & FRANKLIN M. Efficient Generation of Shared RSA Keys. Advances in Cryptology – CRYPTO ’97 (BURTON s., & KALISKI Jr. ed.] Lecture Notes in Computer Science, Vol, 1294, Springer- Verlag, 1997, pp. 425-439.

[2] COCKS C. Split knowledge generation of RSA parameters. Cryptography and Coding. (DARELL M. ed.). Lecture Notes in Computer Science, Vol. 1355, Springer-Verlag, 1997, pp. 89-95.

[3] FRANKEL Y.,MACKENZIE P.D.,YUNG M.Robustefficientdistributed RSA-keygeneration. Proceedings of the 30th Annual ACM Symposium on theTheory of Computing [STOC ’98], ACM, 1998, pp. 663- 672

 

MỤC LỤC

Lời nói đầu

 Phạm vi áp dụng

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

 Các thuật ngữ và đnh nghĩa

3.1  Thuật ngữ từ TCVN 11816-1

3.2  Duy nhất cho TCVN 11816-4

3.3  Các quy ước

3.4  Các định danh của hàm băm (hash-function identifier)

 Các ký hiệu và các thuật ngữ viết tắt

4.1  Từ TCVN 11816-1:2017 (ISO/IEC 10118-1)

4.2  Duy nhất cho TCVN 11816-4

5  Các yêu cầu

 Các biến và giá tr cần thiết cho phép băm

6.1  Độ dài của mã băm và của N

6.2  Đồng dư của hàm vòng

6.3  Giá tr khởi tạo

6.4  S mũ

6.5  Số nguyên tố của hàm rút gọn

7. Quy trình băm

7.1  Chuẩn bị xâu dữ liệu

7.2  Ứng dụng của hàm vòng

7.3  Hàm rút gọn

8  Các hàm băm

8.1  MASH-1

8.2  MASH-2

Phụ lục A (Tham khảo) Các ví dụ

A.1  Quy trình băm

A.2  Các ví dụ tính toán băm

A.3  Thông điệp kiểm tra mẫu và giá trị băm của chúng

Phụ lục B (Tham khảo) Thông tin bổ sung

B.1  Xác định các giá trị của tham số

B.2  Sự khác nhau giữa MASH-1 và MASH-2

B.3  Hàm rút gọn

Ph lục C (Quy định) Định danh đối tượng

Thư mục tài liệu tham khảo

TIÊU CHUẨN QUỐC GIA TCVN 11816-4:2017 (ISO/IEC 10118-4:1998 WITH AMENDMENT 1:2014) VỀ CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – HÀM BĂM – PHẦN 4: HÀM BĂM SỬ DỤNG SỐ HỌC ĐỒNG DƯ
Số, ký hiệu văn bản TCVN11816-4:2017 Ngày hiệu lực
Loại văn bản Tiêu chuẩn Việt Nam Ngày đăng công báo
Lĩnh vực Giao dịch điện tử
Ngày ban hành 01/01/2017
Cơ quan ban hành Tình trạng Còn hiệu lực

Các văn bản liên kết

Văn bản được hướng dẫn Văn bản hướng dẫn
Văn bản được hợp nhất Văn bản hợp nhất
Văn bản bị sửa đổi, bổ sung Văn bản sửa đổi, bổ sung
Văn bản bị đính chính Văn bản đính chính
Văn bản bị thay thế Văn bản thay thế
Văn bản được dẫn chiếu Văn bản căn cứ

Tải văn bản