ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
NGHIÊN CỨU THỰC THI HỆ MẬT ACORN NHÚNGVÀO
THẺ CHIP VÀ ĐỀ XUẤT ỨNG DỤNG
Nguyen Thanh Long
Hà Nội - 2023
1
MỤC LỤC
LỜI CẢM ƠN ................................................................................................ i
LỜI CAM ĐOAN.......................................................................................... ii
CÁC KÝ HIỆU, CHỮ VIẾT TẮT..................................................................v
DANH MỤC BẢNG BIỂU ...........................................................................vi
DANH MỤC HÌNH VẼ .............................................................................. vii
LỜI MỞ ĐẦU ................................................................................................1
Chương 1 TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ, HỆ MẬT ACORN .... 3
1.1. Tổng quan về mật mã hạng nhẹ ..............................................................3
1.1.1 Giới thiệu mật mã hạng nhẹ ..................................................................3
1.1.2. Các yêu cầu thiết kế .............................................................................4
1.2.
Hệ mật Acorn ......................................................................................6
1.2.1. Các ký hiệu ..........................................................................................6
1.2.2. Giới thiệu về hệ mật Acorn ..................................................................7
1.2.3. Các hàm sử dụng trong thuật tốn ACORN .........................................8
1.2.4. Q trình hoạt động của thuật tốn ACORN ...................................... 11
1.2.5. Tính an tồn của hệ mật ACORN ...................................................... 17
Chương 2 TÌM HIỂU THẺ CHIP THƠNG MINH, CƠNG NGHỆ JAVACARD
.................................................................................................................... 23
2.1. Tìm hiểu thẻ chip thơng minh............................................................... 23
2.1.1. Giới thiệu về thẻ thông minh ............................................................. 23
2.1.2. Cấu tạo thẻ chip thông minh .............................................................. 26
2.1.3. Nguy cơ mất an tồn của thẻ chip thơng minh ................................... 28
2.1.4 Một số tấn công lên thẻ chip thông minh ............................................. 30
2.2 Công nghệ JavaCard ............................................................................. 35
2
2.2.1 Giới thiệu JavaCard ............................................................................ 35
2.2.2 Máy ảo để chạy JavaCard................................................................... 37
2.2.3 Môi trường chạy JavaCard ................................................................. 38
2.2.4 JavaCard Applet ................................................................................. 39
2.2.5 Phương thức truyền nhận,trao đổi dữ liệu........................................... 43
Chương 3 THỰC THI HỆ MẬT ACORN VÀ ĐỀ XUẤT ỨNG DỤNG CHO
THẺ CHIP THÔNG MINH .......................................................................... 47
3.1 Cài đặt thuật tốn ACORN .................................................................... 47
3.1.1 Cơng cụ phát triển thẻ Java (JCKit) .................................................... 47
3.1.2 Cài đặt thuật toán ACORN ................................................................. 48
3.2
Nhúng thuật toán ACORN vào thẻ JavaCard ..................................... 57
3.3 Xây dựng giao diện mã hóa và giải mã ................................................. 60
3.4 Đánh giá hiệu suất thực thi của hệ mật ACORN trên thẻ JavaCard ...... 64
KẾT LUẬN .................................................................................................. 68
TÀI LIỆU THAM KHẢO ............................................................................ 69
3
CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Từ viết tắt, ký
hiệu
Cụm từ tiếng Anh
Ý nghĩa
AES
Advanced Encryption
Standard
Chuẩn mã hóa dữ liệu nâng cao
APDU
Application protocol data
unit
Đơn vị dữ liệu trong giao thức
ứng dụng
Competition for
Authenticated Encryption:
Cuộc thi mã hóa có xác thực:
tính bí mật, khả năng áp dụng
Security, Applicability, and
Robustness
và tính bền vững
European Network of
Excellence for Cyptology
Mạng bảo mật Châu Âu
Integrated Circuit Card
Mạch điện tử tích hợp trong
Thẻ
JCVM
JavaCard Virtual Machine
Máy ảo JavaCard
JVM
Java Virtual Machine
Máy ảo Java
LFSR
Linear feedback shift register
Thanh ghi dịch phản hồi tuyến
tính
JCRE
JavaCard Runtime
Environment
CAESAR
ECRYPT
ICC
Mơi trường thực thi JavaCard
DANH MỤC BẢNG BIỂU
Bảng 1. 1: Các ký hiệu ................................................................................ 6
Bảng 1. 2: Các tham số của thuật toán ACORN ........................................ 18
4
Bảng 1. 3: Mục tiêu an tồn của thuật tốn ACORN ................................. 18
Bảng 1. 4: Bảng chân lý của hàm maj(x,y,z) .............................................. 21
Bảng 2. 1: Cấu trúc câu lệnh APDU .......................................................... 44
Bảng 2. 2: Cấu trúc APDU phản hồi ......................................................... 45
Bảng 3. 1: Thông số JavaCard J2A080 ......................................................... 57
Bảng 3. 2: Kết quả thực thi mã hóa, giải
64
mã ......... của thuật toán ACORN
Bảng 3. 3: Kết quả thực thi mã hóa, giải
65
mã ................của thuật tốn AES
5
DANH MỤC HÌNH VẼ
Hình 1. 1: Ngun thủy mật mã hạng nhẹ .................................................. 3
Hình 1. 2: Ứng dụng của mật mã hạng nhẹ ................................................. 4
Hình 1. 3: Yêu cầu về thiết kế mật mã hạng ............................................ nhẹ
5
Hình 1. 4: Trạng thái thuật tốn ACORN ................................................... 8
Hình 1. 5: Hàm tạo dịng khóa .................................................................... 9
Hình 1. 6: Hàm phản hồi ............................................................................ 9
Hình 1. 7: Sơ đồ khối hàm cập nhật trạng thái .......................................... 11
Hình 1. 8: Quá trình khởi tạo .................................................................... 12
Hình 1. 9: Q trình mã hóa ..................................................................... 15
Hình 2. 1: Thẻ nhớ ................................................................................... 25
Hình 2. 2: Thẻ chip thơng minh ................................................................ 27
Hình 2. 3: Các rị rỉ khi phần
31
cứng mật mã hoạt ......................động
Hình 2. 4: Quá trình thu thập
SCA 32
dữ liệu trong tấn .......................... cơng
Hình 2. 5: Các phép đo dịngđiện
34
tiêu
thụ
Hình 2. 6: Máy ảo JavaCard ..................................................................... 37
Hình 2. 7: Kiến trúc hệ thống trên thẻ....................................................... 39
Hình 2. 8: Tiến trình phát triển Applet ...................................................... 42
Hình 2. 9: Trao đổi thông tin giữa ứng dụng trên thẻ và ứng dụng trên thiết bị
đầu cuối ....................................................................................................... 44
Hình 3. 1: Chương trình JCIDE cho ngơn ngữ lập trình JavaCard................ 48
Hình 3. 2: Công cụ PyApduTool .................................................................. 48
Hình 3. 3: Cấu trúc project ........................................................................... 48
vii
Hình 3. 4: Khai báo trường CLA và INS .................................................... 49
Hình 3. 5: Khai báo giá trị của các tham số mã hóa và giải mã ................... 49
Hình 3.6: Định nghĩa phương thức xử lý của lớp AcornApplet .................... 50
Hình 3. 7: Định nghĩa phương thức mã hóa của lớp AcornApplet .............. 50
Hình 3. 8: Định nghĩa phương thức giải mã của lớp AcornApplet .............. 51
Hình 3. 9: Định nghĩa hàm maj(x,y,z) và ch(x,y,z) trong AcornCore.......... 51
Hình 3. 10: Hàm KSG128 ............................................................................ 52
Hình 3. 11: Hàm FBK128 ............................................................................ 52
Hình 3. 12: Cài đặt hàm mã hóa một bit và cập nhật trạng thái thuật tốn
ACORN ....................................................................................................... 52
Hình 3. 13: Cài đặt giai đoạn khởi tạo .......................................................... 53
Hình 3. 14: Cài đặt hàm quá trình lý dữ liệu liên kết thuật tốn ACORN ... 54
Hình 3. 15: Cài đặt qtrình mã hóa thuật tốn ACORN .......................... 55
Hình 3. 16: Cài đặt qtrình tạo thẻ xác thực thuật tốn ACORN ............. 56
Hình 3. 17: Cài đặt quátrình giải mã và xác thực thuật tốn ACORN ....... 57
Hình 3. 18: Trình điều khiển JavaCOS Panel ............................................. 59
Hình 3. 19: Chọn đầu đọc kết nối đến thẻ ................................................... 59
Hình 3. 20: Tải file .CAP lên thẻ ................................................................ 60
Hình 3. 21: Kiểm tra Package và Applet đã tải lên thẻ ................................ 60
Hình 3. 22: Giao diện mã hóa và giải mã .................................................... 61
Hình 3. 23: Thực hiện mã hóa với thuật tốn ACORN ............................... 62
Hình 3. 24: Trường “Thời gian xử lý” trong giao diện khi mã hóa ............. 62
Hình 3. 25: Thực hiện giải mã với thuật toán ACORN ............................... 63
viii
Hình 3. 26: Trường hợp giải mã thất bại ...................................................... 63
Hình 3. 27: Kết quả thực hiện mã hóa và giải mã của 2 thuật toán ............... 66
ix
LỜI MỞ ĐẦU
Ngày nay, sự hội nhập kinh tế sâu rộng đã mang đến cho người tiêu dùng
Việt Nam cơ hội tiếp cận với những xu hướng hiện đại của thế giới. Người tiêu
dùng có thể dễ dàng mua sắm, thanh tốn các dịch vụ sinh hoạt, giao thơng, y
tế mà không cần phải mất thời gian và công sức di chuyển tới các điểm giao
dịch như trước, thay vào đó là việc sử dụng một thiết bị đơn giản nhỏ gọn, đó
là thẻ thơng minh thực hiện thanh tốn trực tuyến. Cùng với sự phát triển nhanh
chóng của cơng nghệ bán dẫn cho phép các nhà sản xuất chip tạo ra những linh
kiện thông minh ngày càng nhỏ gọn, sức mạnh tính tốn ngày càng cao. Hình
thức thanh tốn trực tuyến ngày càng phổ biến, cùng với việc phổ dụng các giao
dịch dùng thẻ thông minh cũng đã nảy sinh nhiều nguy cơ mất an toàn khi sử
dụng thẻ. Vấn đề đặt ra là làm thế nào đảm bảo an tồn thơng tin trong giao dịch
thẻ. Do đó, để nâng cao tính an tồn cho người dùng, một trong những phương
pháp hiệu quả là sử dụng thẻ thông minh tích hợp các thuật tốn bảo mật có xác
thực trong hệ thống giao dịch. Trong đó thuật tốn ACORN là một thuật tốn
mã hóa có xác thực với dữ liệu liên kết hạng nhẹ, được giới thiệu bởi Hongjun
Wu - nhà mật mã người Singapore, ACORN với cấu trúc mã dòng đã chiến
thắng sau cùng trong cuộc thi CAESAR do NIST tổ chức. Thuật tốn này sử
dụng khóa, véc-tơ khởi tạo có kích thước 128 bit nên đảm bảo an tồn cho q
trình giao dịch dùng thẻ.
Chính vì vậy, tơi chọn đề tài: “Nghiên cứu thực thi hệ mật ACORN
nhúng vào thẻ chip thông minh và đề xuất ứng dụng” làm đồ án tốt nghiệp,
với mục đích nghiên cứu về mật mã hạng nhẹ, hệ mật ACORN, đồng thời tìm
hiểu về thẻ chip thông minh và các ứng dụng trên nền tảng cơng nghệ JavaCard.
Trên cơ sở đó, thực thi hệ mật ACORN vào thẻ chip JavaCard, đánh giá hiệu
suất xử lý và đề xuất ứng dụng cho thẻ chip này.
1
Để hoàn thành được mục tiêu trên, nội dung đồ án sẽ được trình bày theo
3 chương:
Chương 1: Tổng quan về mật mã hạng nhẹ, hệ mật Acorn. Chương
này trình bày tổng quan về mật mã hạng nhẹ và hệ mật ACORN.
Chương 2: Tìm hiểu thẻ chip thơng minh, cơng nghệ JavaCard.
Chương 2 giới thiệu thẻ chip thông minh, phân tích các nguy cơ mất an tồn khi
sử dụng thẻ chip thơng minh. Cuối chương, trình bày nền tảng cơng nghệ
JavaCard.
Chương 3: Thực thi hệ mật ACORN và đề xuất ứng dụng dùng thẻ
chip thông minh. Chương 3 thực hiện lập trình nhúng hệ mật ACORN vào thẻ
chip thơng minh. Mơ tả, phân tích các kết quả thực nghiệm, so sánh hiệu xuất
thực thi giữa hệ mật ACORN và hệ mật kinh điển AES; trên cơ sở đó đề xuất
triển khai ứng dụng hệ mật ACORN trên thẻ chip thông minh.
2
Chương 1
TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ, HỆ MẬT ACORN
Chương này của đồ án trình bày tổng quan về mật mã hạng nhẹ, giới thiệu
hệ mật ACORN, các hàm sử dụng, các quá trình hoạt động của hệ mật ACORN.
Bên cạnh đó đưa ra một số đặc tính an toàn của hệ mật ACORN.
1.1. Tổng quan về mật mã hạng nhẹ
1.1.1 Giới thiệu mật mã hạng nhẹ
Nghiên cứu và phát triển mật mã hạng nhẹ cho phép thực thi trên các thiết
bị có tài nguyên hạn chế, đã và đang thu hút các nhà mật mã học trong những
năm gần đây, nhiều hệ mật đã được đề xuất trong các cuộc hội thảo. Ở châu Âu,
công nghệ này đã được chọn làm chủ đề cho chương trình khung 6 và 7 của Ủy
ban bảo mật châu Âu (ECRYPT: European Network of Excellence for
Cyptology): ECRYPT I và ECRYPT II. Vào năm 2004, ECRYPT đã giới thiệu
4 loại nguyên thủy mật mã hạng nhẹ, tương tự với các hệ mật truyền thống là:
mã khối, mã dòng, hàm băm và mã xác thực thông báo. Đến năm 2015, Viện tiêu
chuẩn và công nghệ Hoa kỳ cũng đã bắt đầu thiết lập các tiêu chuẩn đánh giá mật
mã hạng nhẹ [1].
Hình 1. 1: Nguyên thủy mật mã hạng nhẹ
Với những ưu điểm như chi phí thấp, tiêu thụ ít năng lượng, cơng nghệ
mật mã hạng nhẹ được dùng cho các thiết bị như: thiết bị giao thông vận tải, thiết
bị y tế, thiết bị ngân hàng,... Mật mã hạng nhẹ được kỳ vọng sẽ trở thành một
trong những nền tảng công nghệ bảo mật hữu ích, phục vụ thiết lập các dịch vụ
3
mạng thế hệ sau, như IoT.
Hình 1. 2: Ứng dụng của mật mã hạng nhẹ
Có nhiều hướng nghiên cứu khác nhau đã được đề xuất cho công nghệ mật
mã hạng nhẹ. Một số hướng đến tối ưu về phần cứng và mức tiêu thụ điện năng,
trong khi những hướng khác lại hướng đến tối ưu mã nguồn của phần mềm
nhúng. Mỗi phương pháp trên đều được tối ưu hóa theo một chỉ số hiệu suất khác
nhau. Tuy nhiên, hiện vẫn chưa có sự đồng thuận nào về định nghĩa “mật mã
hạng nhẹ”. Ngoài ra, vẫn cần sự thỏa hiệp giữa hiệu suất xử lý theo thời gian thực
và tính bảo mật [1].
1.1.2. Các yêu cầu thiết kế
> Về độ an tồn
> Về hiệu quả trong cài đặt
í.1.2.1. Về độ an toàn
Mục tiêu xây dựng các hệ mã hạng nhẹ là thiết kế một hệ mật không quá
yếu, nhưng phải đủ an tồn; chi phí (cài đặt, sản xuất) thấp và một yêu cầu quan
trọng đối với các thiết kế này là tính gọn nhẹ. Do đó, cần xây dựng một hệ mật
không phải tốt nhất mà phải cân bằng giữa giá thành, hiệu suất và độ an toàn.
4
Hình 1. 3: Yêu cầu về thiết kế mật mã hạng nhẹ
í.í.2.2. Về hiệu quả trong cài đặt
Thường được đánh giá qua các phép đo sau: diện tích bề mặt (Area), số
chu kỳ xung nhịp (Cycles), thời gian, thông lượng (Throughout), nguồn (Power),
năng lượng (Energy), dịng điện (Current). Tính hiệu quả là tỷ lệ thơng lượng với
diện tích, được dùng làm độ đo cho tính hiệu quả phần cứng.
•
Diện tích thiết kế (Area): Có thể tính bằng /um2 nhưng giá trị này
phụ thuộc vào công nghệ chế tạo và thư viện chuẩn. Diện tích thiết
kế được tính bằng cách chia diện tích theo um2 cho số cổng NAND
2 đầu vào.
•
Số chu kỳ xung nhịp (Cycles): là số chu kỳ xung nhịp cần để tính
tốn và đọc dữ liệu ra.
•
Thời gian: Lượng thời gian cần thiết cho một phép tính cụ thể có
thể được tính bằng cách chia số chu kỳ xung nhịp cho tần số hoạt
động, t = số chu kỳ xung nhịp/tần số. Đơn vị tính theo ms.
•
Thơng lượng (Throughout): Là số các bit gửi ra chia cho 1 lượng
thời gian nào đó. Đơn vị [bps].
•
Nguồn (Power): Tiêu thụ nguồn có thể được ước lượng ở mức cổng
thơng qua bộ biên dịch cài đặt.
5
•
Năng lượng (Energy): Tiêu thụ năng lượng được định nghĩa là tiêu
thụ nguồn qua một khoảng thời gian cụ thể. Nó thường được tính
tốn bằng cách nhân tiêu thụ nguồn với thời gian cần cho phép tính
đó.
•
Dịng điện ( Current): Là tiêu thụ nguồn chia cho điện áp thơng
thường.
•
Tính hiệu quả cài đặt: eff = diện tích/ thơng lượng.
1.2. Hệ mật Acorn
1.2.1. Các ký hiệu
Bảng 1. 1: Các ký hiệu
Kí hiệu
e
&
Chú thích
Phép tốn XOR 2 bit.
Phép tốn AND 2 bit.
Phép toán NOT bit.
||
Phép ghép bit.
AD
Dữ liệu liên kết.
adị
Bit thứ i của dữ liệu liên kết.
adlen
C
Chiều dài bit của dữ liệu liên kết
0 < adlen < 264.
với
Bản mã.
Bit thứ i của bản mã.
6
Kí hiệu
ca
i, cbi
Chú thích
Bit điều khiển tại bước thứ i.
clen
Chiều dài bit của bản mã với 0 < clen < 264.
IV128
Véc-tơ khởi tạo 128 bit của ACORN.
IV128,i
Bit thứ i của IV28.
K
Khóa 128 bit của ACORN.
K128,i
Bit thứ i của khóa K128.
ks
Bit khóa dịng tại bước thứ i.
128
i
P
Bit dữ liệu.
Bản rõ.
pi
Bit thứ i của bản rõ.
plen
Chiều dài bit của bản rõ với 0 < plen < 264.
Si
Trạng thái của bước thứ i.
S
Bit thứJ của trạng thái Si. Với 0 < J < 292.
m
i
i.J
T
Thẻ xác thực.
Chiều dài bit của thẻ xác thực với 64 < t < 128.
1.2.2. Giới thiệu về hệ mật Acorn
t
ACORN là một thuật tốn mã hóa có xác thực với dữ liệu liên kết hạng
nhẹ được giới thiệu bởi Hongjun Wu - nhà mật mã người Singapore trong cuộc
thi về các thuật tốn mã hóa có xác thực CAESAR (Competition for
Authenticated Encryption: Security, Applicability, and Robustness). [2]
ACORN có cấu trúc mã dịng, sử dụng khóa, véc-tơ khởi tạo có kích thước
128 bit, độ dài của bản rõ P là nhỏ hơn 264 bit. Đầu vào của thuật tốn có thể bao
gồm dữ liệu liên kết AD có chiều dài bit trong khoảng 0 < adlen < 264 . Dữ liệu liên
kết này khơng u cầu phải đảm bảo tính bí mật nên khơng được mã hóa, tuy
nhiên cần đảm bảo tính tồn vẹn cho các dữ liệu này. Đầu ra của thuật toán bao
7
gồm bản mã C có độ dài nhỏ hơn 264 và một thẻ xác thực T có độ dài bit trong
khoảng từ 64 < t < 128. Nên sử dụng thẻ có độ dài 128 bit để đảm bảo tính xác
thực tốt nhất.
Trạng thái của ACORN (hình 1.4) được tạo thành từ 6 thanh ghi dịch phản
hồi tuyến tính (LFSR) có độ dài lần lượt là 61, 46, 47, 39, 37 và 59 kèm 4-bit
đệm. Như vậy, trạng thái của thuật tốn có kích thước là 293 bit.
0 23 60
61 66 106 107 111 153 154 160 192 193 196 229 230 235 288 289 292
Hình 1. 4: Trạng thái hoạt động của thuật toán ACORN
Hoạt động của thuật toán ACORN bao gồm 4 quá trình: quá trình khởi tạo,
quá trình mã hóa, q trình tạo thẻ xác thực, q trình giải mã và xác thực thẻ.
Các quá trình này sẽ được trình bày cụ thể sau đây.
1.2.3. Các hàm sử dụng trong thuật toán ACORN
ACORN sử dụng 3 hàm để thực hiện các quá trình hoạt động: một hàm
tạo dịng khóa từ các bit trạng thái, một hàm phản hồi phi tuyến để tạo các bit
phản hồi và một hàm cập nhật trạng thái sử dụng để cập nhật trạng thái thuật
tốn.
Hàm tạo dịng bit khóa (KSG):
Hàm tạo dịng bit khóa (hình 1.5) được sử dụng để tạo ra dịng bit khóa tại
mỗi bước của thuật tốn. Đầu vào của hàm là 8 bit trạng thái. Dịng bit khóa được
tính tốn theo cơng thức sau: ksị = KSG(Sj):
ksi
= Si,12 © Si,154 © maj(Si,235,Si,61,Si,193) © ch(Si,230,Si,111,Si,66)
với maj(x,y,z) và ch(x,y,z) là hai hàm Boolean được định nghĩa như sau:
+) maj( x, y, z) = (x & y) © (x & z) © (y & z);
+) ch(x, y, z) = (x & y) © ((~ x) & z) = (x & y) © ((x © 1) & z);
8
Hình 1. 5: Hàm tạo dịng khóa
Hàm phản hồi (FBK): Hàm phản hồi sử dụng các bit trong trạng thái hiện
tại Si, các bit điều khiển ca,ị, cbị làm đầu vào và trả về bit phản hồi. Các bit phản
hồi được tính tốn theo cơng thức sau: f = FBK (S, ca, cbị):
i = Si,0 ® (~ Si,107) ® maJ(Si 244,Si,23, Si,160) ® (cai & Si,196) ® (cbi & ksi)
f
Hình 1.6 mô tả hoạt động của hàm phản hồi.
Hàm cập nhật trạng thái (hình 1.7)
Đầu vào của hàm cập nhật trạng thái là trạng thái hiện tại Sị, bit dữ liệu mị,
hai bit điều khiển cai, cbị để tạo ra trạng thái S/+1 tiếp theo cho thuật toán theo các
9
bước sau:
Sị+1 = State Update(Sị, mị, caị, cbị)
Bước 1: Cập nhật trạng thái sử dụng 6 thanh ghi dịch
Si,289
= Si,289 ® Si,235 ® Sị,230;
Si,230
= Si,230 ® Si,196 ® Si,193;
Si,193
= Si,193 ® Si,160 ® Si,154;
Sị,154
= Sị,154 ® Si,111 ® Si,107;
Si,107
= Si,107 ® Si,66 ® Si,61;
Si,61
= Si,61 ® Si,23 ® Si,0;
Bước 2: Tạo bit khóa dịng
ksi = KSG(Sị);
Bước 3: Tạo bit phản hồi phi tuyến
fi = FBK (Sị, cai, cbị);
Bước 4: Dịch thanh ghi dịch 293-bit với bit phản hồi fí:
for j=0 to 291 do
S
Si+1,292
i+1, j = Si, j+1;
= fi ® mi;
10
ca
i
cb
i
> Hàm cập nhật
trạng thái
(StateUpdate)
Si
Sl+1
Hình 1. 7: Sơ đồ khối hàm cập nhật trạng thái
1.2.4. Quá trình hoạt động của thuật toán ACORN
Hoạt động của thuật toán ACORN được chia thành bốn quá trình: quá trình
khởi tạo, quá trình mã hóa, q trình tạo thẻ xác thực, q trình giải mã và xác
thực.
1.2.4.1. Quá trình khởi tạo
Quá trình khởi tạo sử dụng khóa K 128 bit, véc-tơ khởi tạo IV 128 bit và
dữ liệu liên kết AD làm đầu vào cho việc khởi tạo trạng thái của ACORN. Quá
trình khởi tạo được thực hiện qua hai giai đoạn: giai đoạn nạp khóa, véc- tơ khởi
tạo và giai đoạn nạp dữ liệu liên kết.
Hình 1. 8: Quá trình khởi tạo
*. Giai đoạn 1: Nạp khóa và véc-tơ khởi tạo.
11
Để bắt đầu thuật toán, khởi tạo trạng thái ban đầu với tất cả các bit 0, tức
là s_ 1792 i = 0 với 0 < i < 292. Trong giai đoạn này, thuật tốn nhận một đầu vào I
có độ dài 1792 bit bao gồm 128 bit khóa K, 128 bit véc-tơ khởi tạo IV và 1536
bit đệm Ơ1. Các bit đệm gồm 1 bit đầu tiên ƠỊ0 = 1, tiếp sau là 1535 bit được tạo
ra từ các bit khóa theo cơng thức &II = K128 i mod128 với i=1
>1535.
I = (^0, — , ^127|ưK), — , ^127||ơ/0, ƠI2 ■. , ơ/1535)
= (K0 .... K127HIV0............ /Vi27l|1,0 ....... 0)
Trong suốt giai đoạn nạp khóa và véc-tơ khởi tạo, cả 2 bit điều khiển là
bằng 1, tức là caị = cbị = 1. Thuật toán được chạy qua 1792 bước. Tại mỗi bước,
các ô nhớ của thanh ghi được cập nhật bằng sử dụng hàm cập nhật trạng thái với
đầu vào I được nạp thông qua bit dữ liệu
.
Giai đoạn nạp khóa và véc-tơ khởi tạo vào trạng thái của ACORN:
1. Khởi tạo trạng thái s_1792 = 0.
2. for i=0 to 127 do
m-1792+i
- K128,i ;
for i=0 to 127 do
m-1792+128+i — IV128,i
;
for i=0 do
m-1792+256
128,i mod 128
—K
©1;
for i=0 to 1535 do
m-1792+256+i
—K
128,i mod
128;
3. for i =0 to 1791 do
ca
-1792+i — 1;
for i =0 to 1791 do
cb-1792+i — 1;
12
4. for i = -1792 to -1 do
Si+1 — State Update(Sị, m-t, cơị, cbi);
*. Giai đoạn 2: Nạp dữ liệu liên kết
Sau khi nạp khóa, véc-tơ khởi tạo, thuật tốn tiếp tục nạp dữ liệu liên kết.
Trong giai đoạn này, thuật toán nhận một đầu vào là dữ liệu liên kết AD có chiều
dài là adlen bit (với 0 < adlen < 264) và 256 bit đệm ƠA. Bit đệm đầu tiên được
đặt là 1, phần còn lại được đặt là 0, tức là (TA —1,0,.. .,0.
AD — (ad
—(
ad
0,..., adlen-1
II ơA0,ơA2,...ơA255)
ad0,..., adadlen-1 ||1,0,...,0)
Thuật toán ACORN thực hiện adlen+256 bước sử dụng hàm cập nhật
trạng thái để nạp dữ liệu liên kết vào trạng thái thông qua bit dữ liệu mị.
Trong adlen+128 bước của quá trình nạp dữ liệu liên kết, các bit điều khiển cai
và cbị được đặt là 1, tức là caỉ = cbị = 1. Trong 128 bước còn lại, bit cbị giữ nguyên
và bit cai được đặt bằng 0, tức là cai = 0, cbi = 1. Giai đoạn nạp dữ liệu liên kết
vào trạng thái của ACORN:
1. for i=0 to (adlen - 1) do
mi = adi
Đạt madlen =1;
for i=1 to 255 do
m
adlen+1 = 0 ;
2. for i=0 to (adlen + 127) do
cai = 1;
for i=(adlen +128) to (adlen+255) do
cai = 0;
for i=0 to (adlen + 255) do
cb
i =1;
13
3. for i=0 to (adlen + 255) do
Si+1 = State Update(Si, mi, cai, cbi);
Nếu khơng có dữ liệu liên kết, thuật toán vẫn cần thực hiện 256 bước để
nạp các bit đệm. Trong quá trình xử lý dữ liệu liên kết, dịng bit khóa được sử
dụng để cập nhật trạng thái khi cbị = 1. Đặc tính của thuật tốn được thay đổi
qua 128 bước (khi giá trị của caị được chuyển từ 1 qua 0 trong 128 bước sau
cùng) để tách dữ liệu liên kết từ bản rõ/bản mã. Ở đây việc tách dữ liệu từ bản
rõ/bản mã có nghĩa là ngăn việc sử dụng một phần dữ liệu liên kết như là bản mã
hoặc sử dụng một phần bản mã như là dữ liệu liên kết.
1.2.4.2. Quá trình mã hóa
Q trình mã hóa sử dụng bản rõ P làm đầu vào và tính tốn đầu ra là bản
mã C. Trong giai đoạn này, thuật toán nhận một đầu vào là bản rõ P có độ dài pl
en bit (với 0 < plen < 264) và 256 bit đệm ơp. Bit đệm đầu tiên được đặt là 1, phần
còn lại được đặt là 0, tức là ơp = 1,0,.. .,0
P
= (P0,..., Padlen-! II p,A0.pJ2,.‘.pJ255)
= (P0>-.> Padlen-1 ||1,0,...,0)
Bản rõ được nạp vào trạng thái bằng hàm cập nhật trạng thái. Các bit bản
rõ P sẽ được sử dụng như các bit dữ liệu mị trong suốt q trình mã hóa. Bản mã
C được tính tốn bằng phép XOR giữa các bit khóa dịng kSị sinh ra từ hàm cập
nhật trạng thái với bản rõ đầu vào P. Hình 1.9 mơ tả q trình mã hóa của thuật
tốn ACORN.
Bản rõ p
14
Bản mã c
Hình 1. 9: Q trình mã hóa
Q trình mã hóa của thuật tốn ACORN:
1. for i=0 to (plen - 1) do
m
adlen+256+Z
p
ị;
m
adlen+256+plen =1;
Đặt
for i=1 to 255 do
m
adlen+256+plen+i
0;
2. for i=(adlen + 256) to (adlen + plen + 383) do
cai = 1;
for i=(adlen + plen + 384) to (adlen + plen
+ 511) do
cai = 0;
for i=(adlen +
256) to (adlen + plen +
511)
cbi = 0;
3. for i=(adlen + 256) to (adlen + plen + 511)
Si+1 = State Update(Si, mi, cai, cbi);
c
i—adlen—256
p
i—adlen—256 ® ksi;
end for;
Khi xử lý bản rõ, dịng bit khóa khơng được sử dụng để cập nhật trạng thái
khi cbị = 0. Đặc tính của bản mã được thay đổi qua 128 bước (khi giá trị của caị
được đặt từ 1 qua 0 trong 128 bước sau cùng) để tách quá trình xử lý bản rõ/bản
15
mã và quá trình tạo thẻ xác thực. Việc tách quá trình tạo thẻ xác thực và quá trình
xử lý bản rõ/bản mã nhằm ngăn việc sử dụng một phần của dịng khóa (có được
từ q trình xử lý bản rõ/bản mã) như là thẻ xác thực.
1.2.4.3. Quá trình tạo thẻ xác thực
Sau khi bản rõ được mã hóa, thuật tốn ACORN thực hiện q trình tạo
thẻ xác thực. Qua 768 bước, thuật toán tạo ra thẻ xác thực T là t bit cuối cùng của
dịng khóa với 64 < t < 128. Quá trình tạo thẻ xác thực T như sau:
1. for i=0 to 767 do
m
adlen+plen+512+i =
0;
16