Tiểu luận môn Mật mã an toàn dữ liệu Tìm hiểu về mã hóa khối

19 1K 3
Tiểu luận môn Mật mã an toàn dữ liệu Tìm hiểu về mã hóa khối

Đ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

Ví dụ, một khối mật mã thuật toán mã hóa có thể lấy một khối 128bit của văn bản làm đầu vào, và đầu ra là một khối mã với 128bit. Việc chuyển đổi chính xác được kiểm soát bằng cách sử dụng đầu vào thứ hai khóa bí mật. Giải mã tương tự: trong ví dụ này , các thuật toán giải mã lấy một khối 128bit của đoạn mã cùng với khóa bí mật, và đầu ra là các khối ban đầu 128bit của văn bản gốc.

1 Mục Lục 1  2 1.1 Mã hóa khi là gì 2 1.2 Thit k 2 2 Các loi mã hóa khi 5 2.1 Lucifer / DES 5 2.2 IDEA 9 2.3 RC5 10 2.4 AES 11 2.5 Blowfish (cipher) 11 3  13 3.1  13 3.2 u kin và tính toán 14 4 ng dng mã hóa khi 15 5  16 6  19 2 1 M 1.1 Mã hóa khi là gì Trong mật mã học, mã hóa khi là những thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ dài xác định (block) thông qua 1 số phép chuyển đổi xác định. Quá trình mã hóa khối bao gồm hai thuật toán ghép nối, một cho mã hóa, E, và một cho giải mã, D. Cả hai thuật toán chấp nhận hai tham số đầu vào: một khối đầu vào kích thước n bit và một khóa kích thước k bit, và cả hai đều sinh ra một khối đầu ra n- bit. Các thuật toán giải mã D được định nghĩa là hàm nghịch đảo của mã hóa, tức là D = E -1 . Chính thức hơn, một thuật toán mã hóa khối được xác định bởi một hàm mã hóa E K (M) = E ( K , M ): {0 , 1} k x {0 , 1} n → {0 , 1} n Trong đó, đầu vào là một khóa K có chiều dài k bit, được gọi là kích thước khóa, và một chuỗi M bit có độ dài n, được gọi là kích thước khối, và trả về một chuỗi C có n bit. M được gọi là chữ thô, và C được gọi là bản mã. Đối với mỗi K, các hàm E K (M) cần thiết để có một bản đồ nghịch trên {0,1} n. Nghịch đảo với E được định nghĩa là một hàm E K -1 (C) := D K (C) = D(K,C):{0,1} k x {0,1} k →{0,1} n Có đầu vào là khóa K, đoạn mã C trả về đầu ra là đoạn văn bản M sao cho Ví dụ, một khối mật mã thuật toán mã hóa có thể lấy một khối 128-bit của văn bản làm đầu vào, và đầu ra là một khối mã với 128-bit. Việc chuyển đổi chính xác được kiểm soát bằng cách sử dụng đầu vào thứ hai - khóa bí mật. Giải mã tương tự: trong ví dụ này , các thuật toán giải mã lấy một khối 128-bit của đoạn mã cùng với khóa bí mật, và đầu ra là các khối ban đầu 128-bit của văn bản gốc. Đối với mỗi khóa K, E K là một hoán vị (ánh xạ song ánh) trong tập hợp các khối đầu vào. Mỗi khóa chọn một hoán vị từ một tập có thể của (2 n ). 1.2 Thit k 1.2.1 Lp mã khi (Iterated block ciphers) Hầu hết các thuật toán mã hóa khối được phân loại vào nhóm mã hóa khối lặp có nghĩa là quá trình chuyển đổi khối kích thước cố định của văn bản thành các khối của bản mã có kích thước giống hệt nhau, thông qua ứng dụng lặp của một chuyển đổi có thể nghịch đảo gọi là hàm round, với mỗi lần lặp được gọi là một vòng (round). Thông thường, các hàm vòng R có đầu vào thứ hai là các khóa tròn khác nhau Ki, được bắt nguồn từ chính bản gốc: M i = R Ki (M i-1 ) Trong đó M 0 là văn bản và bản mã M r , với r là số vòng. Ngoài ra, khóa Whitening cũng thường được sử dụng. Vào lúc bắt đầu và kết thúc, dữ 3 liệu được sửa đổi bởi khóa (thường với XOR, nhưng phép tính số học đơn giản như cộng và trừ cũng được sử dụng): M 0 = M  K 0 M i = R Ki (M i-1 ); i = 1…r C = M r  K r+1 1.2.2  -Substitution-permutation networks) Một loại quan trọng của thuật toán mã hóa khối lặp được gọi là mạng lưới thay thế-hoán vị (SPN) nhận một khối văn bản và khóa làm đầu vào, và áp dụng nhiều vòng xoay dịch chuyển bao gồm một đoạn thay thế tiếp theo là một đoạn hoán vị để sinh ra từng khối mã đầu ra. Khâu thay thế phi tuyến tính hỗn hợp các bit khóa với các bit của văn bản, tạo ra nhập nhằng Shannon. Khâu hoán vị tuyến tính sau đó mất đi dư thừa, tạo ra sự khuếch tán. Một hộp thay thế ( S -box) thay thế một khối nhỏ của các bit đầu vào với một khối các bit đầu ra. Sự thay thế này phải là một-một , để đảm bảo tính nghịch đảo ( do giải mã). Một S-box an toàn sẽ có các thuộc tính mà thay đổi một bit đầu vào sẽ thay đổi khoảng một nửa số bit đầu ra trung bình, đặc điểm này được gọi là hiệu ứng tuyết lở - tức nó có các tính chất mỗi bit đầu ra sẽ phụ thuộc vào tất cả các bit đầu vào. Hộp hoán vị (P -box) sẽ hoán vị tất cả các bit: nó nhận kết quả đầu ra của tất cả các S - box trong một vòng, hoán vị các bit, và đưa chúng vào S -box của vòng tiếp theo. Một chiếc hộp-P tốt có các tính chất mà các bit đầu ra của bất kỳ S-box được phân phối cho nhiều đầu vào S-box càng tốt. Tại mỗi vòng, khóa vòng ( thu được từ khóa sau một số phép toán đơn giản, chẳng hạn, sử dụng S - hộp và P- hộp ) được kết hợp bằng cách sử dụng một số phép toán nhóm , điển hình là XOR. Giải mã được thực hiện bằng cách đơn giản đảo ngược quá trình này ( bằng cách sử dụng ngược của S- hộp và P- hộp và áp dụng các khóa vòng theo thứ tự ngược lại) . 1.2.3 Mã hóa Feistel Trong thuật toán mã hóa Feistel, khối văn bản được mã hóa được chia thành hai phần có kích thước bằng nhau. Hàm vòng được áp dụng cho một nửa, sử dụng một khóa con, và sau đó đầu ra được thực hiện XOR với nửa kia. Hai nửa sau đó được đổi chỗ. Cho F là hàm vòng và cho K 0 , K 1 ,…, K n là các khóa con cho các vòng 0,1,…, n tương ứng. Sau đó, các thao tác cơ bản như sau: Chia khối bản rõ thành hai phần bằng nhau, (L 0 , R 0 ) Với mỗi vòng i = 0,1,…,n, tính toán 4 L i+1 = R i R i+1 = L i  F(R i , K i ) Kết quả đoạn mã là (R n+1 , L n+1 ). Giải mã đoạn mã (R n+1 , L n+1 ) sẽ thực hiện được bằng cách tính toán i=n,n-1,…,0 R i = L i+1 L i = R i+1  F(R i , K i ) Kết quả (L 0 , R 0 ) là văn bản gốc.  : Sơ đồ mã hóa Feistel Một lợi thế của mô hình Feistel so với mạng lưới thay thế-hoán vị là hàm vòng F không cần phải có tính nghịch đảo. 1.2.4 Lai-Massey Scheme Lai-Massey Scheme có đặc điểm an toàn tương tự như cấu trúc Feistel. Nó cũng có lợi thế hàm vòng F không cần phải có tính nghịch đảo. Một điểm tương tự khác là cũng là chia tách các khối đầu vào thành hai phần bằng nhau. Tuy nhiên, hàm vòng được áp dụng cho sự khác biệt giữa hai phần, và kết quả là sau đó thêm vào cả hai nửa. Cho F là hàm vòng và để cho K 0 , K 1 , …, K n là các khóa con cho các vòng 0,1,…, n tương ứng. Sau đó, các thao tác cơ bản như sau: Chia khối bản thành hai phần bằng nhau, (L 0 , R 0 ) 5 Với mỗi vòng i = 0,1,…, n, tính toán L i+1 = б(L i ) + T i và R i+1 = R i + T i Trong đó б là một orthomorphism (có nghĩa là, cả hai б và x→ б (x)-x là hoán vị) và T i = F (б (б(L i ) – R i , K i ). Kết quả, bản mã là (R n+1 , L n+1 ). Giải mã một bản mã (R n+1 , L n+1 ) được thực hiện bằng cách tính toán đối với i = n, n- 1,…, 0 R i = б -1 (L i+1 – T i ) và L i = R i+1 - T i Trong đó T i = F(L i+1 – R i+1 , K i ) Kết quả, (L 0 , R 0 ) chính là văn bản gốc. 2: Sơ đồ Lai-Massey 2 Các loi mã hóa khi 2.1 Lucifer / DES Nói chung, Lucifer được coi là thuật toán mã hóa khối dân sự đầu tiên, được phát triển tại IBM vào những năm 1970 dựa trên nghiên cứu thực hiện bởi Horst Feistel. 6 DES là thuật toán mã hóa khối nguyên mẫu – nhận một chuỗi văn bản dài 64 bit và biến đổi nó thông qua một loạt các thao tác phức tạp thành một chuỗi bit mã có cùng chiều dài. DES cũng sử dụng một khóa điều chỉnh sự chuyển đổi, do đó có thể giải mã được cho là chỉ có thể được thực hiện bởi những người có đúng khóa được sử dụng để mã hóa. Về mặt hình thức, khóa có chiều dài 64 bit. Tuy nhiên, chỉ có 56 bit trong số này được thực sự sử dụng bởi thuật toán. Tám bit được sử dụng chỉ để kiểm tra tính chẵn lẻ, sau đó được bỏ đi. Do đó độ dài khoá hiệu quả là 56 bit.  Cấu trúc tổng thể của thuật toán được thể hiện trong hình: thuật toán bao gồm 16 bước giống hệt nhau, gọi là vòng lặp. Ngoài ra còn có một hoán vị ban đầu và một hoán vị cuối cùng, gọi là IP và FP, đó là nghịch đảo (IP đảo ngước các hành động của FP, và ngược lại). IP và FP không có ý nghĩa mật mã, nhưng được đưa vào để tạo điều kiện nạp các khối vào và ra giữa những năm 1970 8-bit dựa trên phần cứng. Trước vòng chính, khối được chia thành hai nửa 32-bit và xử lý luân phiên, kỹ thuật đan chéo này được gọi là chương trình Feistel. Cấu trúc Feistel đảm bảo rằng giải mã và mã hóa là quá trình rất giống nhau - sự khác biệt duy nhất là các khóa được áp dụng theo thứ tự ngược lại khi giải mã. Phần còn lại của thuật toán là giống hệt nhau. Điều này giúp đơn giản hoá việc triển khai thực hiện, đặc biệt là ở phần cứng, vì không có nhu cầu cho các thuật toán mã hóa và giải mã riêng biệt. Biểu tượng ⊕ biểu thị phép toán OR loại trừ (XOR). Hàm-F thao tác trên một nửa khối cùng với một vài khóa. Đầu ra của hàm-F sau đó được kết hợp với một nửa còn lại của khối, và các nửa được tráo đổi trước khi bắt đầu vòng tiếp theo. Sau khi vòng cuối cùng kết thúc, các nửa được đổi chỗ, đây là một tính năng của cấu trúc Feistel làm cho quá trình mã hóa và giải mã tương tự nhau. 7  Cấu trúc tổng thể của DES Các hàm Feistel (F) : Hàm Feistel của DES Hàm-F, mô tả trong hình 2, thao tác trên một nửa khối (32 bit) tại một thời điểm và 8 bao gồm bốn bước nhỏ: 1. Mở rộng- Các nửa khối 32-bit được mở rộng thành 48 bit bằng cách sử dụng hoán vị mở rộng, ký hiệu là E trong sơ đồ, bằng cách sao chép một nửa trong số các bit. Kết quả bao gồm tám chuỗi 6-bit (8 * 6 = 48 bit) miếng, từng chuỗi chứa một bản sao của 4 bit đầu vào tương ứng, cộng với một bản sao của bit ngay liền kề từ mỗi chuỗi đầu vào cho cả hai phía. 2. Trộn khóa - kết quả được kết hợp với một khóa con bằng cách sử dụng một phép toán XOR. 16 khóa con 48-bit - một khóa cho mỗi vòng – được điều chế từ khóa chính bằng cách sử dụng key schedule (được mô tả dưới đây). 3. Thay thế - sau khi trộn khóa, khối được chia thành tám mảnh 6-bit trước khi được điều chế bởi hộp-S, hoặc hộp thay thế. Mỗi hộp trong số tám S-hộp thay thế sáu bit đầu vào của nó với bốn bit đầu ra theo một chuyển đổi phi tuyến tính, cung cấp dưới dạng một bảng tra cứu. S-hộp cung cấp cốt lõi của sự an toàn của DES - mà không có họ, các thuật toán mã hóa sẽ là tuyến tính, và tầm thường dễ vỡ. 4. Hoán vị - cuối cùng, 32 kết quả đầu ra từ các hộp-S được sắp xếp lại theo một hoán vị xác định, hộp P. Kỹ thu ật này được thiết kế để, sau khi hoán vị, các bit đầu ra của từng S-box được đưa vào 4 hộp S khác nhau trong vòng tiếp theo. Các biến đổi luân phiên thay thế từ hộp S, và hoán vị của các bit từ hộp P và hàm mở rộng E tạo ra sự "nhầm lẫn và khuếch tán" tương ứng, một khái niệm xác định bởi Claude Shannon trong những năm 1940 như một điều kiện cần thiết cho một thuật toán mã hóa thực tế nhưng an toàn.  9 : Hàm tạo khóa của DES Hình 3 minh họa hàm tạo khóa cho quá trình mã hóa - tạo ra các khóa con. Ban đầu, 56 bit của khóa được lựa chọn từ chuỗi 64 bit ban đầu bởi hoán vị lựa chọn 1 (PC -1 ) - tám bit còn lại hoặc là loại bỏ hoặc sử dụng làm bit kiểm tra chẵn lẻ. 56 bit được chia thành hai nửa 28 -bit, sau mỗi nửa được xử lý riêng. Trong vòng kế tiếp , cả hai nửa được quay vòng bằng một hoặc hai bit ( xác định cho mỗi vòng ) , và sau đó 48 bit khóa con được lựa chọn bởi hoán vị lựa chọn 2 (PC -2 ) - 24 bit từ nửa bên trái , và 24 từ nửa phải. Các phép quay ( ký hiệu là "<<< " trong sơ đồ ) có nghĩa là một tập khác nhau của các bit được sử dụng trong mỗi khóa con, mỗi bit được sử dụng trong khoảng 14 trong số 16 khóa . Hàm tạo khóa cho quá trình giải mã cũng tương tự - nhưng theo thứ tự ngược lại so với mã hóa. Ngoài sự thay đổi đó, quá trình này giống như đối với mã hóa. Cùng 28 bit được truyền cho tất cả các hộp quay. 2.2 IDEA IDEA hoạt động trên các khối 64-bit bằng cách sử dụng một khóa 128-bit, và bao gồm liên tiếp tám biến đổi giống hệt nhau (một vòng, xem hình minh họa) và chuyển đổi đầu ra (nửa vòng). Các quy trình để mã hóa và giải mã tương tự. IDEA chú trọng an ninh của mình bằng cách đan xen các phép chuyển đổi từ trên các nhóm khác nhau – phép cộng, phép nhân, và phép hoặc loại trừ (XOR) - đó là đại số "không tương thích" trong một nghĩa nào đó. Cụ thể hơn, các phép toán này xử lý với từng chuỗi 16- 10 bit:  Hoặc loại trừ (ký hiệu dấu cộng khoanh tròn màu xanh nước biển ⊕).  Modulo cộng 2 16 (ký hiệu bằng dấu cộng đóng ô vuông màu xanh lá cây ⊞).  Modulo nhân 2 16 +1, trong đó các từ 0 (0x0000) được xem như là 2 16 (ký hiệu bằng dấu chấm khoanh tròn). Sau khi kết thúc tám vòng, chuyển sang "nửa vòng" cuối cùng, kết quả chuyển đổi minh họa như dưới đây: Cu trúc Cấu trúc tổng thể của IDEA sau lược đồ Lai-Massey. XOR được sử dụng cho cả phép trừ trừ, phép cộng. IDEA sử dụng một hàm nửa vòng có khóa phụ thuộc. Làm việc với các từ 16 bit (có nghĩa là bốn đầu vào thay vì hai cho kích thước khối 64 bit), IDEA sử dụng lược đồ Lai-Massey hai lần song song, với hai hàm vòng song song được đan xen với nhau. Để đảm bảo đủ khuếch tán, hai trong số các khối con được tráo đổi sau mỗi vòng.    Mỗi vòng sử dụng sáu khóa con 16-bit, trong khi nửa vòng sử dụng bốn, tổng cộng 52 cho 8,5 vòng. Tám khóa con đầu tiên được sinh ra trực tiếp từ khóa chính, với K1 từ vòng đầu tiên ứng với mười sáu bit thấp hơn; nhóm tiếp theo trong tám khóa được tạo ra bằng cách xoay tròn khóa sang trái 25 bit giữa mỗi nhóm tám. Điều này có nghĩa rằng nó được quay ít hơn một lần mỗi vòng, trung bình, tổng cộng sử dụng sáu phép quay. G  Giải mã hoạt động giống như mã hóa, nhưng thứ tự của các khóa vòng được đảo ngược, và mỗi giá trị của mỗi khóa con được thay thế bằng đảo ngược các phép chuyển đổi nhóm tương ứng. 2.3 RC5 Không giống như nhiều chương trình , RC5 có kích thước khối thay đổi (32, 64 hoặc 128 bit ) , kích thước khóa ( 0-2048 bit) và số vòng ( 0 đến 255) . Lựa chọn đề nghị ban đầu cho các thông số là kích thước khối - 64 bit , kích thước khóa 128-bit và 12 vòng . . thông điệp ( MAC ) thường được xây dựng từ mã hóa khối. CBC- MAC, OMAC và PMAC là những MAC như vậy.  Mã hóa chứng thực cũng được xây dựng từ mã khối. Nó có nghĩa là cả mã hóa và MAC cùng một. khoanh tròn). Sau khi kết thúc tám vòng, chuyển sang "nửa vòng" cuối cùng, kết quả chuyển đổi minh họa như dưới đây: Cu trúc Cấu trúc tổng thể của IDEA sau lược đồ Lai-Massey ông. Ý tưởng sử dụng hệ thống khóa "một lần" lần đầu tiên được Vernam đề xuất vào năm 1926 Hệ thống mã hóa Vernam thường được gọi là hệ thống "pad một lần". Mặc dù người

Ngày đăng: 19/10/2014, 16:01

Từ khóa liên quan

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

Tài liệu liên quan