Tải bản đầy đủ (.pdf) (32 trang)

Bài Tập Lớn Ứng Dụng Mã Hóa Và Giải Mã Des.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.44 MB, 32 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á</b>

<b>BÀI TẬP LỚNHỌC PHẦN: AN TỒN BẢO MẬT</b>

<b> TÊN BÀI TẬP LỚN:ỨNG DỤNG MÃ HĨA VÀ GIẢI MÃ DES</b>

<b>Sinh viên thực hiệnKhóaLớpMã sinh viên</b>

<b>Nguyễn Tuấn Khanh10CNTT1197480201182</b>

<b>Bắc Ninh, tháng 06 năm 2022</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG</b>

<b> Á</b>

<b>BÀI TẬP LỚNHỌC PHẦN: AN TOÀN BẢO MẬT</b>

<b>STTSinh viên thực hiệnĐiểm bằng sốĐiểm bằng chữKý tên SV1Nguyễn Văn Dương</b>

<b>2Nguyễn Tuấn Khanh3Phạm Trung Đức4Phạm Thế Lâm5Đoàn Quang Anh6Nguyễn Văn Quốc</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Mục lục</b>

<b>CHƯƠNG I: GIỚI THIỆU VỀ DES...7</b>

<b>I.GIỚI THIỆU VỀ DES...7</b>

3.Q trình thay thế DES...10

<b>CHƯƠNG II: HỆ MÃ HĨA CHUẨN DES...11</b>

<b>I.Giới thiệu về hệ mã chuẩn...11</b>

<b>II.Mô tả sơ đồ mã hóa DES...11</b>

<b>III.Hốn vị IP và hốn vị ngược IP<small>-1</small></b>...14

<b>IV. Thuật tốn sinh khóa con...15</b>

<b>V.Mơ tả hàm f...17</b>

<b>VI.Hàm ( ánh xạ) mở rộng (E)...18</b>

<b>VII.Mơ tả hộp S-Box...19</b>

<b>VIII.Hộp P-Box...21</b>

<b>IX.Ví dụ về mã hóa DES...22</b>

<b>CHƯƠNG 3. CÁC ĐIỂM YẾU CỦA DES...26</b>

<b>I.Tính bù...26</b>

<b>II.Khóa Yếu...26</b>

<b>III.DES có cấu trúc đại số...27</b>

<b>IV.Khơng gian khóa K...27</b>

<b>V.Triple DES (3DES)...27</b>

<b>CHƯƠNG IV. THIẾT KẾ ỨNG DỤNG GIẢI MÃ VÀ MÃ HĨA DES...29</b>

<b>I.Giao diện chính...29</b>

<b>II.Chạy thử...29</b>

<b>TÀI LIỆU THAM KHẢO...30</b>

3

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>DANH MỤC CÁC TỪ VIẾT TẮT (Nếu có)(trình bầy trong trang riêng)</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>DANH MỤC BẢNG BIỂU VÀ SƠ ĐỒ (Nếu có)(trình bầy trong trang riêng)</b>

Hình 2.1 Chuẩn mã hóa dữ liệu DES 11 Hình 2.2 Sơ đồ mã hóa DES 14

Bảng 2.16 Ví dJ về các bước thMc hiê Hn của DES 25 Bảng 3.1 Các khóa yếu của DES 26 Bảng 3.2 Các khóa nửa yếu của DES 26 Lưu ý

- Các sơ đồ, hình vẽ, bảng biểu phải có tên và số thứ tM được sắp xếp theo chương. - Đối với sơ đồ, hình vẽ, đồ thị thì tên được đặt ở dưới

- Đối với bảng số liệu thì tên đặt ở trên.

5

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

LỜI MỞ ĐẦU

