Hệ vi mạch lập trình được trong thiết bị mật mã
Tóm tắt: Kỹ thuật xử lý tín hiệu số DSP (Digital Signal Processing) đóng vai trò
quan trọng trong lĩnh vực thông tin viễn thông. DSP xử lý hình ảnh, âm thanh, dữ
liệu.thành tín hiệu (và ngược lại) trong các thiết bị của mạng viễn thông. Mặt khác sự
phát triển của kỹ thuật mã thám tiên tiến đặt cho các nhà thiết kế thuật toán mã mật mới
những đòi hỏi độ an toàn mật mã cao và phải đáp ứng các điều kiện: hiệu năng mã hóa
cao, có thể cứng hóa module mật mã, làm việc thích ứng trong môi trường đặc biệt. Bài
báo nghiên cứu vai trò của hệ vi mạch lập trình được và ứng dụng trong thiết kế chế tạo
module mật mã dùng trong các hệ thống bảo mật thông tin.
Bạn đang xem tài liệu "Hệ vi mạch lập trình được trong thiết bị mật mã", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Hệ vi mạch lập trình được trong thiết bị mật mã
Công nghệ thông tin & Khoa học máy tính Nguyễn Nam Hải, “Hệ vi mạch lập trình được trong thiết bị mật mã.” 138 HỆ VI MẠCH LẬP TRÌNH ĐƯỢC TRONG THIẾT BỊ MẬT MÃ Nguyễn Nam Hải* Tóm tắt: Kỹ thuật xử lý tín hiệu số DSP (Digital Signal Processing) đóng vai trò quan trọng trong lĩnh vực thông tin viễn thông. DSP xử lý hình ảnh, âm thanh, dữ liệu...thành tín hiệu (và ngược lại) trong các thiết bị của mạng viễn thông. Mặt khác sự phát triển của kỹ thuật mã thám tiên tiến đặt cho các nhà thiết kế thuật toán mã mật mới những đòi hỏi độ an toàn mật mã cao và phải đáp ứng các điều kiện: hiệu năng mã hóa cao, có thể cứng hóa module mật mã, làm việc thích ứng trong môi trường đặc biệt. Bài báo nghiên cứu vai trò của hệ vi mạch lập trình được và ứng dụng trong thiết kế chế tạo module mật mã dùng trong các hệ thống bảo mật thông tin. Từ khóa: Sử lý tín hiệu số, FPGA, Bộ đồng xử lý mật mã đa thuật toán, AES. 1. VAI TRÒ HỆ VI MẠCH LẬP TRÌNH ĐƯỢC TRONG XỬ LÝ SỐ TÍN HIỆU Những năm gần đây đã có những bước tiến lớn trong phương pháp thiết kế mạch và hệ thống kỹ thuật số cũng như cứng hóa thiết bị. Sự phát triển mạnh mẽ của các vi mạch chuyên dụng ASIC và Bộ vi xử lý ASIP (Application Specific Instruction Set Processors) với độ phức tạp lên đến triệu cổng logic cho phép hoàn thiện quy trình công nghệ làm giảm kích thước phần tử bán dẫn và tăng số lớp kết nối và cho phép ứng dụng kỹ thuật lập trình mới tạo ra cấu trúc FPLD (Field Programmable Logic Devices) với khả năng tái lập trình và cấu hình lại [5],[8],[10]. Những tính năng này của FPLD cho phép thực hiện các thuật toán xử lý số tín hiệu DSP tốt hơn một cách đáng kể so với thực hiện trên các bộ xử lý tín hiệu. Hiện nay tùy thuộc vào cấu trúc các hệ thống FPLD được phân thành hệ vi mạch: CPLD (PLDs Complex) và FPGA (Field Progammable Gate Array). Kiến trúc đặc trưng CPLD là sử dụng trong hệ vi mạch nhiều cấu trúc kiểu PAL (Programmable Array Logic) nhóm lại trong các khối SPLD (Simple PLD). Các khối này được kết nối với nhau để chuyển tín hiệu từ đầu vào bên ngoài vào các khối logic bên trong và giữa các khối. Tính năng quan trọng của CPLD là: khả năng kết nối giữa các phần tử bất kỳ của cấu trúc lập trình nhanh và thời gian lan truyền tín hiệu. Kiến trúc ma trận và các công nghệ sử dụng có ảnh hưởng lớn đến thời gian truyền tín hiệu. Trong các hệ thống CPLD hiện đại, thời gian lan truyền tín hiệu thường không quá 0.8 ... 3 ns (như trong GRP firma Lattice, PIA - Altera, PIM - Cypress, Zia - Xilinx). Ngoài ra còn có hệ thống, trong đó thời gian lan truyền tín hiệu giảm xuống còn khoảng 100... 200 ps (Zia, AIM - Xilinx). Một Hệ vi mạch lập trình được có kiến trúc khác nhiều so với kiến trúc hệ vi mạch SPLD và CPLD là FPGA. Hệ mạch lập trình được CPLD và FPGA được nhiều nhà sản xuất trên thế giới cung cấp cùng với bộ nhớ SRAM và EEPROM. Mảng EEPROM có giới hạn số lần tái lập trình cho phép, thường là từ 100 đến 1000 lần, trong khi thời gian lưu trữ trong chúng có thể đến 100 năm không cần nguồn nuôi. Hệ vi mạch có thể tái cấu trúc FPGA mở ra một kỷ nguyên mới trong lĩnh vực thiết kế mạch DSP, là phương tiện để cứng hóa các thuật toán mật mã ứng dụng trong bảo mật thông tin phục vụ cho An ninh - Quốc phòng và Kinh tế - Xã hội (ứng dụng các giao thức mật mã, bảo mật và xác thực thông tin..., thậm chí ứng dụng trong thám mã). Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 42, 04 - 2016 139 Ưu điểm chính của hệ thống cấu hình lại là khả năng “thích nghi”, có thể thích ứng với các loại kiến trúc module mật mã. Để sử dụng hiệu quả, tối ưu các hệ thống này cả về mặt logic cũng như các tham số vật lý (tốc độ, hiệu năng, ...) cần có một kiến thức toàn diện về chức năng và đặc tính thuật toán mật mã. Hầu hết các thuật toán mã hóa có thể được biễu diễn bởi một biểu đồ luồng dữ liệu, được xây dựng trong từ một vài thành phần khác nhau thực hiện các phép toán số học và hàm logic. Dưới đây là danh sách các phép toán số học và hàm logic được sử dụng: - Phép tính số học đơn giản, chẳng hạn như cộng và trừ. - Phép tính trên trường nhị phân có độ dài từ mã không đặc trưng. - Phép nhân: Phép nhân tổng quát (với toán hạng giá trị bất kỳ), nhân modulo, nhân với một hằng số, ..., - Phép toán logic song song, - Phép toán logic tuần tự, - Ánh xạ bảng LUT, ví dụ: S-box phi tuyến, - Phép quay, dịch chuyển. 2. HỆ VI MẠCH LẬP TRÌNH ĐƯỢC TRONG THIẾT BỊ MẬT MÃ Trong số các mẫu đầu tiên thực hiện mã khối trên hệ vi mạch lập trình được đáng quan tâm nhất gồm hai thiết kế. Mẫu đầu tiên được thiết kế tại Viện Kỹ thuật Liên bang Thụy Sĩ ở Lausanne có tên là CryptoBooster [10]. CryptoBooster thực hiện chức năng tái cấu hình, là module làm việc với Bộ xử lý trung tâm với chức năng là module mật mã. Module này thực hiện thuật toán mã khối đối xứng IDEA. Kiểm định đánh giá cho thấy, về tốc độ và thông lượng coprocessor phù hợp cho các ứng dụng trong các mạng tốc độ cao như: ATM, SONET và GigaEthernet. Mẫu thứ hai là một thiết kế sử dụng bộ vi xử lý có thể cấu hình lại PipeRench do Đại học Carnegie Mellon thiết kế [12]. Module PipeRench đã được tối ưu hóa cho triển khai mật mã. Các tính năng chính của nó là: ảo hóa, tổ chức đường dẫn dữ liệu và cấu hình lại nhanh. Ảo hóa cho phép thực hiện các thuật toán không cần xáo trộn hoàn toàn cấu trúc vật lý của hệ thống. Trong kiến trúc PipeRench có thể thực hiện một loạt các thuật toán như: CRYPTON, IDEA, RC6, và Twofish. Phân tích nhiều ứng dụng thiết bị thực hiện thuật toán mã hóa [2],[3] có thể xác định chức năng và yêu cầu mà hệ thống mã hóa linh hoạt cần phải đáp ứng: - Có thể thay đổi thuật toán trong quá trình hoạt động, - Có thể tích hợp các thuật toán mới, - Tốc độ xử lý dữ liệu cao, - Giao diện người dùng thuận tiện, - Có thể nâng cấp phần mềm điều khiển Kiến trúc một hệ thống mật mã đặc trưng (hình 1). Cryptographic Coprocessor thực hiện tất cả các hoạt động liên quan đến việc mã hóa và giải mã dữ liệu. Tùy theo tín hiệu điều khiển mà người sử dụng chọn qua giao diện mạch điều khiển coprocessor thiết lập thuật toán và cấu hình tương ứng. Sau khi cấu hình xong coprocessor chuyển trạng thái làm việc. Việc truyền dữ liệu mã hóa và giải mã giữa hệ Công nghệ thông tin & Khoa học máy tính Nguyễn Nam Hải, “Hệ vi mạch lập trình được trong thiết bị mật mã.” 140 thống và máy tính được thực hiện thông qua các bus ISA. Tương tự từ Bộ xử lý trung tâm đến hệ thống có thể chuyển các tệp có sửa đổi hoặc mở rộng thư viện các thuật toán. Hình 1. Cấu trúc hệ thống mật mã đặc trưng. Sơ đồ khối của Bộ đồng xử lý mật mã đa thuật toán (multi-algorithm cryptographic coprocessor) tiêu biểu trình bày tại hình 2. Có thể dùng thẻ thông minh để khởi tạo một số bộ ghi dịch mà nội dung của chúng được xác lập bởi các giao diện phần mềm trên máy tính. Giá trị của chúng xác định chức năng cụ thể như: - Chọn thuật toán mật mã thích hợp: DES, X_DES_X, DES3_EEE, DES3_EDE; - Phương thức làm việc thuật toán: ECB, CBC, OFB_64, CFB_01, CFB_08, CFB_16, CFB_64; - Phương thức phối hợp với bus ISA: theo chuẩn hoặc tuần tự; - Chức năng Card: mã hóa/giải mã, ghi khóa mã và vectơ trạng thái ban đầu. Trước khi thực hiện mã hóa/giải mã cần kiểm tra trạng thái tương ứng bộ ghi dịch để xác định tính chính xác của quá trình khởi tạo. Để ngăn chặn hoặc chống lại các cuộc tấn công của hacker thường sử dụng cơ chế bảo vệ để đảm bảo sự an toàn của khóa mã và các khối dữ liệu cả rõ và mã hóa. Khi phát hiện một số sai lệch so với thiết kế về trình tự khởi tạo quá trình mã hóa/giải mã, hệ thống sẽ khóa không cho Bộ coprocessor phát tín hiệu bắt đầu (start) hoặc phá hủy các nội dung các thanh ghi khóa và thanh ghi trạng thái ban đầu. Thuật toán DES được thiết kế theo chuẩn Mỹ FIPS 46, chế độ mã hóa đã được phát triển trên cơ sở chuẩn FIPS 81. Các thuật toán DES và DES-EDE và DES-EEE, mặc dù chưa có trong các chuẩn, nhưng là thuật toán mã hóa thông dụng nhất trong các giao thức bảo mật sử dụng trong ngành ngân hàng trên toàn thế giới. Phương thức hoạt động, cho phép điều chỉnh các thuộc tính của mật mã thích hợp với yêu cầu của môi trường, theo các tiêu chuẩn quốc tế ISO/IEC 8372 và ISO/IEC 10116. Thiết kế được cụ thể hóa trong ngôn ngữ VHDL phần mềm MAX + PLUS II Altera, với họ vi mạch có thể cấu hình lại FLEX 10K. Trong các mẫu thí nghiệm sử dụng vi mạch FLEX 10K30. Các thí nghiệm mô phỏng thực hiện với các thuật toán DES, có sử dụng coprocessor FLEX 10K50 cho thấy rằng tần số tối đa của đồng hồ hệ thống có thể đạt Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 42, 04 - 2016 141 được khoảng 70 MHz. Điều này tương ứng với một tốc độ xử lý tối đa khoảng 190 Mbit/s. Đối với thuật toán 3-DES tốc độ có thể đạt được 66 Mbit/s. Do hạn chế của Hệ mật DES năm 1997, NIST (National Institute of Standards and Technology) Viện Tiêu chuẩn và Công nghệ - Mỹ mở một cuộc thi dành cho các thiết kế cải tiến thuật toán mã khối với khóa mã đối xứng. Trong vòng thi cuối cùng đã chọn ra nhóm các thuật toán mã hóa tốt nhất cả về lý thuyết và thực hành, đặc biệt là các thuật toán mã hóa trên có thể cứng hóa đem lại hiệu năng cao và phù hợp với các hệ thống thông tin mật mã trong tương lai. Theo đánh giá đã công bố, Hệ mật AES (Advanced Encryption Standard) được chấp nhận và đánh giá cao các thông số liên quan đến tốc độ xử lý và độ phức tạp của việc thực hiện. Hình 2. Sơ đồ khối Bộ đồng xử lý mật mã đa thuật toán. Các tiêu chí chính được thông qua bởi NIST để đánh giá và phân loại Hệ mật trong cuộc thi xây dựng các chuẩn mật mã mới là: an toàn, hiệu quả trong cứng hóa và lập trình, linh hoạt trong cấu hình lại. Thuật toán mã hóa có thể được thực hiện bằng phần mềm và phần cứng. Triển khai phần mềm được thiết kế và được lập trình bằng các ngôn ngữ lập trình như C, C ++, Java hoặc sau đó tích hợp trong bộ vi xử lý, bộ xử lý tín hiệu kỹ thuật số, hoặc thẻ thông minh.Triển khai phần cứng được thiết kế và chi tiết hóa nhờ sử dụng ngôn ngữ mô tả phần cứng như VHDL, VerilogHDL và thực hiện bởi một trong hai công nghệ: Hệ vi mạch chuyên dụng ASIC hoặc Hệ vi mạch có thể tái cấu hình được FPGA. Các tham số tiện ích có tác động đáng kể đến hiệu quả xử lý dữ liệu gồm: khả năng xử lý song song hay theo trình tự, độ dài từ mã và tốc độ hoạt động. Các chức năng quan trọng quyết định độ linh hoạt và an toàn mật mã gồm: khả năng thay đổi thuật toán trong quá trình làm việc (algorithm agility), bảo vệ và chống lại sự thâm nhập bất hợp pháp (tamper resistance), kiểm soát quyền truy cập vào khóa mã. Đặc điểm của quá trình thiết Công nghệ thông tin & Khoa học máy tính Nguyễn Nam Hải, “Hệ vi mạch lập trình được trong thiết bị mật mã.” 142 kế gồm: đặc tả ngôn ngữ, chiều dài chu trình thiết kế, chi phí của các công cụ để thiết kế, chi phí kiểm tra, bảo dưỡng và sửa đổi. So sánh các đặc tính tiện ích có thể thấy ASIC và FPGA có những ưu điểm hơn về hiệu quả xử lý. Sự khác biệt chủ yếu giữa ASIC và FPGA là FPGA có tốc độ xử lý chậm hơn do độ trễ bởi các kết nối giữa các phần tử được lập trình và quá trình tái cấu trúc. Về chức năng xảy ra sự khác biệt lớn hơn: ASIC cung cấp sự an toàn cao nhưng có nhược điểm là hoàn toàn không thể sửa đổi. Quá trình thiết kế bằng ASIC và FPGA giống nhau trong các chi tiết kỹ thuật (ngôn ngữ mô tả), mô phỏng (simulator) và thử nghiệm. Sự khác biệt chính giữa chúng là FPGA có chu trình thiết kế ngắn hơn và các công cụ thiết kế và thử nghiệm rẻ hơn rất nhiều. Cứng hóa module mật mã dựa trên công nghệ FPGA có lợi thế hơn so với công nghệ ASIC về chi phí và chu kỳ thiết kế mẫu, dễ dàng tái cấu hình và thử nghiệm các loại kiến trúc module mật mã khác nhau trên cơ sở mô phỏng chức năng và và thử nghiệm thực tế. Mô hình tổng quát của việc cứng hóa thuật toán mã khối đối xứng được trình bày ở dạng sơ đồ khối trong hình 3. Sơ đồ cứng hóa thuật toán mã hóa hệ mật AES bao gồm các khối sau: - Module thực hiện mã hóa/giải mã, - module tạo khóa mã. - Bộ nhớ trong lưu trữ các khóa mã tạo ra từ module tạo khóa mã hoặc được cấp thông qua một giao diện đầu vào từ bên ngoài, - Giao diện đầu vào: nhập dữ liệu đầu vào và khóa phiên và bộ đệm dữ liệu đầu vào để mã hóa/giải mã, - Giao diện đầu ra: bộ đệm dữ liệu ra và chuyển chúng vào một bộ nhớ ngoài, - Bộ điều khiển: các tín hiệu được tạo ra điều khiển hoạt động các khối còn lại. Hình 3. Sơ đồ khối cứng hóa thuật toán mã khối. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 42, 04 - 2016 143 3. KIẾN TRÚC CƠ BẢN CỦA MODULE MẬT MÃ TRONG HỆ VI MẠCH LẬP TRÌNH ĐƯỢC Kiến trúc module mật mã thường được chia thành các nhóm chính sau: kiến trúc lặp, kiến trúc kết hợp, kiến trúc luồng và kiến trúc lai ghép. Sự lựa chọn kiến trúc phần cứng các mô đun mã hóa phụ thuộc vào nhiều yếu tố (độ mật, tốc độ, tính hiệu quả, khả năng ứng dụng). Sau đây là kiểu kiến trúc mã hóa luồng (hình 4). Hình 4. Sơ đồ khối của module mật mã theo kiến trúc luồng. Trong kiến trúc mã hóa luồng thuật toán mã hóa này thường gồm nhiều vòng mã (round) giống hệt nhau (chỉ có vòng đầu tiên và vòng cuối hơi khác nhau). Thuật toán có thể được chia thành nhiều khối chức năng thực hiện các hoạt động mã hóa. Bảng 5. Mối quan hệ giữa tham số mật mã với kiểu kiến trúc module mật mã . Kiến trúc module mật mã Kiến trúc lặp Kiến trúc kết hợp Kiến trúc luồng Kiến trúc lai ghép Độ an toàn - Có thể thực hiện bằng mọi phương thức của thuật toán mã khối - Có thể thực hiện bằng mọi phương thức của thuật toán mã khối - Cần lưu trữ khoá con các vòng mã trong bộ nhớ RAM - Không thể thực hiện với các thuật toán mã khối. - Có thể sử dụng theo phương thức lai ghép phổ biến. - Phụ thuộc vào giải pháp được chọn Tốc độ Bé nhất Trung bình Lớn nhất - Phụ thuộc vào giải pháp được chọn Công nghệ thông tin & Khoa học máy tính Nguyễn Nam Hải, “Hệ vi mạch lập trình được trong thiết bị mật mã.” 144 Hiệu năng - Để thực hiện việc mã hóa và giải mã cần lượng tài nguyên ít nhất so với các giải pháp khác. - Cần số lượng lớn tài nguyên để thực hiện chức năng của thuật toán lựa chọn theo kiến trúc kết hợp - Cần số lượng lớn tài nguyên để thực hiện chức năng của thuật toán lựa chọn theo kiến trúc luồng - Phụ thuộc vào giải pháp được chọn Môi trường ứng dụng - Mạng với băng thông ≤ 100 Mb/s. - Mạng với băng thông ≤100 Mb/s. - Mạng Gigabit- Ethernet - Mạng với băng thông ≤100 Mb/s. Mối quan hệ giữa tốc độ, hiệu năng, môi trường ứng dụng, độ an toàn...với kiến trúc module mật mã lựa chọn qua thực nghiệm cứng hóa trên hệ vi mạch lật trình được trình bày ở bảng 5, trong đó module mật mã theo kiến trúc luồng có tốc độ mã hóa nhanh nhất. Tuy nhiên lại cần một số lượng lớn tài nguyên cho việc thực hiện mã hóa và giải mã chính xác. Môi trường ứng dụng module mật mã theo kiến trúc luồng là các mạng truyền thông tốc độ cao Gigabit-Ethernet. Ngày nay để nâng cao độ an toàn mật mã người ta thường tích hợp thêm các biện pháp nghiệp vụ chống can thiệp bất hợp pháp, để thực hiện một cách hiệu quả nên chọn giải pháp thực hiện theo kiến trúc lai ghép. 4. KẾT LUẬN Bài báo phân tích vai trò và ứng dụng hệ vi mạch lập trình được trong xử lý tín hiệu kỹ thuật số và thiết bị mật mã, nhờ khả năng thay đổi cấu hình trong khi vận hành và sử dụng linh hoạt các nguồn tài nguyên phần cứng, đảm bảo thực hiện cứng hóa các thuật toán mã hóa phức tạp ứng dụng trong bảo mật thông tin phục vụ cho An ninh - Quốc phòng và Kinh tế - Xã hội. TÀI LIỆU THAM KHẢO [1]. Arnold J. M.: “The Splash 2 software environment”. In D. A. Buell and K. L. Pocek, editors, Proceedings of IEEE Workshop on FPGAs for Custom Computing Machines, Napa, CA, April, 1993. [2]. Connor T., Deng S., Marchant S.: “Cryptographic Coprocesor with Algorithm Agility”, Worcester Polytechnic Institute, Worcester, March 1999. [3]. D. Stinson, Cryptography: “Theory and Practice”. CRC Press, LLC. [4]. Gaj K., Chodowiec P.: “Comparison of the hardware performance of the AES candidates using reconfigurable hardware”, Proc. 3rd Advanced Encryption Standard (AES) Candidate Conference, New York, April 13-14, 2000. [5]. Alexandru Coman, Radu Frățilă,: “Cryptographic Applications using FPGA Technology”, Military Technical Academy , ROMANIA - index.php/jmeds/article, 2011. [6] www.opencores.org [7]. [8]. Łuba T., Zbierzchowski B.: “Komputerowe projektowanie układów cyfrowych”. Wydawnictwa Komunikacji i Łączności, Warszawa 2010. [9]. Navabi Z.: “Embedded Core design with FPGAs”, McGraw-Hill, 2007 [10]. Mosanya E. et al.: “CryptoBooster: A Reconfigurable and Modular Cryptographic Coprocesor”, Proceedings of the Workshop on Cryptographic Hardware and Embedded Systems, Worcester August 1999 Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 42, 04 - 2016 145 [11]. National Security Agency, “Initial plans for estimating the hardware performance of AES submissions” aes/round2/round2.htm [12]. Taylor R., Goldstein S.: “A High-Perfomance Flexible Architecture for Cryptography”, Proceedings of the Workshop on Cryptographic Hardware and Embedded Systems, Worcester August 1999 ABSTRACT PROGRAMABLE INTEGRATED CIRCUIT IN CRYPTOGRAPHY Digital Signal Processing Technique plays an important role in the field of telecommunications. DSP transforms the image, audio, data, etc to the signal (and inverse) in telecommunication network equipment. On the other hand, the development of advanced cryptanalysis techniques requires designers of new cryptographic algorithm demands high cryptographic security level and have to meet the following conditions: high-performance encryption, harden cryptographic module, adapted to work in a special environment. The article analyzed the role of Programmable Integrated Circuit and applications in the design and manufacture cryptographic module used in the information security system. Keywords: DSP (Digital Signal Processing), FPGA, Multi-algorithm cryptographic coprocessor, AES. Nhận bài ngày 04 tháng 4 năm 2016 Hoàn thiện ngày 15 tháng 4 năm 2016 Chấp nhận đăng ngày 20 tháng 4 năm 2016 Địa chỉ: Học viện Kỹ thuật mật mã, Ban Cơ yếu Chính phủ; *Email : nam_haivn@yahoo.com
File đính kèm:
- he_vi_mach_lap_trinh_duoc_trong_thiet_bi_mat_ma.pdf