Xây dựng hệ thống quản lý chứng chỉ số dùng công nghệ IAIK và SSL

  • Số trang: 120 |
  • Loại file: PDF |
  • Lượt xem: 12 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI VŨ VĂN TRIỆU XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỔ SỬ DỤNG CÔNG NGHỆ IAIK VÀ SSL LUẬN VĂN TH.S CÔNG NGHỆ THÔNG TIN Ngưới hướng dẫn:PGS.TS Trịnh Nhật Tiến Hà Nội 2007 MỤC LỤC LỜI CẢM ƠN ..................................................................................................................... 4 CÁC THUẬT NGỮ VIẾT TẮT ......................................................................................... 5 MỞ ĐẦU ............................................................................................................................. 8 Chương 1. CÁC KHÁI NIỆM CƠ BẢN .......................................................................... 10 1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems) ................... 10 1.1.3 Hệ mã hóa RC2 ................................................................................................. 14 1.1.4. Hệ mã hóa RC4 ................................................................................................. 18 1.1.5. Hệ mã hóa IDEA ............................................................................................... 19 1.1.6. Giao thức trao đổi khóa .................................................................................... 22 1.2. HỆ MÃ HÓA KHÓA CÔNG KHAI....................................................................... 24 1.2.1. Khái niệm mã hóa công khai ............................................................................ 24 1.2.2. Hệ mã hóa RSA................................................................................................. 28 1.2.3. Các vấn đề liên quan đến hệ mã hóa RSA ....................................................... 30 1.3. GIAO THỨC SSL ................................................................................................... 32 1.3.1. Giới thiệu giao thức SSL .................................................................................. 32 1.3.2. Vị trí của tầng giao thức SSL ........................................................................... 33 1.3.3. Hoạt động của giao thức SSL ........................................................................... 34 Chương 2. VẤN ĐỀ CÔNG NGHỆ CỦA ...................................................................... 41 CƠ SỞ HẠ TÂNG MẬT MÃ KHÓA CÔNG KHAI ....................................................... 41 2.1. GIỚI THIỆU .......................................................................................................... 41 2.1.1. Khái niệm cơ sở hạ tầng mật mã khóa công khai. ........................................... 41 2.1.2. Tình hình sử dụng chứng chỉ khóa công khai................................................. 43 2.2. CHỨNG CHỈ KHÓA CÔNG KHAI ...................................................................... 50 2.2.1. Định dạng X.509 của chứng chỉ số ................................................................... 50 2.2.2. Đường chứng thực và sự tin tưởng .................................................................. 52 2.2.3. Các trường cơ bản của một chứng chỉ số......................................................... 52 2.2.3.1 Trường tbsCertificate ................................................................................. 53 2.2.3.2. Trường signatureAlgorithm ...................................................................... 54 2.2.3.3. Trường signatureValue ............................................................................. 54 2.2.3.4. Trường version .......................................................................................... 54 2.2.3.5. Trường serialNumber ............................................................................... 54 2.2.3.6. Trường signature ...................................................................................... 54 2.2.3.7. Trường issuer ............................................................................................ 55 2.2.3.8. Trường validity ......................................................................................... 56 2.2.3.9. Trường subject .......................................................................................... 56 2.2.3.10. Trường subjectPublicKeyInfo ................................................................. 56 2.2.4. Định dạng PEM của chứng chỉ số .................................................................... 57 2.2.5. Mô hình quản lý chứng chỉ số ......................................................................... 58 2.2.5.1. Đối tượng sử dụng ..................................................................................... 59 2.2.5.2. Thành phần CA.......................................................................................... 60 2.2.5.3. Thành phần RA......................................................................................... 60 2.2.5.4. Kho thông tin ............................................................................................ 61 2.2.5.5. CRL Ủy quyền........................................................................................... 61 2.2.6. Các chức năng quản lý chứng chỉ số .............................................................. 61 2 2.2.6.1. Đăng ký...................................................................................................... 61 2.2.6.2. Khởi tạo ..................................................................................................... 62 2.2.6.3. Chứng thực................................................................................................ 62 2.2.6.4. Phục hồi cặp khóa ..................................................................................... 62 2.2.6.5. Cập nhật cặp khóa .................................................................................... 62 2.2.6.6. Yêu cầu thu hồi ......................................................................................... 63 2.2.6.7. Chứng thực chéo ....................................................................................... 63 2.2.6.8. Các chức năng thêm .................................................................................. 63 2.2.7. Các giao thức quản lý chứng chỉ số ................................................................. 64 Chương 3. THỬ NGHIỆM XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ .. 65 3.1. TỔNG QUAN ......................................................................................................... 65 3.2. YÊU CẦU ................................................................................................................ 68 3.3. PHÂN TÍCH ........................................................................................................... 70 3.3.1. Hoạt động của hệ thống .................................................................................... 70 3.3.2. Xem xét hệ thống dưới góc độ khách hàng sử dụng ....................................... 71 3.3.3. Xem xét hệ thống dưới góc độ quản trị hệ thống............................................ 75 3.3.4. Hiện thực hoá hệ thống CA ............................................................................. 78 3.4. Công cụ hỗ trợ PKI :IAIK ..................................................................................... 80 3.4.1. Giới thiệu chung về IAIK ................................................................................. 80 3.4.2. Sử dụng IAIK xây dựng hệ thống .................................................................... 81 3.5 HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ ............................................................. 83 3.5.1. Mô hình phân cấp hệ thống .............................................................................. 84 3.5.2. Một số chức năng chính của hệ thống .............................................................. 85 3.5.2.1. Cấp mới ...................................................................................................... 85 3.5.2.2. Gia hạn hoặc thay thế ................................................................................ 86 3.5.2.3. Xem trạng thái yêu cầu .............................................................................. 87 3.5.2.4. Tìm kiếm, xem trạng thái và lấy chứng chỉ số .......................................... 87 3.5.2.5. Xem và cài đặt chuỗi chứng thực .............................................................. 88 3.5.2.6. Xem và cài đặt danh sách chứng chỉ số bị thu hồi .................................... 88 3.5.2.7 Đăng ký thu hồi ........................................................................................... 89 3.5.2.8 Quản trị hệ thống ........................................................................................ 89 KẾT LUẬN ....................................................................................................................... 91 TÀI LIỆU THAM KHẢO ................................................................................................ 92 PHỤ LỤC .......................................................................................................................... 93 3 CÁC THUẬT NGỮ VIẾT TẮT CA – Certification Authority Thực thể có thẩm quyền chứng thực, là thực thể duy nhất trong PKI có chức năng cấp chứng chỉ số. ASN.1 – Abstract Syntax Notation One Là một ngôn ngữ hình thức mô tả các thông điệp được trao đổi trong một phạm vi rộng giữa các các dụng trong môi trường Internet, mạng thông minh, mạng di động, thương mại điện tử… BER – Basic Encoding Rules Luật mã hóa cơ bản. Một luật mã hóa được sử dụng trong thập kỷ 80. Nó đơn giản, thô, những không có hiệu quả. CRL – Certificate Revocation List Danh sách các chứng chỉ số bị thu hồi hay không còn hợp lệ. DER – Distinguished Encoding Rules Luật mã hóa phân biệt. Luật mã hóa không có sự tùy chọn sẽ đơn giản, thô nhưng không có hiệu quả. Luật mã hóa DER diễn giải cả các thành phần tùy chọn, ví dụ: định nghĩa chiều dài hay không, lựa chọn các kiểu. Digital Certificate Chứng chỉ số, là một cấu trúc dữ liệu được sử dụng trong PKI để gắn các thông tin đã được xác thực của một đối tượng vào một khóa công khai của đối tượng đó. Nó có nhiều cách gọi khác: certificate, public key certificate. Digital Signature Chữ ký điện tử, là một kỹ thuật sử dụng mã khóa công khai cho phép không thể giả mạo một thông điệp. DSA – Digital Signature Algorithm Một thuật toán được sử dụng cho công nghệ chữ ký điện tử được định nghĩa bởi NIST. LDAP - Lightweight Directory Access Protocol LDAP là dịch vụ thư mục của IETF đã được dùng rộng rãi trên Internet. PEM - Privacy Enhanced Mail PEM là một chuẩn của Internet dùng để trao đổi bảo mật thư tín điện tử. 5 PKI – Public key Cryptography Infrastruture Cơ sở hạ tầng mã khóa công khai, là hệ thống sử dụng hệ mã khóa công khai cho việc chứng thực, đảm bảo bí mật và toàn vẹn thông tin. PKIX - Public key Cryptography Infrastruture X.509 Cơ sở hạ tầng mã khóa công khai dựa trên X.509 do một nhóm của IETF đưa ra để áp dụng PKI cho Internet. PKCS – Public key Cryptographic Standards Các chuẩn của mã hóa khóa công khai. Đây là các chuẩn do RSA Laboratories định nghĩa. Private Key Khóa riêng, một trong hai khóa trong cặp khóa trong hệ mã hóa bất đối xứng. Public Key Khóa công khai, khóa còn lại trong cặp khóa tương ứng với Private key. Message Digest Dạng băm của thông điệp. Phương pháp băm dữ liệu sử dụng các thuật toán một chiều, từ dữ liệ băm không thể xác định được dữ liệu gốc. Chiều dài của kết quả băm (tính bằng byte) là cố định đối với mỗi thuật toán băm. RA – Registration Authority Thực thể được CA ủy quyền quản lý việc đăng ký. RFC – Requests for Comments Là những công bố chính thức của mạng Internet , đươ ̣c sử du ̣ng từ năm 1969 để mô tả và tiế p thu những nhâ ̣n xét về các giao thức , thủ tục, chương triǹ h và các khái niệm . RSA Một trong hệ mã khóa công khai đầu tiên, được công bố vào năm 1983. RSA do 3 nhà khoa học Rivest, Shamir và Adleman tìm ra. X.500 Đây là chuẩn định nghĩa các dịch vụ thư mục, bao gồm cả chứng chỉ số. X.501 Định nghĩa các trường và giá trị tương ứng trong đăc tả dịch vụ thư mục. 6 X.509 Chuẩn định dạng chứng chỉ số, do ITU ban hành. Ciphertext Bản mã. Plaintext Bản rõ. IAIK Institute for Applied Information Processing and Communication : Cung cấp Crypto toolkit viết trên ngôn ngữ Java. 7 MỞ ĐẦU Cuộc cách mạng công nghệ thông tin. Sự ra đời và phát triển nhanh chóng của cuộc cách mạng công nghệ thông tin đã đem lại một năng lực phát triển mới cho xã hội. Mọi người sử dụng máy tính và tận hưởng thành quả của hệ thống truyền thông một cách vô thức để đạt được mục đích của mình mà hầu như không cảm nhận rõ rệt sự hiện hữu của chúng. Điều này khẳng định ảnh hưởng của cuộc cách mạng công nghệ thông tin là rất sâu đậm, và để lại dấu ấn trên từng hành vi của mỗi cá nhân hàng ngày, hàng giờ. Xã hội số hoá. Vai trò chủ đạo của mạng nói chung và Internet nói riêng là quá rõ ràng trong nền kinh tế thế giới mới. Trên nó, xã hội số hoá hay còn được biết dưới tên gọi không gian điều khiển đang hình thành và không ngừng lớn rộng dần. Trong thế giới ảo này, các phương tiện, nghi thức, quy ước, luật lệ của loài người đang dần được tái sáng tạo. An toàn bảo mật. Một trong những thách thức lớn nhất đối với sự mở rộng tầm ảnh hưởng của xã hội số hoá trong thời gian gần đây là vấn đề an toàn bảo mật. Nói nôm na là làm thế nào để ngăn ngừa các hành vi truy nhập bất hợp pháp hoặc chế ngự các loại tội phạm tin học (điều này có thể dự đoán trước bởi một xã hội không thể phát triển mà không dựa trên một nền tảng pháp luật). Chúng tồn tại dưới các dạng nguy cơ khác nhau, từ nghe trộm, sửa đổi trái phép thông tin cho đến giả mạo, gian lận thương mại... Đa phần các nguy cơ đều bắt nguồn từ bản chất phân tán của mạng Internet, nơi các thành viên tham gia không tiếp xúc vật lý trực tiếp với nhau (như trong thế giới thực) và thông tin giao dịch buộc phải lưu chuyển qua nhiều trạm trung chuyển không nằm trong sự kiểm soát của cá nhân. Đơn giản, ta tưởng tượng một giao dịch chuyển tiền trị giá 1.000.000$ chắc sẽ khó lòng được thực hiện qua mạng nếu không được đảm bảo là không ai có thể xâm nhập để sửa đổi hoặc nghe trộm thông tin. Như vậy, nhu cầu an toàn bảo mật trên kênh truyền tin là rất thiết thực và bức xúc, nó đã trở thành một vấn đề thời sự đòi hỏi giải quyết triệt để và có hệ thống. 8 Chứng chỉ số là một trong các công cụ để thực hiện an toàn và bảo mật trong hệ thống thông tin . Các mục tiêu chung của hệ thống bảo mật là đảm bảo:  Tính bí mật (Secrecy hay Confidential): Tài nguyên chỉ có thể được truy cập bởi người có thẩm quyền.  Tính toàn vẹn (Accuracy, Integrity, Authencity): Tài nguyên chỉ được sửa đổi bởi người có thẩm quyền.  Tính khả dụng (Avaiability): Tài nguyên (thông tin, dịch vụ) luôn được sẵn sàng đáp ứng cho người có thẩm quyền. Vì vậy việc xây dựng Hệ Thống Quản Lý Chứng Chỉ Số là rất cần thiết, quan trọng và tất yếu. Trên thế giới đã có rất nhiều tổ chức khác nhau xây dựng hệ thống này như Verisign, GlobalSign , RSASecurity… Do tính tất yếu cho nên việc xây dựng Hệ Thống Quản Lý Chứng Chỉ Số ở Việt Nam là vô cùng quan trọng nó đóng một trong những vai trò quyết định đối với sự phát triển công nghệ thông tin của nước nhà. Luận văn nghiên cứu xây dựng hệ thống quản lý chứng chỉ số dựa trên công nghệ SSL và IAIK. Đồng thời cũng đưa ra các giải pháp về công nghệ cho các ứng dụng thực tế liên quan đến chứng chỉ số. Luận văn bao gồm 3 chương: Chương 1: Trình bày về các khái niệm cơ bản: mã hóa đối xứng, mã hóa khóa công khai, giao thức SSL. Chương 2: Trình bày một số vấn đề về công nghệ của cơ sở hạ tầng mật mã khóa công khai. Chưong 3: Trình bày về việc thử nghiệm xây dựng hệ thống cung cấp và quản lý chứng chỉ số. 9 Chương 1. CÁC KHÁI NIỆM CƠ BẢN 1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems) 1.1.1. Khái niệm mã hóa khóa đối xứng. Để đảm bảo tính bí mật, các thông điệp trong kênh truyền tin cần phải được mã hoá. Mô hình về truyền tin có bảo mật có thể xem xét như sau: Người gửi Mã hóa Kênh truyền tin Người nhận Giải mã Hình 1-1. Mô hình truyền tin có bảo mật Cơ chế hoạt động: Người phát tin S muốn gửi một thông tin X tới người nhận R qua một kênh truyền tin, “đối tượng thứ 3” E có thể nghe trộm để lấy được thông tin X. S sử dụng một phép mã hoá thông tin X, để tạo ra đoạn mã Y khó có thể đọc được. Y đã che giấu nội dung của thông tin X. Khoá là thông số điều khiển của phép biến đổi này. Giải mã là quá trình ngược lại cho phép người nhận thu được thông tin ban đầu X từ đoạn mã Y. Nếu biết khóa lập mã, dễ dàng tính được khóa giải mã và ngược lại, hệ mã hoá khi đó gọi là hệ mã khoá đối xứng( trong một số hệ mã hóa khóa đối xứng, khóa lập mã và khóa giải mã là trùng nhau) 10 1.1.2. Hệ mã hóa DES (Data Encryption Standard) Chuẩn mã hoá dữ liệu DES do hãng IBM đề xuất năm 1974 gây tiếng vang lớn và nhanh chóng được sử dụng rộng rãi, đến năm 1977 được chấp nhận là chuẩn liên bang Mỹ. Với DES dữ liệu được mã hoá theo từng khối 64-bits sử dụng khoá 56-bits. Thuật toán chuyển đổi 64-bits đầu vào qua một dãy các bước và đưa ra 64-bits mã hoá. Sơ đồ mã hóa DES: Việc mã hoá trong DES được thực hiện theo các pha với hai đầu vào Dữ liệu cần mã hoá và khoá. Dữ liệu vào phải là các khối 64-bits và khoá là 56-bits (thực tế 64 bits khoá được đưa vào hàm xử lý, tuy nhiên chỉ có 56 bits được sử dụng cho mã hoá và 8 bits còn lại sử dụng cho parity kiểm tra chẵn lẻ). 64-bits bản tin rõ (plaintext) được đưa qua một cơ chế hoán vị ban đầu (IP- initial permutation) sau đó chúng phải đi qua 16 vòng lặp với cùng chức năng bao gồm cả hàm hoán vị và thay thế. Sau 16 vòng lặp thu được 64-bits dữ liệu là tổ hợp của bản tin rõ và khóa và phải qua đổi chỗ 32-bit, tiếp theo là hoán vị ngược (IP1 ) với hoán vị ban đầu để được bản mã. 56 – bit key Hoán vị chọn 1 64-bit plaintext Hoán vị ban đầu Dịch trái Lặp 1 Hoán vị chọn 2 Dịchtrái Lặp 2 Hoán vị chọn 2 Dịch trái Lặp 16 Hoán vị chọn 2 Dịch trái Đổi chỗ 32 -bit Hoán vị ngược Hình 1-2. Mã hóa trong DES 64-bit ciphertext 11 Trường hợp truyền không bị lỗi Key 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 DES Mã hoá Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011 00100011 10100111 Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011 00100011 10100111 DES Giải mã Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 12 Trường hợp truyền bị lỗi Key 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 DES Mã hoá Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011 00100011 10100111 Truyền lỗi Bit bị lỗi Ciphertext:10011000 10100110 01001001 11101001 11000001 10110011 00100011 10100111 DES Giải mã Plaintext: 00110101 10010101 10001101 11010011 11100110 00111100 01101100 01000011 Ta thấy rằng, chỉ sai số 1 bit ciphertext trong quá trình truyền, dữ liệu giải mã đã khác hoàn toàn plaintext ban đầu. Điều này tuy gây một số phức tạp trong quá trình hiệu chỉnh lỗi, nhưng lại là ưu điểm của cơ chế mã hoá DES bởi vì nếu một thay đổi nhỏ trong ciphertext dẫn đến một thay đổi nhỏ trong plaintext, thì sẽ dễ tìm được một thủ tục để làm vô hiệu hoá quá trình. Hệ mã hoá DES đạt được những yêu cầu sau đối với mật mã khối: Confusion (Hỗn loạn): Sự phụ thuộc của mã đối với tin phải thật phức tạp để gây rắc rối hỗn loạn đối với các đối tượng có ý định tìm qui luật để phá mã. Quan hệ của mã với tin là phi tuyến. Diffusion (khuyếch tán): Làm khuyếch tán văn bản mang tính thống kê. Như vậy đối tượng thứ 3 khó có thể phá mã nhờ dựa vào các mẫu có tần suất lặp cao. 13 1.1.3 Hệ mã hóa RC2 Hệ mã hóa RC2 là hệ mã hoá khối với các khối đầu vào và đầu ra có độ dài 64 bits, tốc độ mã hoá nhanh gấp hai lần thuật toán mã hoá chuẩn DES (với giả thiết thao tác mở rộng khoá đã được thực hiện). Đặc điểm nổi bật của RC2 làm cho nó được sử dụng rộng rãi là kích thước khoá vào biến đổi (từ 1 đến 128 byte), đây chính là một trong những yêu cầu quan trọng của các ứng dụng mã hoá áp dụng trong thương mại hiện nay. Chính vì những đặc điểm nổi bật được hướng tới ngay từ khi thiết kế này mà RC2 được khuyến nghị thay thế hệ mã hoá chuẩn DES và đã trở thành chuẩn trong mã hoá thông điệp S/MIME. Hoạt động của RC2 gồm 3 bước. Bước 1 : Mở rộng khoá. Do kích thước của khoá biến đổi trong khoảng từ 1 đến 128 byte, nên trước khi sử dụng để mã hoá và giải mã cần phải có thao tác chuẩn hoá khoá gọi là mở rộng khoá (Key Expansion). Trước khi mô tả hoạt động của thuật toán mở rộng khoá, ta quy ước một số ký hiệu. Ở đây ta nhìn bộ đệm khoá mở rộng theo byte và theo word. - Nhìn theo byte, ta ký hiệu bộ đệm khoá là mảng byte L có kích thước 128 byte từ L[0] tới L[127]. - Nhìn theo word, ta ký hiệu bộ đêm khoá là K có kích thước 64 word từ K[0] tới K[63]. Chú ý ở đây ta sử dụng ký hiệu mảng K và L cùng chỉ tới bộ đệm khoá vào, do đó ta có : K[i] = L[2*i] + 256*L[2*i+1] Giả thiết độ dài của khoá là T byte, với 1 ≤ T ≤ 128. Thuật toán mở rộng khoá đặt T byte khoá vào bộ đệm khoá từ L[0] tới L[T-1]. Ký hiệu số bit có hiệu lực của khoá vào là T1, số byte đầu vào có hiệu lực là T8 =  T1 / 8 và mặt nạ bit TM được tính theo công thức: TM = 255 mod 2 8(1-T8)+T1. 14 Thuật toán như sau: 1. for i = T, T+1, ...127 do L[i] = PITABLE[(L[i-1]+L[i-T]) MOD 255] 2. L[128-T8] = PITABLE[L[128-T8] AND TM] 3. for i = 127 - T8, ..., 0 do L[i] = PITABLE[L[i+1] XOR L[i+T8]] Trong đó PITABLE là một mảng 256 byte ngẫu nhiên, hoán vị của các giá trị từ 0 tới 255. Sau thuật toán mở rộng khoá, mảng K chứa 64 word sử dụng trong quá trình mã hoá và giải mã. 15 Bước 2 : Mã hoá. Mã hoá được thực hiện bởi hai thao tác cơ bản là "mix" và "mash". R là mảng 4 word, R[0] ... R[3] là bộ đệm dữ liệu với quá trình mã hoá nó được khởi tạo bản rõ (plaintext) quá trình mã hoá được thao tác trên mảng R, kết quả bản mã cũng được lưu trữ trong mảng R. a) Các bước mix và mash được định nghĩa như sau:  Mix up R[i]: R[i] = R[i]+K[j] + (R[i-1] AND R[i-2]) + (NOT(R[i-1]) AND R[i3]); j = j+1; R[i] = R[i] rol s[i]; Trong đó các chỉ số của mảng R và s luôn được thực hiện modulo 4 : R[i] = R[i MOD 4], s[i] = s[i MOD 4] mảng có s[0] = 1; s[1] = 2; s[2] = 3; s[3] = 5;  Mixing round: Mix up R[0], Mix up R[1], Mix up R[2], Mix up R[3]  Mash R[i]: R[i] = R[i] + K[R[i-1] AND 63];  Mashing round: Mash R[0], Mash R[1], Mash R[2], Mash R[3] b) Mã hoá được thực hiện như sau: 1. Khởi tạo mảng R[0], ..., R[3] chứa khối 64 bit bản rõ. 2. Mở rộng khoá tạo mảng khoá mở rộng K[0], ..., K[63]. 3. Khởi tạo j = 0. 4. Thực hiện 5 lần Mixing round. 5. Thực hiện 1 lần Mashing round. 6. Thực hiện 6 lần Mixing round. 7. Thực hiện 1 lần Mashing round. 8. Thực hiện 5 lần Mixing round. 9. Bản mã trong mảng R[0], ..., R[3]. 16 Bước 3: Giải mã. Giải mã thực hiện các thao tác ngược với quá trình "mix", "mash" trong quá trình mã hoá, được ký hiệu lần lượt là "R-mix" và "R-mash". a) Các bước R-mix và R-mash thực hiện như sau:  R-Mix up R[i]: R[i] = R[i] ROR s[i]; R[i] = R[i]-K[j]-(((R[i-1] AND R[i-2]))-(NOT(R[i-1]) AND R[i3])); j = j-1;  R-Mixing round: R-Mix up R[3], R-Mix up R[2], R-Mix up R[1], R-Mix up R[0]  R-Mash R[i]: R[i] = R[i] - K[R[i-1] AND 63];  R-Mashing round: R-Mash R[3], R-Mash R[2], R-Mash R[1], R-Mash R[0] b) Giải mã được thực hiện như sau: 1. Khởi tạo mảng R[0], ..., R[3] chứa 64 bit bản mã. 2. Mở rộng khoá tạo mảng K[0], ..., K[63]. 3. Khởi tạo j = 63. 4. Thực hiện 5 lần r-mixing round. 5. Thực hiện 1 lần r-mashing round. 6. Thực hiện 6 lần r-mixing round. 7. Thực hiện 1 lần r-mashing round. 8. Thực hiện 5 lần r-mixing round. 9. Bản rõ chứa trong mảng R[0], ..., R[3]. 17 1.1.4. Hệ mã hóa RC4 RC4 là hệ mã hoá dòng, dữ liệu có độ dài khoá biến đổi, được phát triển vào năm 1987 bởi Ron Rivest, được đánh giá là nhanh gấp 10 lần thuật toán DES, dễ thiết kế và cài đặt. RC4 làm việc ở chế độ OFB (Output Feedback Mode). RC4 sử dụng 8x8 S-box từ S0 tới S255. Các S-box khởi tạo như sau: for i = 0 to 255 do S(i) = i; j = 0; for i = 0 to 255 do begin j = (j+S(i)+K(i)) mod 256; swap S(i) and S(j); end; Trong đó K là mảng 256 byte K[0], ..., K[255] được điền đầy bằng khoá vào lặp đi lặp lại. Mỗi byte trong luồng dữ liệu lần lượt được mã hoá (giải mã) như sau: Khởi tạo i = 0; j = 0. Tạo số ngẫu nhiên: i = (i+1) mod 256; j = (j+Si) mod 256; swap Si and Sj t = (Si+Sj) mod 256 K = St. K XOR với bản rõ thì tạo ra bản mã, K XOR với bản mã thì tạo ra bản rõ. 18 1.1.5. Hệ mã hóa IDEA IDEA được xem là hệ mã hoá khối mạnh nhất hiện nay, nó thao tác trên các khối 64 bit bản rõ. Kích thước khoá vào là 128 bit, sử dụng cùng thuật toán để mã hoá và giải mã. Thuật toán hoạt động dựa trên sự kết hợp của ba nhóm các phép biến đổi đại số. Các phép biến đổi đại số này dễ cài đặt cả về phần cứng lẫn phần mềm, đó là các phép biến đổi: +XOR. +Cộng theo module 216. +Nhân theo module 216+1. (Thao tác này có thể xem như S-box của IDEA). Sơ đồ hệ mã hóa IDEA Hình 1-3 mô tả hoạt động của IDEA. 128 bit khoá vào được chia thành các khối khoá con 16 bit, mỗi khối 64 bit dữ liệu đầu vào được chia thành 4 khối con 16 bit X1, X2, X3 và X4, các khối 16 bit con này trở thành đầu vào cho vòng đầu tiên của thuật toán. Có tổng cộng 8 vòng, tại mỗi vòng 4 khối con 16 bit này được XOR, cộng, nhân với nhau và với 16 bit khoá con. Giữa các vòng các khối 16 bit con hai và ba được hoán đổi. Cuối cùng, 4 khối bit con được kết hợp với các khoá con ở đầu ra. 19 Hình 1-3. Sơ đồ IDEA 20 1. Nhân X1 với khoá con thứ nhất. 2. Cộng X2 với khoá con thứ hai. 3. Cộng X3 với khoá con thứ ba. 4. Nhân X4 với khoá con thứ 3. 5. XOR kết quả của bước 1 và bước 3. XOR kết quả của bước 2 và bước 4. 6. Nhân kết quả của bước năm với khoá con thứ 5. 7. Cộng kết quả của bước 6 và bước 7. 8. Nhân kết quả của bước 8 với khoá con thứ 8. 9. Cộng kết quả của bước 7 và 9. 10. XOR kết quả của bước 1 và 9. 11. XOR kết quả của bước 3 và 9. 12. XOR kết quả của bước 2 và 10. 13. XOR kết quả của bước 4 và 10. Sau 8 vòng (thực hiện 13 bước) như trên, thực hiện tiếp: 1. Nhân X1 với khoá con thứ nhất. 2. Cộng X2 với khoá con thứ hai. 3. Cộng X3 với khoá con thứ ba. 4. Nhân X4 với khoá con thứ tư. Các khối con được nối lại với nhau để tạo thành bản mã. Các khoá con được tạo ra từ 128 bit khoá K ban đầu. K được chia thành 8 khối 16 bit khoá con, 128 bit khoá được quay trái 25 bit và lại chia thành 8 khoá con. 21
- Xem thêm -