Ngày nay internet cùng với các dịch vJ phong phú của nó có khả năng cung cấp người các phương tiện hết sức thuận tiện để trao đổi, tổ chức, tìm kiếm và cung cấp thơng tin. Tuy nhiên, cũng như các phương thức truyền thống việc trao đổi, cung cấp thông tin điện tư trong nhiều lĩnh vMc đồi hỏi tính bí mật, tính tồn vẹn, tính xác thMc cũng như trách nhiệm về các thơng tin được trao đổi. Bên cạnh đó, tốc độ xử lý của máy tính ngày càng được nâng cao, do đó cùng với sM trợ giúp của các máy tính tốc dộ cao, khả năng tấn cơng các hệ thống thong tin có độ bảo mật kém rất dễ xảy ra. Chính vì vậy người ta không ngừng nghiên cứu các vấn đề bảo mật và an tồn thơng tin để đảo bảo cho các hệ thống thơng tin hoạt động an tồn. Cho đến ngày nay với sM phát triển của công nghệ mã hóa phi đối xứng, người ta đã nghiên cứu và đưa ra nhiều kỹ thuật, nhiêu mô hình cho phép chung ta áp dJng xây dJng các ứng dJng đồi hỏi tính an tồn thơng tin cao,

Việc địi hỏi an tồn trong giao dịch cũng như trao đổi thông điệp được đặt lên hàng đầu vì vậy việc xác thMc thơng điệp là một vấn đề rất quan trọng trong các giao dịch hiện nay, đặc biệt là trong giao dịch trMc tuyến. Khi nhận được một thông điệp như thư, hợp đồng, đề nghị,… vấn đề đặt ra là làm sao để bảo mật được nhưng thơng tin quan trọng đó. Câu trả lời là làm một ứng dJng giải mã và mã hóa các thơng tin quan trọng bằng DES.

6

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>CHƯƠNG I: GIỚI THIỆU VỀ DESI.GIỚI THIỆU VỀ DES</b>

1. DES (mã hóa)

<b>DES (viết tắt của Data Encryption Standard</b>, hay <b>Tiêu chuẩn Mã hóa Dữ liệu) là một </b>

phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó chuẩn này được sử dJng rộng rãi trên phạm vi thế giới. Ngay từ đầu, thuật tốn của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa. Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (<i>block cipher</i>) và các phương pháp thám mã tương ứng.

Hiện nay DES được xem là khơng đủ an tồn cho nhiều ứng dJng. Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ. Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ. Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng khơng khả thi trong thMc tiễn. Thuật toán được tin tưởng là an tồn trong thMc tiễn có dạng Triple DES (thMc hiện DES ba lần), mặc dù trên lý thuyết phương

<i>pháp này vẫn có thể bị phá. Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay Tiêu chuẩn Mã hóa Tiên tiến).</i>

2. Lịch sử

Khởi nguyên của thuật tốn đã có từ đầu thập niên 1970. Vào năm 1972, sau khi tiến hành nghiên cứu về nhu cầu an tồn máy tính của chính phủ Hoa Kỳ, CJc Tiêu chuẩn Liên

<i>bang Hoa Kỳ (National Bureau of Standard - NBS), hiện nay đã đổi tên thành Viện Tiêu chuẩnvà Công nghệ Quốc gia Hoa Kỳ (National Institute of Standards and Technology - NIST), đã </i>

nhận ra nhu cầu về một tiêu chuẩn của chính phủ dùng để mật mã hóa các thơng tin mật/nhạy cảm. Vào ngày 15 tháng 5 năm 1973, sau khi tham khảo với NSA, NBS đưa ra kêu gọi thiết kế một thuật tốn mã hóa có thể đáp ứng được các tiêu chuẩn nghiêm ngặt. Tuy nhiên khơng có đề xuất nào đáp ứng được yêu cầu đề ra. Ngày 27 tháng 8 năm 1974, NBS đưa ra kêu gọi lần thứ hai. Lần này công ty IBM đã đưa ra một đề xuất có thể chấp nhận được. Đề xuất này được phát triển trong những năm 1973-1974 dMa trên một thuật tốn đã có từ trước - thuật toán mật mã Lucifer của Horst Feistel. Đội ngũ tại công ty IBM liên quan tới quá trình thiết kế bao gồm: Feistel, Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith và Bryant Tuckerman

<b>II.Q trình</b>

1. Des với vai trị là một tiêu chuẩn

Bất chấp những chỉ trích, DES được chọn làm tiêu chuẩn liên bang (Hoa kỳ) vào tháng 11 năm 1976 và được cơng bố tại tài liệu có tên là <i>FIPS PUB 46</i> vào ngày 15 tháng

1 năm 1977 cho phép sử dJng chính thức đối với thơng tin không mật. DES tiếp tJc được khẳng định là tiêu chuẩn vào các năm 1983, 1988 (với tên <i>FIPS-46-1</i>), 1993 (<i>FIPS-46-2</i>) và 1998 (<i>FIPS-46-3</i>). Lần cuối cùng quy định dùng "Triple DES" (xem thêm ở phần sau). Ngày 26 tháng 5 năm 2002, DES được thay thế bằng AES sau một cuộc thi rộng rãi (xem thêm Quá trình AES). Tuy nhiên, tại thời điểm năm 2004, DES vẫn còn được sử dJng khá phổ biến.

Năm 1994, thêm một phương pháp tấn công khác (trên lý thuyết) được cơng bố là thám mã tuyến tính. Tuy nhiên thời điểm nhu cầu thay thế DES trở nên thMc sM cấp thiết là vào

7

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

năm 1998 khi một cuộc tấn công bạo lMc chứng tỏ rằng DES có thể bị phá vỡ trên thMc tế. Các phương pháp thám mã này sẽ được miêu tả kỹ hơn ở phần sau.

SM xuất hiện của DES đã tạo nên một làn sóng nghiên cứu trong giới khoa học về lĩnh vMc mật mã học, đặc biệt là các phương pháp thám mã mã khối. Về điều này, Bruce Schneier viết:

<i>"NSA coi DES là một trong những sai lầm lớn nhất. Nếu họ biết trước rằng chi tiết của thuật toán sẽ được cơng bố để mọi người có thể viết chương trình phần mềm, họ sẽ không bao giờ đồng ý. DES đã tạo nên nguồn cảm hứng nghiên cứu trong lĩnh vực thám mã hơn bất kỳ điều gì khác: Giới khoa học đã có một thuật tốn để nghiên cứu - thuật tốn mà NSA khẳng định là an tồn."</i>

2. Quá trình

15 tháng 5 năm 1973 <sup>NBS đưa ra lời kêu gọi đầu tiên về một thuật tốn mã hóa tiêu</sup><sub>chuẩn.</sub>

27 tháng 8 năm 1974 NBS đưa ra lời kêu gọi thứ hai.

17 tháng 3 năm 1975 <sup>DES được công bố trên công báo liên bang Hoa kỳ để công </sup><sub>chúng đóng góp ý kiến.</sub>

Tháng 8, 1976 Hội thảo đầu tiên về DES.

Tháng 9, 1976 Hội thảo lần hai, bàn về nền tảng toán học của DES.

Tháng 11, 1976 DES được phê chuẩn làm tiêu chuẩn chính thức.

15 tháng 1 năm 1977 DES được xác nhận làm tiểu chuẩn của FIPS (FIPS PUB 46). 1983 DES được công bố lại lần đầu.

1986 <sup>HBO</sup><sub>hóa dMa trên DES.</sub><sup> phát sóng chương trình </sup><sup>Videocipher</sup><sup> II, một kênh TV mã</sup>

22 tháng 1 năm 1988 DES được xác nhận lần hai với tên FIPS 46-1, thay thế FIPS

8

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

PUB 46.

Biham và Shamir công bố kiểu tấn công thám mã vi sai (trên lý thuyết) với độ phức tạp thấp hơn tấn công bạo lMc. Tuy nhiên, kiểu tấn công này địi hỏi người tấn cơng lMa chọn 2<small>47</small> văn bản rõ (một điều kiện không thMc tế) .<small>[1]</small>

30 tháng

12 năm 1993 <sup>DES được xác nhận lần ba với tên FIPS 46-2.</sup>

1994 <sup>ThMc nghiệm thám mã DES lần đầu tiên được thMc hiện với </sup><sub>kỹ thuật </sub><sub>thám mã tuyến tính</sub><sub> .</sub><small>[2]</small>

Tháng 6, 1997 <sup>DM án DESCHALL</sup><sub>DES (lần đầu tiên trước công chúng).</sub><sup> đã phá vỡ được một bản tin mã hóa bằng </sup>

Tháng 7, 1998 <sup>Thiết bị thám mã </sup><sub>Foundation</sub><sub> phá được một khóa của DES trong vòng 56 giờ.</sub><sup>Deep Crack</sup><sup> của tổ chức </sup><sup>Electronic Frontier </sup>

Tháng 1, 1999 <sup>Deep Crack</sup><sub>DES trong vòng 22 giờ và 15 phút.</sub><sup> cùng với </sup><sup>distributed.net</sup><sup> phá được một khóa của </sup>

25 tháng 10 năm 1999

DES được xác nhận lần thứ tư với tên FIPS 46-3. Lần này phương pháp Triple DES được khuyến cáo sử dJng còn DES chỉ được dùng cho các hệ thống ít quan trọng.

26 tháng

11 năm 2001 <sup>AES được công bố trong FIPS 197</sup>

26 tháng 5 năm 2002 AES trở thành tiêu chuẩn

26 tháng 7 năm 2004 <sup>Việc bãi bỏ FIPS 46-3 (cùng với một số tiêu chuẩn liên quan </sup>khác) được đăng trên công báo liên bang Hoa kỳ ( tháng 5 năm 2005 NIST bãi bỏ FIPS 46-3

9

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

3. Quá trình thay thế DES

Từ cuối thập niên 1980, đầu thập niên 1990, xuất phát từ những lo ngại về độ an toàn và tốc độ thấp khi áp dJng bằng phần mềm, giới nghiên cứu đã đề xuất khá nhiều thuật tốn mã hóa khối để thay thế DES. Những ví dJ tiêu biểu bao

<i>gồm: RC5, Blowfish, IDEA (International Data Encryption Algorithm, hay Thuật tốn mã hóa</i>

dữ liệu quốc tế), NewDES, SAFER, CAST5 và FEAL. Hầu hết những thuật tốn này có thể sử dJng từ khóa 64 bit của DES mặc dù chúng thường được thiết kế hoạt động với từ khóa 64 bit hay 128 bit.

Ngay bản thân DES cũng có thể được sử dJng một cách an tồn hơn. Những người sử dJng DES trước đây có thể dùng Triple DES (hay TDES). Đây là phương pháp được một trong những người phát minh ra DES miêu tả và kiểm tra (Xem thêm FIPS PUB 46-3). Triple DES sử dJng DES ba lần cho một văn bản với những khóa khác nhau. Hiện nay Triple DES được xem là an toàn mặc dù tốc độ thMc hiện khá chậm. Một phương pháp khác ít địi hỏi khả năng tính tốn hơn là DES-X với việc tăng độ dài từ khóa bằng cách thMc hiện phép XOR từ khóa với phần thêm trước và sau khi thMc hiện DES. Một phương pháp nữa là GDES được đề xuất làm tăng tốc độ mã hóa nhưng nó được chứng tỏ là khơng an tồn trước tấn công vi

<i>sai (differential cryptanalysis).</i>

Năm 2001, sau một cuộc thi quốc tế, NIST đã chọn ra một thuật toán mới, AES, để thay thế cho DES. Thuật tốn được trình diện dưới tên là Rijndael. Những thuật tốn khác có tên trong danh sách cuối cùng của cuộc thi AES bao gồm: RC6, Serpent, MARS và Twofish.

10

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>CHƯƠNG II: HỆ MÃ HÓA CHUẨN DESI.Giới thiệu về hệ mã chuẩn</b>

Bước sang kỷ nguyên máy tính, việc sử dJng máy tính nhanh chóng được phổ cập trong mọi hoạt động của con người, và tất nhiên việc dùng máy tính trong truyền tin bảo mật đã được hết súc chú ý. Các hệ mật mã với các thuật toán lập mật mã và giải mã thMc hiện bằng máy tính được phát triển nhanh chóng, đồng thời các lĩnh vMc truyền tin cần sử dJng mật mã cũng được mở rộng sang nhiều địa hạt kinh tế và xã hội ngoài các địa hạt truyền thống. Vào đầu thập niên 1970, trước tình hình phát triển đó đã nẩy sinh nhu cầu phải chuẩn hóa các giải pháp mật mã được sử dJng trong xã hội, để một mặt hướng dẫn các thành viên trong xã hội thMc hiện quyền tuyên truyền tin bảo mật hợp pháp của mình, mặt khách, bảo đảm sM quản lý và giám sát của nhà nước đối với các hoạt động bảo mật đó, Do đó, tại Hịa Kỳ, ngày 15/05/1973, Văn phòng quốc gia về Chuẩn (NBD – National Bureau of Standars) công bố một yêu cầu công khai xây dMng và đề xuất một <i>thuật toán mật mã chuẩn, </i>đáp ứng các đòi hỏi chủ yếu là:

- Thuật toán phải được định nghĩa đầy đủ và dễ hiểu.

- Thuật tốn phải có độ an tồn cao, độ an tồn đó khơng phJ thuộc vào sM giữ bí mật của bản thân thuật toán, mà chỉ nằm ở sM giữ bí mật của khóa.

- Thuật tốn phải được sẵn sàng cung cấp cho mọi người dùng.

- Thuật toán phải thích nghi được với việc dùng có các ứng dJng khác nhau. - Thuật toán phải cài đặt được một cách tiết kiệm trong các thiết bị điện tử. - Thuật tốn phải sử dJng được có hiệu quả.

- Thuật tốn phải có khả năng được hợp thức hóa. - Thuật tốn phải xuất khẩu được

<b>II.Mơ tả sơ đồ mã hóa DES</b>

Mơ tả tổng quan:

Des là thuật tốn mã hóa với input là khối 64 bit, output cũng là khối 64 bit. Khóa mã hóa có độ dài 56 bit, thMc ra chính xác hơn phải là 64 bit với các bit ở vị trí chia hết cho 8 có thể sử dJng là các bit kiểm tra tính chẵn lẻ. Số khóa của khơng gian khóa K là 2 .<small>56</small>

Hình 2.1: Chuẩn mã hóa dữ liệu DES

Thuật tốn thMc hiện 16 vịng. Từ khóa input k, 16 khóa con 48 bit K sẽ được sinh ra, <small>i</small> mỗi khóa cho một vịng thMc hiện trong q trình mã hóa. Trong mỗi vịng, 8 ánh xạ thay thế 6 bit thành 4 bit S (còn gọi là hộp S ) được chọn lMa kỹ càng và cố định, ký hiệu chung là S sẽ <small>ii</small> được sử dJng. Bản rõ 64 bit sẽ được sử dJng chia thành 2 nửa L và R . Các vòng có chức <small>00</small> năng giống nhau, nhận input là L và R từ vòng trước và sinh ra output là các xâu 32 bit L <small>i-1i-1i </small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- E là hoán vị mở rộng ánh xạ R từ 32 bit thành 48 bit( đôi khi tất cả các bit được sử <small>i-1</small> dJng hoặc một bit sẽ được sử dJng 2 lần).

- P là hóa vị cố định khác của 32 bit.

Mơt H hoán vi Hbit khởi đầu (IP) được sử dJng cho vòng đầu tiên ; sau vòng cuối cùng nửa trái và phải sẽ được đổi cho nhau và cuối cùng xâu kết quả sẽ được hoán vi Hbit lần cuối bởi hoán vi Hngược của IP (IP-1 ).

Quá trình giải mã diễn ra tương tM nhưng với các khố con ứng dJng vào các vịng trong theo thứ tM ngược lại.

Có thể hình dung đơn giản là phần bên phải trong mỗi vòng (sau khi mở rộng input 32 bit thành 8 ký tM 6 bit – xâu 48 bit) sẽ thMc hiê Hn mơ Ht tính tốn thay thế phJ thuộc khóa trên mỗi một ký tM trong xâu 48 bit, và sau đó sử dJng mơ Ht phép chuyển bit cố định để phân bố lại các bit của các ký tM kết quả hình thành nên output 32 bit.

Các khoá con K (chứa 48 bit của K) được tính bằng cách sử dJng các bảng PC1 và <small>i</small> PC2 (Permutation Choice 1 và 2). Trước tiên 8 bit (k , k<small>816</small>,…,k<small>64</small>) của K bị bỏ đi (áp dJng PC1). 56 bit còn lại được hoán vi Hvà gán cho hai biến 28 bit C và D , và sau đó trong 16 vịng lă Hp cả C và D sẽ được quay 1 hoăc H 2 bit, và các khóa con 48 bit K được chon<small>i</small> từ kết quả của H viê Hc ghép hai xâu với nhau.

Như vâ Hy, ta có thể mơ tả tồn bơ H th Ht tốn sinh mã DES dưới dạng cơng thức như sau: Y = IP <small>-1</small> f<small>16</small> T f<small>15</small> T ... f<small>2</small> T f<small>1</small> IP(x)

Trong đó:

- T mơ tả phép hoán vị của các khối L (1 ≤ i ≤ 15). <small>i</small>R<small>i</small> - f mô tả viê<small>i</small> c dùng hàm f với khoá K (1 ≤ i ≤ 16). H <small>i</small>

<b>Thuật toán chi tiết: </b>

<b>Input: bản rõ M = m</b><small>1</small>m …m<small>264</small>, khóa 64 bit K = k<small>1</small>k …k<small>264</small> (bao gồm cả 8 bit chẵn lẻ, việc thêm bit chẵn lẻ sao cho các đoạn khóa 8 bit có số bit 1 là lẻ)

<b>Output: bản mã 64 bit C = c</b><small>1</small>c<small>2</small>…c<small>64</small>

1. Sinh khóa con. Tính các khóa con theo th Ht tốn sinh khóa con bên dưới

2. (L<small>0</small>,R<small>0</small>) IP(m<small>1</small>m …m<small>264</small>) (Sử dJng bảng hoán vi IP để hoán vi HH các bit , kết quả nhận được chia thành hai nửa là L = m<small>058</small>m …m<small>508</small>, R = m<small>057</small>m …m<small>497</small>.)

3. (16 vòng) for i = 1 to 16

Tính các L và R theo các cơng thức (1) và (2), viêc<small>ii</small> tínhH f(R<small>i-1</small>, K ) = P( S( E(R ) K ) ) được thMc hiện như sau: <small>ii-1i</small>

a) Mở rộng R = r<small>i-11</small>r …r<small>232</small> từ 32 bit thành 48 bit bằng cách sử dJng hoán vi Hmở rộng E. T E(R ). (Vì thế T = r<small>i-132</small>r r …r<small>1 232</small>r<small>1</small>)

