giải thuật KASUMI

23 527 1
giải thuật KASUMI

Đ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

Thuật toán KASUMI MỤC LỤC THUẬT NGỮ TỪ VIẾT TẮT Từ viết tắt 3GPP AuC DES GPRS GSM KC KDC MAC RAM RNC UE UMTS USIM W-CDMA NHÓM 16 Tiếng anh 3rd Generation Partnership Project Authentication Center Data Encryption Standard General Packet Radio Service Global Systems for Mobile Session Key Key Distribution Center Message Authentication Code Random Access Memory Radio Network Controller User Equipment Universal Mobile Telecommunication System UMTS Subscriber Identity Module Wideband Code Division Multiple Access Tiếng việt Đề án đối tác hệ ba Trung tâm nhận thực Chuẩn mật mã liệu Dịch vụ vô tuyến gói chung Hệ thống thông tin di động toàn cầu Khóa phiên Trung tâm phân phối khóa Mã nhận thực tin Bộ nhớ truy nhập ngẫu nhiên Điều khiển mạng vô tuyến Thiết bị người dùng Hệ thống thông tin di động toàn cầu Khối nhận dạng thuê bao Đa truy nhập phân chia theo mã băng rộng Page Thuật toán KASUMI DANH MỤC HÌNH VẼ NHÓM 16 Page Thuật toán KASUMI LỜI MỞ ĐẦU Thông tin di động ngày trở thành công nghiệp viễn thông phát triển nhanh mang lại nhiều lợi nhuận cho nhiều nhà khai thác Sự phát triển thị trường viễn thông di động thúc đẩy mạnh mẽ việc nghiên cứu triển khai hệ thống thông tin di động tương lai Các dịch vụ mạng thông tin di động ngày phong phú , dịch vụ thoại truyền thống, hệ thống thông tin di động đại cung cấp thêm nhiều loại hình dịch vụ số liệu khác với tốc độ cao Bên cạnh đó, vấn đề lớn hệ thống truyền thông vô tuyến di động đảm bảo tính bảo mật thông tin ng sử dụng Kiến trúc mạng thông tin di động, thế, thành phần nhằm thực truyền thông tin người dùng yêu cầu thêm thành phần khác để bảo mật thông tin Do đó, nhiều thuật toán bảo mật đời, thay nhằm đảm bảo tốt tính an toàn thông tin, giao diện vô tuyến bảo mật từ đầu cuối tới đầu cuối nay, đề tài thú vị thu hút nhiều quan tâm nhà nghiên cứu Các tính bảo mật quan trọng nhận thực, thỏa thuận khóa thuật toán mật mã, đảm bảo tính tin cậy cho số liệu người dùng báo hiệu, thỏa thuận khóa thuật toán đảm bảo tính toàn vẹn cho thông tin báo hiệu, thuật toán f8 dử dụng để đảm bảo tính tin cậy người dùng báo hiệu, thuật toán f9 sử dụng để đảm bảo tính toàn vẹn thông tin báo hiệu Cả hai thuật toán xây dựng sở khối mã hóa KASUMI có khả cài đặt phần cứng lẫn phần mềm Do báo cáo chúng em vào tìm hiểu thuật toán KASUMI Bài báo cáo chia làm chương Chương 1: Tổng quan giải thuật KASUMI Chương 2: Thuật toán KASUNI Chương 3: Ứng dụng thuật toán KASUMI NHÓM 16 Page Thuật toán KASUMI Do thời gian nghiên cứu có hạn kiến thức hạn chế nên không tránh khỏi sai sót, mong nhận ý kiến đóng góp thầy cô toàn thể bạn CHƯƠNG TỔNG QUAN VỀ GIẢI THUẬT KASUMI 1.1 Khái niệm KASUMI thuật toán mã hoá khối khoá đối xứng họ MISTY tập đoàn Mitsubishi Electronic nhiên cứu phát triển Sau ESTI phát triển thành tiêu chuẩn mã hoá quốc tế dùng cho hệ thống thông tin di động hệ Ba, sở công nghệ W-CDMA Mục đích nhằm thiết kế thuật toán có khả bảo mật chống lại công tuyến tính phi tuyến, nhỏ gọn (sử dụng cổng logic công suất tiêu thụ ít), dễ dàng cài đặt với hiệu cao phần cứng phần mềm KASUMI mật mã khối sử dụng mạng di động - Trong mạng 3G, KASUMI sử dụng thuật toán bảo mật (f8) toàn vẹn (f9) với tên UEA1 UIA1 tương ứng; - Trong mạng GSM, KASUMI sử dụng tạo dòng khoá A5/3; - Trong mạng GPRS, KASUMI sử dụng tạo khoá GEA3 Kasumi thiết kế cho 3GPP sử dụng hệ thống an ninh UMTS Algorithms nhóm chuyên gia (SAGE), phần quan tiêu chuẩn châu Âu ETSI Do áp lực tiến độ 3GPP tiêu chuẩn hóa, thay phát triển thuật toán mã hóa mới, SAGE đồng ý với 3GPP kỹ thuật nhóm đặc điểm kỹ thuật (TSG) mặt hệ thống an ninh 3G (SA3) làm sở cho phát triển thuật toán có mà trải qua số đánh giá Họ chọn thuật toán mật mã MISTY1 phát triển cấp sáng chế Mitsubishi Electric Corporation Các thuật toán ban đầu chút thay đổi cho phần cứng thực dễ dàng để đáp ứng yêu cầu khác thiết cho an ninh thông tin liên lạc di động 3G Kasumi đặt tên sau thuật toán ban đầu MISTY1 霞み (hiragana かす み , romaji kasumi ) Nhật nghĩa "sương mù” Cài đặt MISTY1 phần mềm viết ngôn ngữ assembly cho chạy vi xử lý Intel Pentium III (800MHz), chương trình mã hoá hoạt động với tốc độ đầu vào tối đa 230 Mbps Sử dụng xử lý CMOS 350 nm Mitsubishi NHÓM 16 Page Thuật toán KASUMI kiến trúc pipeline thuật toán, sử dụng 50 000 cổng, tăng tốc thuật toán lên đến 800 Mbps Còn yêu cầu tối thiểu hoá thuật toán, sử dụng phiên nhỏ gọn sử dụng hết 7600 cổng (với công nghệ bán dẫn CMOS) mã hoá liệu đạt tới tốc độ 72 Mbps Yêu cầu thuật toán mã hoá để đặc tả kỹ thuật ETSI mã hoá cho W-CDMA phải có khả cài đặt phần cứng với 10000 cổng 1.2 Các đặc điểm Mã hóa khối KASUMI cốt lõi chế đảm bảo tính toàn vẹn tin cậy tin mạng UMTS KASUMI mã hóa có cấu trúc Feistel, hoạt động khối liệu 64 bit điều khiển khóa mã dài 128 bit Do có cấu trúc Feistel, thuật toán KASUMI có đặc điểm sau: Kiến trúc tám vòng xử lý Đầu vào tin gốc đầu vào vòng Khối liệu mã hóa đầu vòng cuối Khóa mật mã K dùng để tạo tập khóa vòng (KLi, KOi, KIi) cho vòng i Mỗi vòng tính toán theo hàm khác nhau, phụ thuộc vào khóa vòng khác • Thuật toán đối xứng, dùng chung cho mã hoá giải mã • • • • • NHÓM 16 Page Thuật toán KASUMI CHƯƠNG KIẾNTRÚC CỦA GIẢI THUẬT KASUMI 2.1 Giới thiệu Hình 2.1 trình bày cấu trúc mã hóa khối KASUMI Có thể nhận thấy hàm f tính vòng i tạo từ hai hàm FLi FOi , phụ thuộc vào đầu vào vòng tập khóa vòng tương ứng Hình vẽ rõ cấu trúc bên hai hàm Hàm FL có cấu trúc đơn giản, bao gồm khối logic dịch bit đầu vào Hàm FO phức tạp có cấu trúc Feistel với ba vòng, vòng lại yêu cầu tính toán thêm hàm FI Thuật toán KASUMI khác theo vòng chẵn lẻ, vòng lẻ, hàm vòng đươc tính cách lấy kết tính từ hàm FL đặt vào hàm FO, vòng lẻ ngược lại, kết trước hết tính FO sau đưa tới FL FL hàm 32 bit bao gồm cổng AND, OR, NOT với chức quay trái Hàm FO hàm 32 bit phức tạp hơn, có cấu trúc Feistel ba vòng, vòng chứa khối FI FI khối phi tuyến 16 bit, tự có cấu trúc Feistel bốn vòng, FI bao gồm hai khối thay đổi (S-box) bit hai khối thay đổi bit Hình 1.1c liệu qua hàm FI theo hai đường khác nhau, đường ‘dày’ có bit đường mỏng có bit Chú ý cấu trúc Feistel, sử dụng thiết kế này, vòng có đầu xoay chiều trước đưa tới đầu vào vòng Sau hoàn thành đủ tám vòng theo thuật toán KASUMI, đầu cuối khối liệu mã hoá tương ứng với khối liệu đầu vào NHÓM 16 Page Thuật toán KASUMI (a) Cấu trúc Feistel (b) Hàm FO (c) Hàm FI (d) Hàm FL Hình Các cấu trúc thuật toán KASUMI NHÓM 16 Page Thuật toán KASUMI 2.2 Hàm FO Nguyên lý để thiết kế chia kiến trúc chung thành nhiều khối để sử dụng khối theo vòng kín Trong khối đó, đầu chu kỳ sử dụng làm đầu vào cho chu kỳ Càng khối thành phần chu phải cao để xử lý toàn khối liệu Tương tự vậy, muốn thiết kế thực chu kỳ yêu cầu chiếm nhiều tài nguyên Trong thiết kế này, ta chọn cách đơn giản hoá thuật toán mức thấp nhất, mức hàm FI, vận dụng khối để xây dựng lên mức cao hơn, mức hàm FO Hình 2.2 trình bày cấu trúc đường liệu hàm FO sử dụng nhiều lần khối thành phần FI Hình 2.3 trình bày chi tiết cấu trúc song song chuẩn ban đầu hàm FO tương ứng hình 2.1 Trong hình 2.1b, phần cao phần thấp bổ xung thêm cổng XOR mà không làm thay đổi chức hoạt động Nếu hai phần có cấu trúc giống sử dụng khối, giảm độ phức tạp nửa, toàn chức hàm FO thực hai chu kì • Phần thấp hình 2.1b cần thêm khối FI bên phải để có dạng tương tự phần hàm FO sửa đổi phần thấp bổ xung thêm khối FI hình 2.1c Các ghép phần cho phép lựa chọn xác luồng tín hiệu đầu vào • Toàn đường xử lý liệu đơn giản hoá hình 2.1c Hình 2.1d trình bày thiết kế cuối cùng, thực hàm FO hai chu kỳ đồng hồ Bởi liệu chu ký thứ với thứ hai khác nên cần phải có khối ghép kênh để lựa chọn xác giá trị đầu vào cho cổng XOR khối FI • Cũng lưu ý đường xử lý liệu hình 2.1d chứa khối FI, gọi khối dpFI, thay cho hai khối sơ đồ bên trên.Trường hợp giải thích chi tiết phần sau liên quan nhiều chức khác sử dụng thiết kế thuật toán Phần điều khiển cho khối thực theo kiểu máy trạng thái để thiết lập lựa chọn cho ghép kênh chọn đầu vào chu kỳ Do hàm FO thực hai chu ký đồng hồ nên khối điều khiển gồm hai trạng thái NHÓM 16 Page Thuật toán KASUMI Hình 2 Các bước thiết kế hàm FO sử dụng nhiều khối thành phần NHÓM 16 Page Thuật toán KASUMI 2.3 Hàm FI Hình 2.1c trình bày hàm FO yêu cầu hoạt động hai khối FI Khi FI chứa hai khối S-box bit S-box bit, cấu hình giản lược hai chu kỳ đồng hồ để thực xong chức năng, hàm FO yêu cầu tổng cộng tám khối S-box Giải pháp tiết kiệm tài nguyên đặt khối X-box khối RAM nội hai cổng, số lượng RAM yêu cầu giảm nửa Hình Đường xử lý số liệu hàm FI Xét khối FI hình 2.1c, sau thay cặp khối S-box khối khối S-box sử dụng RAM hai cổng, lặp lại thủ tục tất cặp SNHÓM 16 Page 10 Thuật toán KASUMI box bit bit lại Kết nhận đường xử lý liệu hình 4.9, kết hợp hai hàm FI làm một, chứa hai S-box bit - hai cổng hai S-box bit - hai cổng Cũng giống trên, đường kẻ đậm đường chuỗi tín hiệu bit đường kẻ nhỏ rõ đường tín hiệu có độ rộng bit Trong thiết kế có số điểm đáng ý sau : Trước hết, bốn nhớ RAM hai cổng sử dụng để cài đặt khối S-box nhằm xếp khối lên nhớ nội FPGA • Nói chung, nhớ nội đồng với nhau, FI yêu cầu cho kết chu kỳ đồng hồ nên S-box phần cao thiết kế để hoạt động sườn âm, khối S-box phần thấp hoạt động sườn dương tín hiệu đồng hồ, hình 2.3 • Cuối phải sử dụng số ghi suốt phần thiết kế, hình 2.3 khối tô màu xám, mục đích sử dụng ghi để đồng liệu đầu vào với giá trị cung cấp cho khối S-box phần cao phần thấp Trường hợp tương tự hoạt động đường xử lý liệu kiểu pipeline • Đường xử lý liệu hình 2.1d sử dụng ghi hoạt động sườn dương đồng hồ để đồng liệu đầu vào cho khối logic trước đưa tới đầu vào khối FI hai cổng.Thực vậy, tất tín hiệu đầu vào sử dụng khối FI hai chiều phải đồng với liệu ghi, hoạt động sườn dương sườn âm 2.4 S-box Hai S-box thiết kế để họ dễ dàng thực logic tổ hợp nhìn lên bảng Cả hai hình thức đưa cho bảng Các đầu vào x bao gồm bảy chín bit với số tương ứng bit đầu y Do có: x = x8 || x7 || x6 || x5 || x4 || x3 || x2 || x1 || x0 y = y8 || y7 || Y6 || y5 || y4 || y3 || y2 || y1 || y0 nơi x8, y8 x7, bit y7 áp dụng cho S9, x0 y0 bit bit quan trọng NHÓM 16 Page 11 Thuật toán KASUMI a.S7 Cổng logic y0 =x1x3⊕x4⊕x0x1x4⊕x5⊕x2x5⊕x3x4x5⊕x6⊕x0x6⊕x1x6⊕x3x6⊕x2x4x6⊕x1x5x6 ⊕x4x5x6 y1 =x0x1⊕x0x4⊕x2x4⊕x5⊕x1x2x5⊕x0x3x5⊕x6⊕x0x2x6⊕x3x6⊕x4x5x6⊕1 y2 =x0⊕x0x3⊕x2x3⊕x1x2x4⊕x0x3x4⊕x1x5⊕x0x2x5⊕x0x6⊕x0x1x6⊕x2x6⊕x4x6⊕1 y3 =x1⊕x0x1x2⊕x1x4⊕x3x4⊕x0x5⊕x0x1x5⊕x2x3x5⊕x1x4x5⊕x2x6⊕x1x3x6 y4 =x0x2⊕x3⊕x1x3⊕x1x4⊕x0x1x4⊕x2x3x4⊕x0x5⊕x1x3x5⊕x0x4x5⊕x1x6⊕x3x6 ⊕x0x3x6⊕x5x6⊕1 y5 =x2⊕x0x2⊕x0x3⊕x1x2x3⊕x0x2x4⊕x0x5⊕x2x5⊕x4x5⊕x1x6⊕x1x2x6⊕x0x3x6 ⊕x3x4x6⊕x2x5x6⊕1 y6 =x1x2⊕x0x1x3⊕x0x4⊕x1x5⊕x3x5⊕x6⊕x0x1x6⊕x2x3x6⊕x1x4x6⊕x0x5x6 Ví dụ: Nếu có giá trị đầu vào = 38, sau sử dụng bảng số thập phân S7 [38] = 58 Đối với tổ hợp logic có: 38 = 01001102 x6 = 0, x5=1, x4=0, x3=0, x2=1, x1=1, x0=0 y0 y1 y2 y3 y4 y5 y6 = = = = = = = 0⊕0⊕0⊕1⊕1⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0 = 0⊕0⊕0⊕1⊕1⊕0⊕0⊕0⊕0⊕0⊕1 = 0⊕0⊕0⊕0⊕0⊕1⊕0⊕0⊕0⊕0⊕0⊕1 = 1⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0 = 0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕1 = 1⊕0⊕0⊕0⊕0⊕0⊕1⊕0⊕0⊕0⊕0⊕0⊕0⊕1 = 1⊕0⊕0⊕1⊕0⊕0⊕0⊕0⊕0⊕0 = y = 01110102 = 58 b.S9 NHÓM 16 Page 12 Thuật toán KASUMI Cổng logic y0 = x0x2⊕x3⊕x2x5⊕x5x6⊕x0x7⊕x1x7⊕x2x7⊕x4x8⊕x5x8⊕x7x8⊕1 y1 = x1⊕x0x1⊕x2x3⊕x0x4⊕x1x4⊕x0x5⊕x3x5⊕x6⊕x1x7⊕x2x7⊕x5x8⊕1 y2 = x1⊕x0x3⊕x3x4⊕x0x5⊕x2x6⊕x3x6⊕x5x6⊕x4x7⊕x5x7⊕x6x7⊕x8⊕x0x8⊕1 y3 = x0⊕x1x2⊕x0x3⊕x2x4⊕x5⊕x0x6⊕x1x6⊕x4x7⊕x0x8⊕x1x8⊕x7x8 y4 = x0x1⊕x1x3⊕x4⊕x0x5⊕x3x6⊕x0x7⊕x6x7⊕x1x8⊕x2x8⊕x3x8 y5 = x2⊕x1x4⊕x4x5⊕x0x6⊕x1x6⊕x3x7⊕x4x7⊕x6x7⊕x5x8⊕x6x8⊕x7x8⊕1 y6 = x0⊕x2x3⊕x1x5⊕x2x5⊕x4x5⊕x3x6⊕x4x6⊕x5x6⊕x7⊕x1x8⊕x3x8⊕x5x8⊕x7x8 y7 = x0x1⊕x0x2⊕x1x2⊕x3⊕x0x3⊕x2x3⊕x4x5⊕x2x6⊕x3x6⊕x2x7⊕x5x7⊕x8⊕1 y8 = x0x1⊕x2⊕x1x2⊕x3x4⊕x1x5⊕x2x5⊕x1x6⊕x4x6⊕x7⊕x2x8⊕x3x8 Ví dụ : Nếu có giá trị đầu vào = 138, sau sử dụng bảng số thập phân S9 [138] = 339 Đối với tổ hợp logic có: 138 = 0100010102 x2=0, x1=1, x0=0 y0 y1 y2 y3 y4 y5 y6 y7 y8 = = = = = = = = = ⇒ x8 = 0, x7 = 1, x6 = 0, x5=0, x4=0, x3=1, 0⊕1⊕0⊕0⊕0⊕1⊕0⊕0⊕0⊕0⊕1 1⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕1⊕0⊕0⊕1 1⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕1 0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0 0⊕1⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0 0⊕0⊕0⊕0⊕0⊕1⊕0⊕0⊕0⊕0⊕0⊕1 0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕1⊕0⊕0⊕0⊕0 0⊕0⊕0⊕1⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕1 0⊕0⊕0⊕0⊕0⊕0⊕0⊕0⊕1⊕0⊕0 Như y= 1010100112 = 339 NHÓM 16 Page 13 = = = = = = = = = 1 0 1 Thuật toán KASUMI 2.5 Đường xử lý liệu logic vòng Mức logic vòng mức cấu trúc cao thuật toán KASUM (hình 2.4) Trong hai chu kỳ đầu, lấy liệu từ bên cách đặt tín hiệu điều khiển ghép kênh A B mức thấp, thực vòng lẻ cách đặt giá trị mức thấp cho ghép kênh C D Trong suốt 14 chu kỳ tiếp theo, liệu đầu chu kỳ hồi tiếp ngược trở lại đầu vào đường xử lý liệu Trong hai chu kỳ liên tiếp hàm FO, đầu vào đường xử lý liệu vào giống nên phải sử dụng ghi đệm đầu vào hai ghép kênh Dữ liệu đầu vào sau qua khối FO, có chứa khối dpFI, phải đồng sử dụng ghi đệm hình 2.2 Trong sơ đồ đường xử lý liệu logic vòng, ghi tô màu xám NHÓM 16 Page 14 Thuật toán KASUMI Hình Đường xử lý liệu khối logic vòng Tín hiệu điều khiển cho khối thực máy trạng thái để thiết lập lựa chọn cho ghép kênh chu kỳ khác Đường xử lý liệu logic vòng yêu cầu thực 16 chu kỳ đông hồ để hoàn thành trình mã hoá cho NHÓM 16 Page 15 Thuật toán KASUMI khối liệu Do đó, máy trạng thái gồm 16 trạng thái để điều khiển lựa chọn tương ứng 2.5 Lập thời gian biểu cho khoá mã Chương trình lập thời gian biểu cho khoá mã nhận khoá K 128 bit đầu vào để tạo khoá vòng KL (độ dài 32bit), KO (độ dài 48 bit) KI (độ dài 48 bit) sử dụng vòng Các hình vẽ trình bày cách sử dụng khoá khối chức Mỗi khoá vòng chia thành hai ba phần có độ dài 16 bit, phần chương trình lập thời gian biểu cho khoá tính toán trực tiếp để tạo Khoá ban đầu K chia thành tám phần có độ dài 16 bit gọi K i , 0

Ngày đăng: 01/07/2016, 12:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan