Nghiên cứu một số công nghệ xác thực

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

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

Mô tả:

1 BẢNG VIẾT TẮT AES Advanced Encryption Standard CA Certification Authority CBC Cipher Block Chaining CFB Cipher Feedback DES Data Encryption Standard DSA Digital Signature Algorithm ECB Electronic Codebook EM Encoded Message EMSA Encoding Method for Signatures with Appendix I2OSP Integer-to-Octet-String Primitive IV Initialization Vector MAC Message Authentication Code OFB Output Feedback OS2IP Octet-String-to-Integer Primitive PKCS Public-Key Cryptography Standards PSS Probabilistic Signature Scheme RSASP1 RSA Signature Primitive 1 RSASSA RSA Signature Scheme with Appendix RSAVP1 RSA Verfication Primitive 1 SHA-1 Secure Hash Algorithm 1 SSL Secure Socket Layer 2 MỞ ĐẦU Giao tiếp là một phần quan trọng của cuộc sống, nó đánh dấu quá trình phát triển của loài người. Hình thức giao tiếp truyền thống là nói chuyện trực tiếp, gửi thư qua bưu điện, giao tiếp bằng điện thoại. Các hình thức giao tiếp truyền thống này đã tồn tại trong một khoảng thời gian dài và các điều khoản đặc biệt được tạo ra để mọi người có thể giao tiếp với nhau theo một cách an toàn. Giao tiếp trực tiếp, người này có thể nhận ra các đặc điểm vật lý của người kia, hoặc họ có thể so sánh các chữ ký được viết bằng tay cùng với các tài liệu liên quan khác (như thẻ căn cước). Việc bắt chước tất cả các đặc điểm vật lý của một người là rất khó. Giao tiếp bằng điện thoại, người ta có thể nhận ra nhau qua giọng nói. Ngày nay giao tiếp trên Internet là hình thức giao tiếp mới, bản chất của hình thức giao tiếp này khác với các hình thức giao tiếp truyền thống, đó là các nhóm tham gia giao tiếp không có sự liên lạc “vật lý”. Họ không nhìn thấy nhau, không nghe được giọng nói của nhau. Do vậy cần phải áp dụng các quy tắc, công nghệ để bảo đảm giao tiếp của mọi người trên Internet được an toàn và thông suốt. Vì vậy trong luận văn này, tôi sẽ tìm hiểu một số vấn đề về giải pháp và công nghệ “nhận dạng” giữa các đối tác trên mạng Internet. Các khái niệm toán học, độ phức tạp, ... được xem như đã biết. Luận văn này gồm 4 chương:  Chương 1: Các khái niệm cơ bản. Đề cập tới một số khái niệm cơ bản trong an toàn thông tin như: mã hoá, chữ ký số, tóm lược thông điệp, xác thực...  Chương 2: Giao thức SSL. Giới thiệu về giao thức SSL, những khái niệm cơ bản và nguyên tắc hoạt động chung của giao thức SSL.  Chương 3: Sơ đồ chữ ký RSASSA-PSS và chương trình OpenSSL. Tìm hiểu sơ đồ chữ ký RSASSA-PSS và chương trình OpenSSL.  Chương 4: Thử nghiệm ứng dụng. Xây dựng chương trình ứng dụng theo mô hình truyền tin Client/Server có bảo mật, sử dụng sơ đồ chữ ký RSASSAPSS và thuật toán mã hoá DES. 3 Chƣơng 1. CÁC KHÁI NIỆM CƠ BẢN 1.1. MỘT SỐ VẤN ĐỀ AN TOÀN BẢO MẬT THÔNG TIN. Ngày nay việc giao tiếp trên Internet là rất phổ biến và do vậy tính an toàn trong giao tiếp là rất cần thiết. Giả sử Alice muốn gửi một thông điệp tới ngân hàng của cô với yêu cầu chuyển tiền. Alice muốn thông điệp đó phải bí mật, bởi vì thông điệp này chứa một số thông tin quan trọng như số tài khoản và số lượng tiền cần chuyển. Giải pháp là sử dụng thuật toán mã hoá, cho phép chuyển thông điệp của Alice thành một dạng đã được mã hoá, và chỉ những người có khoá giải mã mới đọc được. Một thuật toán mã hoá tốt phải đảm bảo thông điệp khó có thể bị những kẻ tấn công giải mã để thu lại văn bản rõ. Có hai loại thuật toán mã hoá đó là mã hoá khoá đối xứng và mã hoá khoá phi đối xứng. Mã hoá khoá đối xứng yêu cầu bên gửi và bên nhận thông điệp cùng sử dụng chung một khoá, một thông tin bí mật được sử dụng để lập mã và giải mã. Chỉ có người gửi và người nhận biết được khoá bí mật này. Như vậy nếu Alice và ngân hàng có một khoá bí mật thì họ có thể gửi các thông điệp bí mật cho nhau. Mã hoá khoá phi đối xứng hay mã hoá khoá công khai sử dụng cặp khoá, một khoá được sử dụng để mã hoá thông điệp và khoá còn lại được sử dụng để giải mã thông điệp. Khóa dùng để mã hoá thông điệp được công bố công khai, gọi là khoá công khai (public key). Khoá dùng để giải mã thông điệp sẽ được giữ bí mật, gọi là khoá bí mật (private key). Bất kỳ ai cũng có thể sử dụng khoá công khai để mã hoá thông điệp, nhưng chỉ người sở hữu khoá bí mật mới có thể đọc được. Theo cách này Alice gửi thông điệp bí mật tới người sở hữu cặp khoá (ngân hàng) bằng cách mã hoá thông điệp đó và chỉ có ngân hàng mới có thể giải mã. Mặc dù Alice có thể mã hoá thông điệp để đảm bảo tính bí mật. Tuy nhiên một ai đó có thể sửa đổi thông điệp của Alice hoặc thay thế bằng thông điệp khác để ngân hàng chuyển tiền tới chính họ. Một cách để đảm bảo tính toàn vẹn thông điệp ban đầu của Alice là tạo ra tóm lược thông điệp gốc, và gửi bản tóm lược này tới ngân hàng. Dựa vào thông điệp 4 gốc nhận được, ngân hàng tạo ra tóm lược thông điệp và so sánh với bản tóm lược mà Alice gửi. Nếu chúng phù hợp thì thông điệp nhận được là còn nguyên vẹn. Bản tóm lược thông điệp còn gọi là đại diện thông điệp (message digest – MD), là một biểu diễn ngắn gọn, có độ dài cố định từ các thông điệp có độ dài lớn. Thuật toán tóm lược (digest algorithm) sẽ tạo ra tóm lược duy nhất cho một thông điệp. “Khó” có thể xác định thông điệp gốc từ bản tóm lược của nó. “Khó” có thể tìm ra hai thông điệp khác nhau mà tạo ra cùng một tóm lược. Một thách thức khác mà Alice phải đối mặt là tìm cách để gửi bản tóm lược tới ngân hàng một cách an toàn. Khi nào công việc này hoàn tất thì việc toàn vẹn của thông điệp mới được đảm bảo. Điều này được thực hiện bằng cách gửi bản tóm lược cùng với chữ ký số trên bản tóm lược đó. Khi Alice gửi một thông điệp tới ngân hàng, họ cần phải biết chắc chắn rằng thông điệp này thực sự được gửi từ Alice, và không phải là từ người khác. Một chữ ký số, được Alice tạo ra và gộp vào trong thông điệp để phục vụ cho mục đích trên. Các chữ ký số được tạo ra bằng cách sử dụng khoá bí mật (của người gửi) mã hoá tóm lược thông điệp. Bất kỳ ai cũng có thể giải mã chữ ký bằng khoá công khai, nhưng chỉ có người ký mới biết được khoá bí mật. Gộp tóm lược thông điệp trong chữ ký đó, có nghĩa là chữ ký này chỉ có ích đối với thông điệp đó, nó sẽ đảm bảo tính toàn vẹn của thông điệp bởi vì không ai có thể thay đổi tóm lược thông điệp. Mặc dù Alice có thể gửi một thông điệp bí mật tới ngân hàng, thực hiện ký thông điệp đó, và đảm bảo tính toàn vẹn của thông điệp, Alice vẫn cần phải biết chắc chắn rằng đang giao tiếp với ngân hàng. Điều này có nghĩa là Alice cần đảm bảo khoá công khai mà Alice đang sử dụng, phải tương ứng với khoá bí mật của ngân hàng. Tương tự như vậy, ngân hàng cần phải xác định chữ ký trên thông điệp, là chữ ký của Alice. Nếu mỗi bên có chứng chỉ công nhận danh tính của người khác, xác nhận khoá công khai của họ và được ký bởi trung tâm có quyền chứng thực, thì cả hai có thể tin tưởng lẫn nhau trong giao tiếp. Mỗi bên sử dụng khoá công khai của trung tâm xác thực để xác định chứng chỉ của bên kia và sau đó tin chắc về tính xác thực của khoá công khai. 5 Trung tâm xác thực được gọi là Certification Authority (CA), thực hiện ký chứng chỉ bằng khoá bí mật của mình, và bên giao tiếp xác nhận chứng chỉ bằng cách sử dụng khoá công khai tương ứng với khoá bí mật của CA đã dùng để ký. 1.2. VẤN ĐỀ MÃ HOÁ. 1.2.1. Khái niệm về mã hoá. Mã hoá được sử dụng để bảo vệ tính bí mật của thông tin. Giả sử người gửi A muốn gửi một văn bản p đến người nhận B. Để bảo mật A lập cho p bản mã c. Thay cho việc gửi p, A gửi cho B bản mã c, B nhận được c và giải mã c để thu lại được văn bản p như A đã gửi. Để A biến p thành c và B biến ngược lại c thành p , A và B phải thỏa thuận trước với nhau thuật toán lập mã và giải mã, một khóa mật mã chung K. Người ngoài, không biết các thông tin đó (đặc biệt không biết khóa K), cho dù có lấy trộm được c trên kênh truyền thông công cộng, cũng khó có thể tìm được văn bản p mà hai người A, B muốn gửi cho nhau. 1.2.2. Hệ mã hoá khoá đối xứng. 1.2.2.1. Khái niệm. Sơ đồ hệ mã hoá khoá đối xứng là một bộ năm: S = (P, C, K, E, D) thỏa mãn các điều kiện sau đây: P là tập hữu hạn bản rõ. C là tập hữu hạn bản mã. K là tập hữu hạn các khóa. Với mỗi kK tồn tại quy tắc lập mã ekE và quy tắc giải mã tương ứng dkD. Mỗi ek : P --> C và dk : C -->P thoả mãn dk(ek(x))=x với mỗi bản rõ xP. Như vậy cứ mỗi lần truyền tin bảo mật, người gửi A và người nhận B phải cùng thỏa thuận trước với nhau một khóa chung k, sau đó người gửi dùng ek để lập mã cho thông điệp gửi đi, và người nhận dùng dk để giải mã bản mã nhận được. Hệ mã hoá với cách sử dụng đó là mã hoá khóa đối xứng. Một số hệ mã hoá khoá đối xứng như:  Advanced Encryption Standard (AES). 6  Data Encryption Standard (DES).  Triple Data Encryption Standard (3DES). Sau đây tôi xin giới thiệu hệ mã hoá DES. 7 1.2.2.2. Hệ mã hoá DES. Hệ mã hoá DES là hệ mã hoá theo khối, mỗi khối bản rõ là từ 64 bít, và khối bản mã cũng là từ 64 bít. Mỗi khoá K của DES là một từ 56 bít. Với mỗi khoá K và bản rõ x , quá trình lập mã diễn ra như sau: Đầu tiên, thực hiện phép hoán vị ban đầu IP, từ x 64 bít sẽ biến thành từ mới IP(x), từ này được chia thành hai nửa L0 và R0 , mỗi nửa là một từ 32 bít. Sau đó thực hiện tiếp 16 lần những phép toán giống nhau để nhận được các cặp (L1, R1 ), ...., (L16, R16 ). Cuối cùng dùng phép hoán vị nghịch đảo IP -1 cho từ đảo ngược R16L16, sẽ được bản mã y tương ứng. Sơ đồ khái quát của phép lập mã được mô tả bởi hình vẽ sau: 8 Bản rõ x IP L0 R0 f K1 Thuật toán G tạo các khoá K1,....., K16 từ khoá K + L1 R1 f K16 + L16 R16 1 IP- Bản mã y Hình 1.1 Sơ đồ khái quát lập mã DES 9 IP là phép hoán vị vị trí của các ký tự trong mỗi từ 64 bít, từ vị trí 1 đến vị trí 64. Bảng dưới đây cho phép hoán vị IP, với cách hiểu là bít thứ nhất của IP(x) là bít thứ 58 của từ x, bít thứ hai của IP(x) là bít thứ 50 của x, ... Bảng của phép hoán vị IP -1 cũng được hiểu tương tự. IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 IP -1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 10 Sơ đồ hàm f: Đầu vào là hai từ R có 32 bít và K có 48 bít. Đầu ra là từ f (R, K ) có 32 bít, được xác định theo sơ đồ sau: K (48 bit) R (32 bit) E E (R) 48 bit + B1 B2 B3 B4 B5 B6 B7 B8 S1 S2 S3 S4 S5 S6 S7 S8 C1 C2 C3 C4 C5 C6 C7 P f (R,K ) 32 bit Hình 1.2 Sơ đồ hàm f C8 Mỗi Bi là một từ 6 bít Mỗi Ci là một từ 4 bít 11 Trong sơ đồ hàm f, E là phép hoán vị “mở rộng” theo nghĩa là nó biến mỗi từ R 32 bít thành từ E(R) bằng cách hoán vị 32 bít của R, nhưng có một số cặp bít được lặp lại để E(R) thành một từ có 48 bít. Phép hoán vị “mở rộng” cho bởi bảng sau: Phép hoán vị “mở rộng” E 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Theo đó, mỗi từ R = a1a2a3......a32 sẽ biến thành từ E (R) = a32 a1a2a3a4a 5a4a 5a6a7a8a9a8a9 .......a32a1. Tiếp theo E(R) sẽ được cộng (từng bít theo mod 2) với K, được một từ 48 bít, chia thành 8 đoạn B1, ..., B8. Mỗi hộp S i (i = 1, ..., 8) là một phép thay thế, biến mỗi từ Bj (6 bít) thành một từ Cj (4 bít). Các hộp Si được cho bởi các bảng dưới đây với cách hiểu như sau: Mỗi từ Bj = b1b2b3b4b5b6 ứng với một vị trí (r, s) ở hàng thứ r và cột thứ s trong bảng. Các hàng được đánh số từ 0 đến 3 ứng với biểu diễn nhị phân b1b6 . Các cột được đánh số từ 0 đến 15 ứng với biểu diễn nhị phân b2b3b4b5 . Giá trị của Si(Bj ) = Cj = c1c2c3c4 là một từ 4 bít, biểu diễn nhị phân của số tại hàng r cột s trong bảng. Ví dụ S1(011011) = 0101, S2(011011) = 1010, ... 12 S1 14 4 13 1 0 15 7 4 14 2 13 1 10 4 1 14 8 13 6 2 11 15 12 9 2 9 1 7 15 12 8 2 15 11 4 8 3 10 6 12 5 9 0 7 6 12 11 9 5 3 8 3 10 5 0 7 5 11 3 14 10 0 6 13 9 7 2 13 12 0 1 10 6 9 11 5 6 9 3 7 12 0 5 14 9 S2 15 1 8 14 3 13 4 6 11 7 15 0 14 7 11 10 13 8 10 1 3 2 3 4 8 14 12 0 4 13 1 15 2 11 6 4 5 8 12 5 10 2 15 S3 10 0 9 14 6 3 15 13 7 0 9 3 4 13 6 4 9 8 15 1 10 13 0 6 9 5 1 13 12 6 10 7 11 4 2 8 15 1 2 8 5 14 12 11 3 0 11 1 2 12 8 7 4 15 14 5 3 10 14 7 11 5 2 12 5 11 12 4 15 S4 7 13 14 3 0 6 13 8 11 5 6 15 10 6 9 0 12 11 3 15 0 6 10 9 10 1 2 8 0 4 7 2 12 1 10 14 9 7 13 15 1 3 14 5 2 8 4 3 1 13 8 9 4 5 11 12 7 2 14 3 15 13 0 14 9 3 9 8 6 S5 2 12 4 1 14 11 2 12 4 2 1 11 8 12 7 7 10 11 6 8 5 4 1 5 0 15 10 7 13 11 10 13 1 14 7 8 15 9 12 5 6 3 0 14 2 13 6 15 9 10 4 5 0 3 13 S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S7 4 11 2 14 15 8 13 3 12 13 0 11 4 9 1 10 14 1 4 11 13 12 3 7 14 10 15 6 11 13 7 0 8 1 4 10 7 3 9 7 5 10 6 1 5 12 2 15 8 6 0 5 9 2 3 12 6 8 9 5 0 15 14 2 1 10 9 3 14 5 0 12 4 12 5 6 11 0 14 2 6 10 13 15 S8 13 2 8 4 6 15 11 1 15 13 8 10 7 11 4 1 9 12 14 1 14 7 4 10 2 3 7 0 8 13 15 12 9 0 3 7 9 2 3 5 8 5 6 11 Phép hoán vị P trong sơ đồ của hàm f được cho bởi bảng sau: P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 3 9 19 13 30 6 32 27 22 11 4 25 14 Sơ đồ thuật toán G tạo các khoá K1, ..., K16 Khoá K PC-1 C0 D0 LS1 LS1 C1 D1 LS2 LS2 LS16 LS16 C16 D16 PC-2 K1 PC-2 K16 Hình 1.3 Sơ đồ thuật toán G Thuật toán G tạo ra các khoá K1, ..., K16 từ khoá mã K, được thực hiện theo sơ đồ trên. Khoá K là một từ 56 bít, chia thành 8 đoạn, mỗi đoạn 7 bít, và thêm cho mỗi đoạn 7 bít đó một bít thử tính chẵn lẻ vào vị trí cuối để được một từ 64 bít. Trước tiên, thuật toán PC-1 biến K thành một từ 56 bít, chia thành hai nửa C0D0, mỗi nửa có 28 bít. Phép hoán vị PC-1 được xác định bởi bảng sau (chú ý là trong bảng không có các số 8, 16, 24, 32, 40, 48, 56, 64, là vị trí của những bít được thêm vào khi hình thành khoá mới K ). 15 Qui ước của phép hoán vị, bít thứ nhất của PC-1(x ) là bít thứ 57 của x , bít thứ hai của PC-1(x ) là bít thứ 49 của x , ... PC-1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Với mỗi i = 1, 2, ..., 16, LSi là phép chuyển dịch vòng sang trái, chuyển dịch một vị trí nếu i = 1, 2, 9, 16, và chuyển dịch hai vị trí với những giá trị i còn lại. Phép hoán vị PC-2 biến mỗi từ 56 bít CiDi (i =1,2,...16) thành từ 48 bít Ki theo bảng dưới đây: PC-2 14 17 11 24 1 3 28 15 23 19 12 16 5 6 21 10 4 26 8 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Thuật toán lập mã E của hệ mã DES là y =E(K, x ) với mỗi khoá K và bản rõ x. Thuật toán giải mã D là x =D(K, y ), được thực hiện bằng cùng một quá trình tính toán như quá trình lập mã, chỉ khác là thứ tự dùng các Ki được đảo ngược lại theo thứ tự K16, K15, ..., K1. 16 1.2.2.3. Các chế độ thực hiện của DES. Có 4 chế độ mà DES có thể thực hiện và được sử dụng rộng rãi trong các ứng dụng. Các chế độ này xác định cách dữ liệu sẽ được mã hoá và được giải mã, đó là các chế độ:  Electronic CodeBook (ECB).  Cipher Block Chaining (CBC).  Cipher FeedBack (CFB).  Output FeedBack (OFB). a. Chế độ Electronic Codebook (ECB). Trong mã hoá ECB, một khối dữ liệu rõ (D1, D2,..., D64) được sử dụng trực tiếp làm khối đầu vào DES (I1, I2, ..., I64). Khối đầu vào được xử lý qua thiết bị DES ở trạng thái mã hoá. Khối đầu ra (O1, O2,..., O64) được sử dụng trực tiếp làm bản mã (C1, C2, ..., C64). Trong giải mã ECB, khối bản mã (C1, C2, ..., C64) được sử dụng trực tiếp làm khối đầu vào DES (I1, I2, ..., I64). Khối đầu vào sau khi được xử lý qua thiết bị DES ở trạng thái giải mã và cho khối đầu ra (O1, O2, ..., O64) là khối bản rõ (D1, D2, ..., D64). Hình 1.4 Sơ đồ mã hoá DES chế độ ECB 17 b. Chế độ Cipher Block Chaining (CBC). Thông điệp cần mã hoá sẽ được chia thành các khối. Trong mã hoá CBC, khối dữ liệu vào DES đầu tiên được định dạng bằng cách thực hiện phép toán XOR (cộng các bít theo modul 2) khối đầu tiên của thông điệp với 64 bít vectơ khởi đầu (IV), ví dụ: (I1, I2, ..., I64) = (IV1 XOR D1, IV2 XOR D2,..., IV64 XOR D64). Khối đầu vào này được xử lý qua thiết bị DES ở trạng thái mã hoá và khối đầu ra được sử dụng làm bản mã (C1, C2, ... , C64) = (O1, O2, .. , O64). Khối bản mã đầu tiên được thực hiện XOR với khối bản rõ thứ hai để tạo ra khối đầu vào DES thứ hai (I1, I2, ..., I64) = (C1 XOR D1, C2 XOR D2,..., C64 XOR D64). Khối đầu vào thứ hai được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo ra khối bản mã thứ hai. Quá trình mã hoá tiếp tục xích chuỗi lần lượt các bản mã với các bản rõ với nhau cho tới khi khối bản mã cuối cùng trong thông điệp được mã hoá. Nếu thông điệp không là một số nguyên lần các khối dữ liệu 64 bít, thì phần dữ liệu của khối cuối cùng sẽ được mã theo một cách riêng. 18 Hình 1.5 Sơ đồ mã hoá DES chế độ CBC Trong quá trình giải mã, khối bản mã đầu tiên của thông điệp được sử dụng làm khối đầu vào và được xử lý qua thiết bị DES ở trạng thái giải mã, (I1, I2,..., I64) = (C1, C2, ..., C64). Khối đầu ra được thực hiện phép toán XOR với IV (giống với IV được sử dụng trong quá trình mã hoá) để tạo ra khối bản rõ đầu tiên, (D1, D2, ..., D64) = (O1 XOR IV1, O2 XOR IV2, ..., O64 XOR IV64). Quá trình giải mã thực hiện tiếp tục theo cách này cho tới khi khối bản mã cuối cùng được hoàn thành. Bản mã biểu diễn khối cuối, nếu chỉ có một phần dữ liệu phải được giải mã theo cách riêng. 19 c. Chế độ Cipher Feedback (CFB). Thông điệp cần được mã hoá sẽ được chia thành các khối dữ liệu gồm K bít (K=1, 2, ... , 64). Đối với cả hai hoạt động mã hoá và giải mã CFB, một vectơ khởi đầu IV có độ dài L được sử dụng. Vectơ IV này được đặt vào các bít thấp nhất của khối đầu vào DES, và các bít không được sử dụng được thiết lập là “0”, ví dụ: (I1, I2 ,..., I64) = (0, 0, ..., 0, IV1, IV2, IVL). Khối đầu vào này được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo một khối ở đầu ra. Trong suốt quá trình mã hoá, bản mã được tạo ra bởi thực hiện phép XOR trên một đơn vị dữ liệu rõ với K bít cao nhất của khối đầu ra, (C1, C2, ..., CK) = (D1 XOR O1, D2 XOR O2, ..., DK XOR OK). Tương tự như vậy trong quá trình giải mã, bản rõ được tạo ra bằng cách thực hiện phép XOR trên một đơn vị bản mã gồm K bít với K bít cao nhất của khối đầu ra, (D1, D2, ..., DK) = (C1 XOR O1, C2 XOR O2, ... , CK XOR OK). Trong cả hai trường hợp, các bít không được sử dụng của khối đầu ra DES sẽ bị loại bỏ. Khối đầu vào tiếp theo được tạo ra bằng cách loại bỏ K bít ở vị trí cao nhất của khối đầu vào trước đó. Dịch K vị trí của các bít còn lại sang trái và sau đó chèn K bít của bản mã được tạo ra trong quá trình mã hoá, hoặc được sử dụng trong hoạt động giải mã tại các bít có vị trí thấp, (I1, I2, ..., I64) = (I[K+1l, I[K+2], ..., I64, C1, C2, ..., CK). Khối đầu vào này sau khi được xử lý qua thiết bị DES ở trạng thái mã hoá để tạo ra khối đầu ra tiếp theo. Quá trình này tiếp tục cho tới khi toàn bộ bản rõ được mã hoá hoặc cho tới khi toàn bộ bản mã được giải mã. 20 Hình 1.6 Sơ đồ mã hoá DES chế độ CFB Chế độ CFB có thể hoạt động trên các đơn vị dữ liệu có kích thước từ 1 đến 64. K bít CFB được định nghĩa là chế độ CFB hoạt động trên các đơn vị dữ liệu gồm K bít (1<=K<=64). Đối với mỗi hoạt động của thiết bị DES, một đơn vị K bít bản rõ tạo ra một đơn vị K bít bản mã hoặc một đơn vị bản mã tạo ra một đơn vị K bít bản rõ.
- Xem thêm -