b) T’ T K . Biểu diễn T’ như là các xâu gồm 8 ký tM 6 bit T’ = (B<small>i1</small>,…,B<small>8</small>)

c) T’’ (S<small>1</small>(B<small>1</small>), S<small>2</small>(B<small>2</small>),…, S<small>8</small>(B<small>8</small>)). Trong đó S<small>i</small>(B<small>i</small>) ánh xạ b<small>1</small>b …b<small>26</small> thành các xâu 4 bit của phần tử thuộc hàng r và cột c của các bảng S (S box) trong đó r = 2 * b + b và c = b<small>i162</small>b b b<small>3 4 5</small> là mô Ht số nhị phân từ 0 tới 15. Chẳng hạn S (011011) sẽ cho r = 1 và c = 13 và kết quả là 5 <small>1</small> 12

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

biểu diễn dưới dạng nhi Hphân là 0101.

d) T’’’ P(T’’) trong đó P là hốn vi Hcố định để hoán vị 32 bit của T ’’ = t<small>1</small>t …t<small>232</small> sinh ra

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Hình 2.2: Sơ đồ mã hóa DES

<b>III.Hốn vị IP và hốn vị ngược IP<small>-1</small></b>

Bảng hoán vị IP đưa ra trong bảng dưới đây:

58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4

