1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU VỀ MẬT MÃ DÒNG HẠNG NHẸ TRIVIUM

55 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 1,08 MB

Nội dung

Trình bày các kiến thức về mật mã hạng nhẹ như khái niệm, động cơ thúc đẩy sự phát triển của mật mã hạng nhẹ, nguyên lý thiết kế thuật toán hạng nhẹ và giới thiệu về một số thuật toán mật mã khóa bí mật và khóa công khai hạng nhẹ. Giới thiệu các kiến thức về mã dòng và trình bày mô hình tổng quát về mã dòng. Trình bày về bộ tạo dòng khóa Trivium theo tiêu chuẩn ISOIEC 291923:2012, cài đặt chương trình mô phỏng mã dòng này bằng ngôn ngữ lập trình python. Đồng thời cũng đánh giá chất lượng dòng khóa sinh ra theo một số phép kiểm tra cơ bản của NIST. CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ VÀ MÃ DÒNG 1.1 Giới thiệu chung về mật mã hạng nhẹ 1.1.1 Khái niệm Do sự phát triển của tính toán khắp nơi (ubiquitous computing) người ta cần những thuật toán hạng nhẹ để có thể cài đặt trong các thiết bị thâm nhập khắp nơi (pervasive devices) với kích thước nhỏ và năng lực tính toán ở mức độ thích hợp. Vì thế mà mật mã hạng nhẹ (lightweight cryptograhy) với thuật toán nhanh, an toàn và chi phí thực hiện thấp ra đời và ngày càng phát triển. Hiện nay, chưa có một tổ chức nào đưa ra khái niệm chính xác hay định lượng cụ thể về mật mã hạng nhẹ. Vì vậy có rất nhiều phiên bản để định nghĩa mật mã hạng nhẹ. Một trong số đó là tiêu chuẩn ISOIEC 291921 3 đã đưa ra khái niệm cơ bản về mật mã hạng nhẹ trong phần tổng quan của tiêu chuẩn. Mật mã hạng nhẹ là mật mã được dùng cho mục đích bảo mật, xác thực, thiết lập và trao đổi khóa; phù hợp cài đặt cho những môi trường tài nguyên hạn chế. Trong ISOIEC 29192, tính chất nhẹ được mô tả dựa trên nền tảng cài đặt. Trong triển khai phần cứng, diện tích chip và năng lượng tiêu thụ là những biện pháp quan trọng để đánh giá tính nhẹ của hệ mật. Trong triển khai phần mềm thì kích thước mã nguồn, kích thước RAM lại là tiêu chí cho một hệ mật được coi là nhẹ. Đồ án trình bày về động cơ phát triển loại hình mật mã này, một số nguyên thủy mật mã đối xứng hạng nhẹ.

ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ TÌM HIỂU VỀ MẬT MÃ DỊNG HẠNG NHẸ TRIVIUM Nguyen Thanh Long Hà Nội - 2023 MỤC LỤC LỜI CẢM ƠN Lỗi! Thẻ đánh dấu không được xác định LỜI CAM ĐOAN Lỗi! Thẻ đánh dấu không được xác định MỤC LỤC i DANH MỤC CÁC HÌNH VẼ iii DANH MỤC BẢNG BIỂU iv LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ VÀ MÃ DÒNG 1.1 Giới thiệu chung mật mã hạng nhẹ 1.1.1 Khái niệm 1.1.2 Động thúc đẩy phát triển 1.1.3 Nguyên lý thiết kế thuật toán mật mã hạng nhẹ 1.1.4 Các yêu cầu mật mã hạng nhẹ 1.1.5 Mật mã khóa bí mật hạng nhẹ 1.1.6 Mật mã khóa cơng khai hạng nhẹ 13 1.2 Giới thiệu chung mã dòng 16 1.2.1 Định nghĩa mã dòng 17 1.2.2 Một số đặc điểm hệ mã dòng 17 1.2.3 Phân loại mã dòng 18 CHƯƠNG 2: MẬT MÃ DÒNG HẠNG NHẸ TRIVIUM 24 2.1 Mơ hình tổng qt cho mã dịng 24 2.1.1 Thuật ngữ định nghĩa 24 2.1.2 Các ký hiệu 26 2.1.3 Bộ tạo dịng khóa đồng 27 2.1.4 Các hàm đầu 28 i 2.2 Bộ tạo dịng khóa Trivium 29 2.2.1 Tổng quan 29 2.2.2 Trạng thái bên 29 2.2.3 Hàm khởi tạo Init 30 2.2.4 Hàm trạng thái Next 31 2.2.5 Hàm dịng khóa Strm 31 2.3 Hướng dẫn cài đặt sử dụng mã dòng Trivium 31 2.3.1 Song song hóa 31 2.3.2 Khuyến nghị sử dụng giá trị khởi tạo 32 2.3.3 Bảng tính 34 2.3.4 Đánh giá độ an toàn 35 CHƯƠNG CÀI ĐẶT CHƯƠNG TRÌNH MƠ PHỎNG MÃ DỊNG HẠNG NHẸ TRIVIUM 37 3.1 Cài đặt chương trình mơ mã dòng Trivium 37 3.1.1 Một số lưu đồ giải thuật chương trình 37 3.1.2 Cài đặt thử nghiệm chương trình 41 3.2 Đánh giá chất lượng dịng khóa trivium 43 3.2.1 Chu kỳ 43 3.2.2 Các phép kiểm tra chất lượng dòng bit 43 3.2.3 Đánh giá chất lượng dòng bit tạo 47 KẾT LUẬN 49 TÀI LIỆU THAM KHẢO 50 ii DANH MỤC CÁC HÌNH VẼ Hình 1.1: Ba ngun lý thiết kế thuật toán mật mã hạng nhẹ Hình 1.2: Các loại mật mã hạng nhẹ 10 Hình 1.3: Thanh ghi dịch phản hồi tuyến tính 20 Hình 2.1: Một cài đặt TRIVIUM sử dụng ghi dịch 30 Hình 3.1: Lưu đồ thuật tốn hàm khởi tạo Init 37 Hình 3.2: Lưu đồ thuật toán hàm trạng thái Next 39 Hình 3.3: Lưu đồ thuật tốn hàm dịng khóa Strm 40 iii DANH MỤC BẢNG BIỂU Bảng 1.1: Hiệu phần cứng số giải thuật mật mã hạng nhẹ Bảng 1.2: Kết triển khai thuật tốn mã hóa hạng nhẹ phần cứng (1) [6] 12 Bảng 1.3: Kết triển khai thuật tốn mã hóa hạng nhẹ phần cứng (2) [6] 13 Bảng 2.1: Các thuộc tính hạng nhẹ Enocoro Trivium 34 Bảng 3.1: Giá trị phân vị phân bố chuẩn tắc thống kê 44 Bảng 3.2: Giá trị phân vị phân bố 2 44 iv LỜI MỞ ĐẦU Mật mã hạng nhẹ hướng tới việc tạo giải pháp cài đặt gọn nhẹ khơng làm giảm q nhiều tính an tồn Nó giải pháp đưa thỏa hiệp độ an tồn tính hiệu cài đặt thuật toán mật mã Nếu xét theo số bit xử lý, mật mã khóa đối xứng có hai loại mã dòng (stream cipher) mã khối (block cipher) Mã khối làm việc cách chia khối liệu cần mã hóa thành khối có độ dài định xử lý (mã hóa/giải mã) khối liệu Yêu cầu mã khối phải biết trước kích thước rõ Tuy nhiên khơng phải liệu cần mã hóa rõ ràng, tường minh từ đầu, mà thường trước kích thước biến thiên theo thời gian Mật mã dòng hoạt động với liệu đầu vào mã hóa bit đáp ứng biến thiên theo thời gian khối rõ (plaintext) riêng biệt Mật mã dòng thực phát triển từ năm 1960 với nhiều tổ chức sử dụng quân đội, ngoại giao, tổ chức gián điệp, doanh nghiệp, viễn thông Mã dòng ngày trở lên phổ biến thiết bị mã hóa điện tử bán dẫn bắt đầu xuất với dung lượng nhớ thấp Nhất với tốc độ phát triển IoT ngày nay, theo dự đốn SICCO đến năm 2020 có đến 50 tỷ thiết bị tham gia vào Internet Ngồi máy tính, thiết bị có cấu hình cao cịn có nhiều thiết bị có chip xử lý hạn chế tủ lạnh, điều hịa, máy giặt So với thuật tốn mã hóa dịng khác, thuật tốn mã hóa dịng nhẹ dành ưu đơn giản triển khai Theo thực nghiệm Good, T., & Benaissa, M, RC4 cần 50000 GE có thơng lượng 10 Gbps; Snow 3G cần 11000 GE, 1.72 Gbps; A5/1 cần 700 GE; thuật tốn mã hóa nhẹ tiêu biểu Grain 80 cần đến 1294 GE để đạt thông lượng 725 Mbps, hay Trivium x64 cần đến 4921 GE để có thơng lượng 22300 Mbps Mã dòng hạng nhẹ Trivium giới thiệu tiêu chuẩn ISO/IEC 29192-3 loại mã dòng có nhiều ưu điểm, có tính thực tiễn cao CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ HẠNG NHẸ VÀ MÃ DÒNG 1.1 Giới thiệu chung mật mã hạng nhẹ 1.1.1 Khái niệm Do phát triển tính toán khắp nơi (ubiquitous computing) người ta cần thuật tốn hạng nhẹ để cài đặt thiết bị thâm nhập khắp nơi (pervasive devices) với kích thước nhỏ lực tính tốn mức độ thích hợp Vì mà mật mã hạng nhẹ (lightweight cryptograhy) với thuật tốn nhanh, an tồn chi phí thực thấp đời ngày phát triển Hiện nay, chưa có tổ chức đưa khái niệm xác hay định lượng cụ thể mật mã hạng nhẹ Vì có nhiều phiên để định nghĩa mật mã hạng nhẹ Một số tiêu chuẩn ISO/IEC 29192-1 [3] đưa khái niệm mật mã hạng nhẹ phần tổng quan tiêu chuẩn Mật mã hạng nhẹ mật mã dùng cho mục đích bảo mật, xác thực, thiết lập trao đổi khóa; phù hợp cài đặt cho môi trường tài nguyên hạn chế Trong ISO/IEC 29192, tính chất nhẹ mơ tả dựa tảng cài đặt Trong triển khai phần cứng, diện tích chip lượng tiêu thụ biện pháp quan trọng để đánh giá tính nhẹ hệ mật Trong triển khai phần mềm kích thước mã nguồn, kích thước RAM lại tiêu chí cho hệ mật coi nhẹ Đồ án trình bày động phát triển loại hình mật mã này, số nguyên thủy mật mã đối xứng hạng nhẹ 1.1.2 Động thúc đẩy phát triển Mật mã hạng nhẹ hướng tới việc tạo giải pháp cài đặt gọn nhẹ không làm giảm q nhiều tính an tồn Nó giải pháp đưa thỏa hiệp độ an toàn tính hiệu cài đặt thuật tốn mật mã Ngày nhiều sản phẩm nâng cấp thành thiết bị thâm nhập khắp nơi nhờ lực tính tốn nhúng Quan hệ mật thiết thiết bị dẫn đến triển vọng tính tốn khắp nơi mơ hình công nghệ thông tin Việc triển khai hàng loạt thiết bị thâm nhập khắp nơi hứa hẹn đem đến nhiều lợi ích chi phí “hậu cần” thấp hơn, chuỗi cung cấp tối ưu có thêm dịch vụ dựa xác định vị trí Ví dụ, cơng nghệ RFID tin cơng nghệ cho phép (internet of things) Về bản, thẻ RFID bao gồm hệ thống phát nhận tín hiệu anten có khả nhận liệu từ xa, từ máy chủ RFID thiết bị đọc Nhìn chung, thẻ RFID chia thành thiết bị chủ động bị động: thẻ chủ động trang bị nguồn cung cấp lượng riêng (ví dụ dạng pin), thẻ bị động dựa vào lượng tín hiệu mạng truyền thiết bị đọc Do vậy, thiết bị RFID bị động không rẻ hơn, mà cịn có kích thước chip nhỏ có chu kỳ sống lâu Tính thâm nhập khắp nơi thiết bị dẫn đến việc triển khai hàng loạt việc triển khai hàng loạt lại kéo theo ràng buộc giảm giá thành công nghệ sử dụng Các cài đặt phần mềm thông thường bị ràng buộc dung lượng xử lý, nhớ lượng Vấn đề lượng giải q trình thiết kế cách tránh truy cập tiêu thụ lượng tới nhớ EEPROM nhớ Flash cách giảm chu kỳ đồng hồ yêu cầu Các địi hỏi giảm chi phí đưa đến yêu cầu lực, lượng diện tích cần phải giữ cực tiểu ASIC Một thẻ RFID giá thành thấp, đầy đủ tính năng, có từ 1.000 đến 10.000 GE (Gate Equivalent), đó, thành phần an tồn có khoảng 200 - 2.000 GE Bên cạnh lợi ích trên, tính tốn khắp nơi chứa đựng nhiều hiểm họa Nhiều ứng dụng yêu cầu cao độ an toàn, chẳng hạn mạng cảm biến không dây cho ứng dụng qn sự, tài tự động hóa Một nhân tố làm tăng nguy an toàn thiết bị thâm nhập khắp nơi thường triển khai mơi trường khơng kiểm sốt mà mơi trường mà đối phương truy cập vật lý tới thiết bị điều khiển thiết bị Điều làm tăng thêm khả cơng vật lý vào kịch công tiềm năng, công kênh kề, chẳng hạn phân tích lượng vi sai/phân tích lượng tương quan công xạ điện từ Thực tế rằng, giải pháp an toàn có sử dụng thuật tốn an tồn mặt mật mã, cài đặt khơng có biện pháp chống cơng kênh kề dễ dàng bị phá cơng Vì thế, khả an toàn thân việc cài đặt cần trọng 1.1.3 Nguyên lý thiết kế thuật toán mật mã hạng nhẹ Một hệ mật tốt cần phải thỏa hiệp giá thành, hiệu suất độ an toàn Với mã khối, độ dài khóa thỏa hiệp độ an tồn giá thành, số vịng cân hiệu suất độ an toàn, biểu diễn hình 1.1 Tuy nhiên, khó để tối ưu hóa ba khía cạnh Hình 1.1: Ba ngun lý thiết kế thuật tốn mật mã hạng nhẹ Độ an toàn: Khi thiết kế hệ mật nào, điều người thiết kế cần quan tâm độ an toàn hệ mật Độ an tồn coi yếu tố sống hệ mật Với mật mã nhẹ, người thiết kế cần thiết kế hệ mật “đủ an toàn” điều kiện cho phép chi phí hiệu cài đặt Dĩ nhiên độ an toàn mật mã nhẹ đạt đến ngưỡng an tồn chấp nhận điều kiện cụ thể Hiệu cài đặt: thường đánh giá qua độ đo tài nguyên sử dụng thuật tốn như: diện tích bề mặt, số chu kỳ xung nhịp, thời thể tồn tại, giai đoạn , khơng có khả mối tương quan vượt q 2−40 Ngồi ra, cịn có số cơng mặt lý thuyết lên mã dịng Trivium, cụ thể cơng đốn xác định, công đại số, công đồng hóa 36 CHƯƠNG CÀI ĐẶT CHƯƠNG TRÌNH MƠ PHỎNG MÃ DỊNG HẠNG NHẸ TRIVIUM 3.1 Cài đặt chương trình mơ mã dịng Trivium 3.1.1 Một số lưu đồ giải thuật chương trình 3.1.1.1 Hàm khởi tạo Init Đầu vào: Khóa 80 bit K, véc tơ khởi tạo 80 bit IV Đầu : S0 = (ai-1 , ,ai-93 , b-1 , ,b-84 , ,c-111) Hình 3.1: Lưu đồ thuật toán hàm khởi tạo Init 37 # Mã nguồn hàm Init 3.1.1.2 Hàm trạng thái Next Hàm trạng thái Next xác định sau: Đầu vào: Trạng thái bên 𝑆𝑖 = (𝑎𝑖−1, … , 𝑎𝑖−93, 𝑏𝑖−1, … , 𝑏𝑖−84 , 𝑐𝑖−1, … , 𝑐𝑖−111) Đầu ra: Giá trị trạng thái bên 𝑆𝑖+1 =(𝑎𝑖 , … , 𝑎𝑖−92, 𝑏𝑖 , … , 𝑏𝑖−83, 𝑐𝑖 , … , 𝑐𝑖−110) 38 Hình 3.2: Lưu đồ thuật tốn hàm trạng thái Next # Mã nguồn hàm trạng thái Next # Check python version if version_info[0] == 2: next_key_bit = trivium.keystream().next elif version_info[0] == 3: next_key_bit = trivium.keystream(). next else: print("Phiên python khơng hợp lệ") 39 3.1.1.3 Hàm dịng khóa Strm Hàm đầu Strm xác định sau: Đầu vào: Trạng thái bên 𝑆𝑖 = (𝑎𝑖−1, … , 𝑎𝑖−93, 𝑏𝑖−1, … , 𝑏𝑖−84 , 𝑐𝑖−1, … , 𝑐𝑖−111) Đầu ra: Bit dịng khóa 𝑧𝑖 Đưa 𝑧𝑖 = 𝑐𝑖−66 ⨁ 𝑐𝑖−111 ⨁ 𝑎𝑖−66 ⨁ 𝑎𝑖−93 ⨁ 𝑏𝑖−69 ⊕ 𝑏𝑖−84 Bắt đầu Si = (ai-1, ,ai-93 , bi-1, ,bi-84 , ,ci-1, ,ci-111) Zi = ci-66  ci-111  ai-66  ai-93  bi-69  bi-84 Zi Kết thúc Hình 3.3: Lưu đồ thuật tốn hàm dịng khóa Strm 40 # Mã nguồn hàm dịng khóa Strm def _gen_keystream(self): """Hàm tạo dịng khóa Trivium""" a_1 = self.state[90] & self.state[91] a_2 = self.state[181] & self.state[182] a_3 = self.state[292] & self.state[293] t_1 = self.state[65] ^ self.state[92] t_2 = self.state[168] ^ self.state[183] t_3 = self.state[249] ^ self.state[294] out = t_1 ^ t_2 ^ t_3 s_1 = a_1 ^ self.state[177] ^ t_1 s_2 = a_2 ^ self.state[270] ^ t_2 s_3 = a_3 ^ self.state[68] ^ t_3 self.state.rotate(1) self.state[0] = s_3 self.state[100] = s_1 self.state[184] = s_2 3.1.2 Cài đặt thử nghiệm chương trình # Cơng cụ - Chương trình mơ viết ngơn ngữ lập trình Python - Thực cài đặt chương trình hệ điều hành Windows 10 với cấu hình máy sau: + Bộ vi xử lý Intel Core i3 – 7020U + Dung lượng ổ cứng HDD 5400rpm, 1000 GB + RAM GB DDR4 2133 MHz + SyStem 64 – bit # Kịch kiểm thử Sử dụng véc tơ kiểm tra bao gồm khóa 80 bit, véc tơ khởi tạo 80 bit, 128 bit dịng khóa tương ứng sinh Trivium Các 41 véc tơ kiểm tra cung cấp phụ lục B tiêu chuẩn ISO/IEC 29192-3:2012 Chú ý Trivium quy định mức bit, không khác biệt đến thứ tự mà bit nhóm thành byte Để đơn giản hóa việc kiểm tra véc tơ kiểm tra tảng phần mềm với quy ước khác nhau, nhóm bit in theo hai dạng thập lục phân khác Dạng ánh xạ bit byte thành bit có trọng số cao nhất, phù hợp cho tảng big-endian; Dạng thứ hai sử dụng thứ tự ngược, phù hợp với tảng little-endian # Kết Kết thu hoàn toàn giống với véc tơ kiểm tra cho 128 bit dịng khóa biểu diễn theo tảng little-endian sau: 42 3.2 Đánh giá chất lượng dịng khóa trivium 3.2.1 Chu kỳ Bởi thực tế trạng thái bên Trivium phát triển theo cách phi tuyến tính, nên khó xác định chu kỳ tạo khóa dịng Tuy nhiên, số quan sát thực Đầu tiên, cổng AND bị bỏ qua (dẫn đến lược đồ tuyến tính hồn tồn), người ta cặp khóa/IV tạo dịng bit có chu kỳ tối thiểu 296−3 - Điều khơng có ý nghĩa Trivium, coi dấu hiệu cho thấy dòng bit chọn Thứ hai, trạng thái Trivium cập nhật theo cách đảo ngược việc khởi tạo (s178, , s288) ngăn trạng thái lặp lại 111 lần lặp Nếu tin Trivium hoạt động phép hoán vị ngẫu nhiên sau số lần lặp thường xuyên, tất độ dài chu kỳ lên tới 2288 sử dụng, xác suất để cặp khóa/IV định gây chu kỳ nhỏ 280 2− 208 3.2.2 Các phép kiểm tra chất lượng dòng bit Các phép kiểm tra thống kê (Statistical tests) xây dựng để đo chất lượng sinh bít gọi sinh bít ngẫu nhiên, giúp phát số loại yếu mà sinh có dựa chuỗi mẫu lấy từ đầu sinh Kết luận phép kiểm tra kết luận theo xác suất Nếu chuỗi mẫu không vượt qua số phép kiểm tra 43 sinh bị loại khơng ngẫu nhiên Trường hợp, chuỗi mẫu vượt qua hết phép kiểm tra thơng kê sinh chấp nhận ngẫu nhiên Kết phép kiểm tra xác định theo phân bố chuẩn chuẩn tắc (standard normal distribution) N(0,1) phân bố 2 (chi-square distribution) Bảng sau đưa số giá trị phân vị phân bố chuẩn tắc thường dùng để tra cứu ứng dụng thống kê Bảng 3.5: Giá trị phân vị phân bố chuẩn tắc thống kê  0.1 0.05 0.025 0.01 0.005 0.0025 0.001 0.0005 x 1.2816 1.6449 1.9600 2.3263 2.5758 2.8070 3.0902 3.2905 Ví dụ với mức ý nghĩa (significance level)  = 0,05 x = 1,6449 Nghĩa giá trị thống kê X lớn 1,6449 khoảng 5% lần thực nghiệm Phân bố 2 sử dụng để so sánh tính chất phù hợp tần số quan sát kiện, so sánh với tần số mong đợi phân bố giả định Phân bố 2 với v bậc tự (degrees of freedom) xuất thực nghiệm 2 v biến ngẫu nhiên độc lập có phân bố chuẩn chuẩn tắc cộng lại với nhau.Bảng sau đưa giá trị phân vị phân bố 2 với số bậc tự thường dùng để tra cứu ứng dụng thống kê Bảng 3.6: Giá trị phân vị phân bố 2  v 0.100 0.050 0.025 0.010 0.005 0.001 2.7055 3.8415 5.0239 6.6349 7.8794 10.8276 4.6052 5.9915 7.3778 9.2103 10.5966 13.8155 6.2514 7.8147 9.3484 11.3449 12.8382 16.2662 7.7794 9.4877 11.1433 13.2767 14.8603 18.4668 9.2364 11.0705 12.8325 15.0863 16.7496 20.5150 10.6446 12.5916 14.4494 16.8119 18.5476 22.4577 44 12.0170 14.0671 16.0128 18.4753 20.2777 24.3219 13.3616 15.5073 17.5345 20.0902 21.9550 26.1245 14.6837 16.9190 19.0228 21.6660 23.5894 27.8772 10 15.9872 18.3070 20.4832 23.2093 25.1882 29.5883 11 17.2750 19.6751 21.9200 24.7250 26.7568 31.2641 12 18.5493 21.0261 23.3367 26.2170 28.2995 32.9095 13 19.8119 22.3620 24.7356 27.6882 29.8195 34.5282 14 21.0641 23.6848 26.1189 29.1412 31.3193 36.1233 15 22.3071 24.9958 27.4884 30.5779 32.8013 37.6973 16 23.5418 26.2962 28.8454 31.9999 34.2672 39.2524 17 24.7690 27.5871 30.1910 33.4087 35.7185 40.7902 18 25.9894 28.8693 31.5264 34.8053 37.1565 42.3124 19 27.2036 30.1435 32.8523 36.1909 38.5823 43.8202 20 28.4120 31.4104 34.1696 37.5662 39.9968 45.3147 21 29.6151 32.6706 35.4789 38.9322 41.4011 46.7970 22 30.8133 33.9244 36.7807 40.2894 42.7957 48.2679 23 32.0069 35.1725 38.0756 41.6384 44.1813 49.7282 24 33.1962 36.4150 39.3641 42.9798 45.5585 51.1786 25 34.3816 37.6525 40.6465 44.3141 46.9279 52.6197 26 35.5632 38.8851 41.9232 45.6417 48.2899 54.0520 27 36.7412 40.1133 43.1945 46.9629 49.6449 55.4760 28 37.9159 41.3371 44.4608 48.2782 50.9934 56.8923 29 39.0875 42.5570 45.7223 49.5879 52.3356 58.3012 30 40.2560 43.7730 46.9792 50.8922 53.6720 59.7031 31 41.4217 44.9853 48.2319 52.1914 55.0027 61.0983 45 63 77.7454 82.5287 86.8296 92.0100 95.6493 103.4424 127 147.8048 154.3015 160.0858 166.9874 171.7961 181.9930 255 284.3359 293.2478 301.1250 310.4574 316.9194 330.5197 511 552.3739 564.6961 575.5298 588.2978 597.0978 615.5149 102 1081.379 1098.520 1113.533 1131.158 1143.265 1168.497 3 Ví dụ: Với bậc tự v = mức ý nghĩa  = 0,025 x = 12,8325 Có nghĩa giá trị kiểm tra thống kê X khơng lớn 12,8325 hy vọng chuỗi mẫu kiểm tra không vượt qua phép kiểm tra khoảng 2,5% lần thực nghiệm Kiểm tra tần số đơn (monobit test) Mục tiêu phép kiểm tra xác định xem số bit chuỗi s có xấp xỉ chuỗi ngẫu nhiên hay không Gọi n0, n1 ký hiệu số bit số bit tương ứng chuỗi s Công thức thống kê dùng X1 = (n0 − n1 ) n Giá trị xấp xỉ với phân bố 2 với bậc tự với n ≥ 10 (Trong thực tế, người ta khuyến cáo độ lớn n chuỗi mẫu cần lớn nhiều so với giá trị tối thiểu mô tả cho phép kiểm tra phần - ví dụ n >> 10000) Kiểm tra đôi (two-bit test) Mục tiêu phép kiểm tra xác định xem số lần xuất cặp 00, 01, 10, 11 chuỗi s có xấp xỉ chuỗi ngẫu nhiên hay không Gọi n0, n1 ký hiệu số bit số bit tương ứng chuỗi s, n00, n01, n10, n11 ký hiệu số lần xuất cặp 00, 01, 10, 11 tương ứng chuỗi s Công thức thống kê dùng là: X2 = ( ) ( ) 2 n00 + n01 + n102 + n112 − n02 + n12 + n −1 n 46 Giá trị xấp xỉ với phân bố 2 với bậc tự với n ≥ 21 Kiểm tra tự tương quan (Autocorrelation test) Mục tiêu phép kiểm tra kiểm tra tương quan chuỗi s dịch di số vị trí (khơng dịch quay vòng) Gọi d giá trị nguyên cố định (1≤ d< n/2) Số bít s khác với chuỗi s dịch d bit A(d ) = i =0 si  si + d , phép  ký hiệu phép XOR Công thức thống n − d −1 kê dùng n−d   X = 2 A(d ) −    n−d Giá trị xấp xỉ với phân bố chuẩn N(0,1) n-d ≥10 Bởi giá trị lớn A(d) không mong đợi giá trị nhỏ A(d), phép kiểm tra hai phía cần sử dụng 3.2.3 Đánh giá chất lượng dòng bit tạo Xét 128 bit dịng khóa: 00100101 00011100 00110110 10110110 01101110 00100100 00011001 11111100 01010111 10110001 01111101 11001110 00101000 10100111 01111111 11111000 (i) Kiểm tra tần số đơn: n0 = 58, n1 = 70, giá trị thống kê X1 = 1,125 (n0 − n1 ) (58 − 70) X1 = = = 1,125 n 128 (ii) Kiểm tra đôi: n00 = 28, n01 = 29, n10 = 29, n11 = 41, giá trị thống kê X2 = 2,489173 X2 = 282 + 292 + 292 + 412 ) − 582 + 702 ) + = 2,489173 ( ( 128 − 128 (iii) Kiểm tra tự tương quan: Nếu d = A(8) = 62, giá trị thống kê X3 = 0,3651484 47 Với mức ý nghĩa  = 0.05, ngưỡng X1, X2, X3 3.8415, 5.9915 1.96 tương ứng (trong bảng 3.1 3.2) Vì chuỗi cho vượt qua kiểm tra tần số, đôi tự tương quan 48 KẾT LUẬN - Trình bày kiến thức mật mã hạng nhẹ khái niệm, động thúc đẩy phát triển mật mã hạng nhẹ, nguyên lý thiết kế thuật toán hạng nhẹ giới thiệu số thuật tốn mật mã khóa bí mật khóa cơng khai hạng nhẹ - Giới thiệu kiến thức mã dịng trình bày mơ hình tổng qt mã dịng - Trình bày tạo dịng khóa Trivium theo tiêu chuẩn ISO/IEC 29192-3:2012, cài đặt chương trình mơ mã dịng ngơn ngữ lập trình python Đồng thời đánh giá chất lượng dịng khóa sinh theo số phép kiểm tra NIST 49 TÀI LIỆU THAM KHẢO [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] C De Canniere and B Preneel, "Trivium Specifications" eSTREAM submission package http://www.ecrypt.eu.orci/stream/p3ciphers/trivium/trivium p3.pdf 50

Ngày đăng: 21/08/2023, 08:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w