14

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Hai hốn vị IP và IP khơng có ý nghĩa gì về mă<small>-1</small> t mâ HH t mã mà hồn toàn nhằm tạo điều kiê Hn cho viê Hc “chip hoá” thuâ Ht toán DES.

Sơ đồ cấu trúc mơ Ht vịng DES:

Hình 2.3: Sơ đồ một vịng DES

<b>IV. Thuật tốn sinh khóa con</b>

Mười sáu vịng lă Hp của DES chạy cùng thuâ Ht toán như nhau nhưng với 16 khóa con khác nhau. Các khóa con đều được sinh ra từ khố chính của DES bằng mơ Ht th Ht tốn sinh khố con. Khố chính K (64 bit) đi qua 16 bước biến đổi, tại mỗi bước biến đổi này mơ Ht khố con được sinh ra với đơ H dài 48 bit.

Có thể mơ tả th Ht tốn sinh các khóa con chi tiết như sau:

Input: khóa 64 bit K = k<small>1</small>k ...k<small>264</small> (bao gồm cả 8 bit kiểm tra tính chẵn lẻ) Output: 16 khóa con 48 bit K , 1 i 16. <small>i</small>

15

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

1) Định nghĩa v , 1 i 16 như sau: v = 1 đối với i {1,2,9,16}; v = 2 cho các <small>iii</small> trường hợp khác (Đây là các giá tri Hdịch trái cho các quay vòng 28 bit bên dưới).

2) T PC1(K); biểu diễn T thành các nửa 28 bit (C , D ) (Sử dJng bảng PC1 để chọn <small>00</small> các bit từ K: C = k<small>057</small>k ...k<small>4936</small>, D = k<small>063</small>k ...k<small>554</small>.)

3) For i from 1 to 16, tính các K như sau: C (C<small>iii-1 </small> v ), D<small>ii</small> (D<small>i-1 </small> v ), K <small>ii</small> PC2(C<small>i</small> , D ). (Sử dJng bảng PC2 để chọn 48 bit từ xâu ghép b<small>i1 2</small>b ...b<small>56</small> của C và D : K = <small>iii</small> b b ...b<small>14 1732</small>. ‘ ’ là ký hiệu dịch vòng trái.)

Sơ đồ sinh các khóa con của DES:

Hình 2.4: Sơ đồ tạo khóa con của DES

64 bit đầu vào sẽ giảm xuống còn 56 bit bằng cách bỏ đi 8 bit (ở các vị trí chia hết cho 8), các bit này dùng để kiểm tra bit chẵn lẻ. Sau đó 56 bit này lại được trích lấy 48 bit để sinh ra cho 16 vịng khố của DES.

16

</div>

×