Tiểu luận môn toán học cho khoa học máy tính TÌM HIỂU THUẬT TOÁN MÃ HÓA DES Data Encryption Standard

38 990 4
Tiểu luận môn toán học cho khoa học máy tính TÌM HIỂU THUẬT TOÁN MÃ HÓA DES Data Encryption Standard

Đ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

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH PHƯƠNG PHÁP TOÁN TRONG TIN HỌC TÌM HIỂU THUẬT TOÁN MÃ HÓA DES - Data Encryption Standard Giảng viên:PGS.TS Đỗ Văn Nhơn Học viên:Phạm Minh Tiến MSHV: CH1301034 Ngày 25 tháng 12 năm 2013 MỤC LỤC DES | 2 MỞ ĐẦU Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu. Một trong các biện pháp hữu hiệu nhất hiện nay là mã hóa.Khái niệm mã hóa dữ liệu đề cập đến những phép tính toán học và chương trình thuật toán chuyển văn bản gốc thành dạng văn bản mã hóa, đây là một dạng thức khiến cho những người không được ủy quyền không thể đọc được. Người nhận tin nhắn mã hóa sẽ sử dụng một khóa tạo nên cơ chế thuật toán để giải mã dữ liệu, chuyển nó trở về phiên bản văn bản ban đầu. Trước khi có Internet, phương pháp mã hóa dữ liệu rất ít khi được sử dụng rộng rãi vì nó được coi là công cụ bảo đảm an ninh trong lĩnh vực ngoại giao và quân sự nhiều hơn. Tuy nhiên từ khi dịch vụ ngân hàng, mua sắm trực tuyến và các dịch vụ khác trở nên phổ biến thì ngay cả những người chỉ có nhu cầu sử dụng Internet cơ bản tại nhà cũng biết đến mã hóa dữ liệu. Một số giải pháp mã hóa dữ liệu tối ưu có thể được sử dụng qua nhiều thế kỷ, trong khi các phương pháp giải mã khác có thể bị phá vỡ bởi những người có kỹ năng về lĩnh vực này trong thời gian ngắn. Một số chuẩn mã hóa dữ liệu phổ biến là: DES, AES (Advanced Encryption Standard - Tiêu chuẩn mã hóa nâng cao),… Thuật toán mã hóa khối ra đời sớm và có nhiều ảnh hưởng là thuật toán DES(Data Encryption Standard - Tiêu chuẩn mã hóa dữ liệu). Sau đây, chúng ta sẽ tìm hiểuvềDES. DES | 3 KHÁI NIỆM CƠ BẢN VỀ MÃ HÓA VÀ GIẢI MÃ 1. Khái niệm Mã hóa là một quá trình che dấu thông tin, biến đổi thông tin ở dạng đọc được thành dạng khác (có thể vô nghĩa). Và chỉ có người có khóa mới có thể giải mã được thông tin này thành dạng đọc được ban đầu. Chuỗi đã mã hóa Hình: Mô tả mã hóa giải mã Các thuật ngữ thường dùng trong mã hóa và giải mã: • Cryptosystem (Cryptographic System):đây là hệ thống mã hóa thông tin, có thể là phần mềm như PGP, Ax-Crypt, Truecrypt giao thức như SSL, IPsec dùng trong Internet hay đơn giản là một thuật toán như DES. • Encrypt (Encipher, Encryption):gọi là mã hóa – đó là quá trình biến đổi thông tin từ dạng ban đầu - có thể hiểu được thành dạng không thể hiểu được, với mục đích giữ bí mật thông tin đó. • Decrypt (decipher, decryption):gọi là giải mã – đó là quá trình ngược lại với mã hóa, khôi phục lại thông tin ban đầu từ thông tin đã được mã hóa. • Plain text/message: là thông điệp ban đầu chưa được mã hóa. • Cipher text/message:là chuỗi thu được sau khi mã hóa. • Cipher : là thuật toán sử dụng để thực hiện quá trình mã hóa hay giải mã. • Key: là chìa khóa –khóa cung cấp thông tin cần cho qui trình mã hóa và giải mã. 2.Các nguyên lý của bảo mật và mã hóa Có 4 nguyên lý chính: o Tính bí mật (Confidentiality / Privacy). o Tính toàn vẹn (Integrity). o Tính xác thực (Authentication). o Tính không chối bỏ (Non-repudiation). o Tính nhận dạng (Identification). DES | 4 Khóa Thông tin gốc Giải mã Khóa Mã hóaThông tin cần mã hóa @#$ 3.Các dạng thuật toán mã hóa a/ Dạng cổ điển: -Substitution: sự thay thế – đây là phương pháp mã hóa mà từng kí tự (hoặc từng nhóm kí tự) của thông điệp ban đầu được thay thế bằng một (hay một nhóm) thông điệp khác. Phương pháp này không còn được sử dụng nhưng ý tưởng của phương pháp này vẫn được sử dụng là tiền đề trong những thuật toán hiện đại. -Transposition: sự hoán vị – đây là phương pháp mã hóa trong đó các ký tự của thông điệp ban đầu thay đổi vị trí cho nhau còn bản thân các thông điệp không hề bị thay đổi. b/Phương pháp hiện đại: + Symmetric cryptography (mã hóa đối xứng): tức là cả hai quá trình mã hóa và giải mã đều dùng một chìa khóa. Để đảm bảo tính an toàn, chìa khóa này phải được giữ bí mật. Vì thế các thuật toán loại này còn có tên gọi khác là secret key cryptography (hay private key cryptography). Các thuật toán loại này thường được dùng cho mục đích mã hóa dữ liệu của cá nhân hay tổ chức đơn lẻ nhưng bộc lộ hạn chế khi thông tin đó phải được chia sẻ với một bên thứ hai.  Block ciphers: thuật toán khối – trong đó từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài. Độ dài mỗi khối gọi là block size, thường được tính bằng đơn vị bit. Ví dụ: DES, 3DES…  Stream ciphers: thuật toán dòng – trong đó dữ liệu đầu vào được mã hóa từng bit một. Các thuật toán dòng có tốc độ nhanh hơn các thuật toán khối, được dùng khi khối lượng dữ liệu cần mã hóa chưa được biết trước, ví dụ trong kết nối không dây. Có thể coi thuật toán dòng là thuật toán khối với kích thước mỗi khối là 1 bit. Một số thuật toán dòng thông dụng: RC4, A5/1, A5/2, Chameleon +Asymmetric cryptography(mã hóa bất đối xứng) sử dụng một cặp chìa khóa có liên quan với nhau về mặt toán học, một chìa công khai dùng để mã hoá (public key) và một chìa bí mật dùng để giải mã (private key). Một thông điệp sau khi được mã hóa bởi chìa công khai sẽ chỉ có thể được giải mã với chìa bí mật tương ứng. Do các thuật toán loại này sử dụng một chìa khóa công khai (không bí mật) nên còn có tên gọi khác là public-key cryptography (thuật toán mã hóa dùng chìa khóa công khai). Một số thuật toán bất đối xứng thông dụng là : RSA, Elliptic Curve, ElGamal, Diffie Hellman 4.Một vài thuật toán mã hóa nổi tiếng  DES (Data Encryption Standard).  One-time Pad (OTP).  AES (Advance Encryption Standard).  RSA. DES | 5 DES | 6 I.GIỚI THIỆU Thuật toán DES(Data Encryption Standard) là một thuật toán mã hóa được dùng rộng rãi nhất trên thế giới. Trong nhiều năm và đối với nhiều người việc mã hóa bảo mật và DES là một. Bất chấp việc nhiều cỗ máy được tạo ra để bẻ khóa DES điển hình như cổ máy trị giá $220000 của Electronic Frontier Foundation, DES vẫn tồn tại trong các ngân hàng cũng như chính phủ bằng việc cải thiện qua nhiều phiên bản như “Triple-DES”. Kể từ khi DES ra đời, nhiều thuật toán mã hoá bảo mật khác cũng được phát triển tương tự DES hoặc dựa trên DES, một khi nắm được các nguyên tắc của DES bạn sẽ dễ dàng hiểu các thuật toán này. 15-5-1973 dưới thời của Tổng Thống Richard Nicxon, Cục Tiêu Chuẩn Liên Bang Hoa Kỳ đã công bố một thông báo trên Công báo Liên Bang mời đề xuất các thuật toán mã hóa đễ bảo vệ dữ liệu trong quá trình truyền và lưu trữ. Thông báo đã nêu rõ lý vai trò quan trọng của việc mã hóa dữ liệu. Trong thập kỷ qua, đã có sự tăng tốc mạnh mẽ trong tích luỹ và truyền dữ liệu của ngành công nghiệp, chính phủ và của các tổ chức khác trong khu vực tư nhân. Phần lớn những nội dung truyền đi là những tài liều nhạy cảm và quan trọng như việc chuyển tiền, hợp đồng, email, thông tin cá nhân, các hoạt động ngầm của chính phủ… Với sự tăng nhanh không ngừng về khối lượng giá trị cũng như tính chất của nhủng thông tin được lưu trũ cũng như truyền đi điều này dẫn đến yêu cầu cần có những giải thuật cần thiết đễ mã hóa các thông điệp này. Sau một thời gian chờ đợi, nhiều đề xuất về thuật toán mã hóa đã được đưa ra tuy nhiên không đáp ứng được yêu cầu đề ra. Đến ngày 6 tháng 8 năm 1974, ba ngày trước khi Nixon từ chức, IBM đã đưa ra thuật toán Lucifer. Thuật toán này đã được đánh giá với sự trợ giúp của Cơ quan An ninh Quốc Gia (NSA) và vượt qua hầu hết các tiêu chuẩn được đưa ra của Cục tiêu chuẩn Liên bang Hoa Kỳ. Sau một số sửa đổi Cục tiêu chuẩn Liên bang Hoa Kỳ chính thức công nhận thuật toán Lucifer và đổi tên thành Data Encryption Standard (DES) vào 15 tháng 7 năm 1977. DES đã nhanh chóng được áp dụng trong lĩnh vực truyền tín hiệu như đường dây điện thoại công cộng. Ví dụ trong vòng một vài năm hãng International Flavors and Fragrances đã sử dụng DES đễ bảo vệ các công thức sản xuất của mình khi truyền qua điện thoại ("With Data Encryption, Scents Are Safe at IFF," Computerworld 14, No. 21, 95 (1980)). Trong khi đó lực lượng có nhu cầu mã hóa dữ liệu lớn nhất bên ngoài chính phủ đó là các ngân hàng đã sử dụng DES như chuẩn mã hóa dữ liệu chính của mình khi thực hiện các giao dịch. DES đã được American National Standards Institute(ANSI) chứng nhận là chuẩn mã hóa dự liệu trong giao dịch của ngân hàng vào năm 1980. DES | 7 DES | 8 II. TỔNG QUAN Giải thuật DES được phát triển tại công ty IBM dựa trên hệ mã hóa LUCIFER của Feistel. DES là một thuật toán mã hóa khối (block cipher) nghĩa là chuỗi cần mã hóa sẽ được đóng thành những khối có kích thước 64 bit và trả về một chuỗi đã được mã hóa có kích thước tương đương.Thực sự mà nói DES chính là kết quả của phép hoán vị (permutation) bằng 2 64 vị trí có thể của chuỗi 64 bit trong số đó có thể là 0 hoặc 1. Mỗi khối 64 bit này được chia thành 2 khối 32 bit bằng nhau, nửa khối bên trái L và nữa khối bên phải R. (Sự phân chia này chỉ sử dụng trong những hoạt động nhất định). Do quá trình mã hóa và giải mã chỉ sử dụng một “khóa ” nên DES thuộc loại mã hóa đối xứng (Symmetric cryptography). Hình. Mô hình mã hóa đối xứng Khóa mã có độ dài 64 bit, trong đó có 8 bit chẵn lẻ được sử dụng để kiểm soát lỗi. Các bit chẵn lẻ nằm ở các vị trí 8, 16, 24,… , 64. Tức là cứ 8 bit khóa thì có 1 bit kiểm soát lỗi, bit này qui định số bit có giá trị 1 của khối 8 bit đó theo tính bù chẵn. Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các kỹthuật thay thế và hoán vị bản rõ dựa trên khoá. Đó là các vòng lặp. DES sửdụng 16 vòng lặp, nó áp dụng cùng một kiểu kết hợp của các kỹ thuật trên khối bản rõ 16 lần. DES | 9 Hình. Sơ đồ mã DES Thuật toán chỉ sử dụng các phép toán số học và lôgíc trên các số 64 bít, vì vậy nó dễ dàng thực hiện vào những năm 1970 trong điều kiện về công nghệ phần cứng lúc bấy giờ. Ban đầu, sự thực hiện các phần mềm kiểu này rất thô sơ, nhưng hiện tại thì việc đó đã tốt hơn, và với đặc tính lặp đi lặp lại của thuật toán đã tạo nên ý tưởng sử dụng chíp với mục đích đặc biệt này. DES | 10 [...]... được mô tả trên hình: Hình Mã hóa ECB Hình Giải mã ECB Ta có thể thấy ở chế độ ECB, mỗi khối thông điệp mã hóa thu được do áp dụng trực tiếp thuật toán DES trên một khối thông diệp cần mã hóa Do đó mỗi khối mã hóa thu được không phụ thuộc vào những khối thông điệp mã hóa trước đó Một bất lợi khi sử dụng chế độ ECB là khối thông điệp cần mã hóa được mã hóa thành đúng khối cần mã hóa, thực sự nó sẽ không... ra khối mã hóa hiện tại Khối output hiện tại thu được bằng cách áp dụng quá trình mã hóa trên khối output trước đó Trong lần đầu tiên khối output sẽ là IV DES | 31 VI.GIẢI MÃ Quá trình giải mã DES tương tự như quá trình mã hóa Khóa được sử dụng trong quá trình mã hóa sẽ được sử dụng lại trong quá trình giải mã, còn chuỗi cần mã hóa sẽ được thay thế bằng chuỗi đã mã hóa Kết thúc quá trình giải mã ta sẽ... cần mã hóa khác Lưu ý khối thông điệp cần mã hóa ban đầu sẽ sử dụng IV là khối mã hóa trước đó để thực hiện phépXOR DES | 28 -Quá trình giải mã: C1 giải mã IV⊕B1, (IV⊕B1)⊕IV=B1 C2 giải mã B1⊕B2, (B1⊕B2)⊕B1=B2 Cn giải mã Bn-1⊕Bn, (Bn-1⊕Bn)⊕Bn-1=Bn Hình Giải mã CBC Chú ý: ở CFB và OFB cả hai quá trình mã hoá và giải mã đều dùng hàm Ek để mã hoá với khoá K trong DES (không dùng hàm giải mã Dk trong Des) ... thứ hai • Lần 3: Mã hóa một lần nữa sử dụng khóa thứ ba Hình Minh họa Triple -DES Triple -DES phải thực hiện mã hóa ba lần do đó tốc độ mã hóa sẽ chậm hơn DES tiêu chuẩn nhiều lần tuy nhiên khả năng bảo mật sẽ cao nếu sử dụng đúng cách Việc giải mã được thực hiện đảo ngược lại với quy trình giải mã Giống như DES những khối dữ liệu mã hóa và giải mã được đóng thành những khối 64 bit DES | 36 ... của DES Nó sử dụng 3 khóa 64 bit tạo ra khóa có độ dài 192 bit Với Triple -DES bạn chỉ cần gõ khóa 192 bit(24 ký tự) thay vì gõ cả 3 khóa riêng biệt, sau khi được người dùng cung cấp thì khóa 192 bít này sẽ được tách thành 3 khóa con có độ dài 64 bit Thủ tục mã hóa được thực hiện như ở DES tuy nhiên việc đó sẽ được lặp lại 3 lần: • Lần 1: Mã hóa dữ liệu sử dụng khóa đầu tiên • Lần 2: Giải mã bằng khóa... kết khối mã Trong CBC thi data được chia thành các khối 64 bit (D1,D2, ,Dn) Sẽ có giá trị IV (64 bit dùng để khởi tạo) -Quá trình mã hoá: IV⊕D1 mã hoáC1 D1⊕D2 mã hoáC2 Dn-1⊕Dn mã hoáCn Hình Mã hóa CBC Dựa vào sơ đồ ta có thể thấy được mỗi khối thông điệp mã hóa sẽ được XOR với một khối thông điệp cần mã hóa trước đó để tạo ra khối thông điệp mã hóa Với cách làm này mỗi khối thông điệp mã hóa sẽ phụ... nhiều cổ máy phá mã DES được sản xuất ra nhằm quét hết các khóa có thể của DES trong thời gian ngắn nhất Rất nhiều tiền đã được chi và kết quả là số lượng khóa DES được quét hết chỉ vẻn vẹn trong 3,5 giờ Trước việc khóa DES có thể phá dễ dàng như vậy nhiều chuyên gia đã quyết định không sử dụng DES để bảo vệ dữ liệu của mình Triple -DES chính là câu trả lời cho những thiếu xót của DES Triple -DES cơ bản... qua do đó độ lớn thực tế của “khóa” chỉ là 56 bit Ví dụ bạn cần mã hóa thông điệp sau “8787878787878787” sử dụng khóa "0E329232EA6D0D73" thì sau khi mã hóa bằng DES bạn sẽ thu được một chuỗi đã mã hóa là “0000000000000000” Nếu thực hiện giải mã chuỗi đã được mã hóa đó bằng key đã được sử dụng ta sẽ thu được chuỗi ban đầu Ví dụ trên rất rõ ràng với thông điệp được mã hóa có chiều dài là 64 bit Trường... nhiều nhất 256 lần thử để tìm ra khóa đúng Nếu khóa có độ dài 56 bit thì sẽ có 2 56khóa có thể sử dụng Giả sử một Suppercomputer có thể thử một triệu khóa trong một giây, thì nó sẽ cần 2000 năm để tìm ra khóa đúng Nếu khóa có độ dài 64 bit, thì với chiếc máy trên sẽ cần 600000 năm để tìm ra khóa đúng trong 2 64 khóa Nếu khóa có độ dài 128 bit, thì sẽ mất 1025 năm để tìm ra khóa đúng Vũ trụ chỉ mới tồn tại... pháp để phá mã DES như phá mã vi sai (differential cryptanalysis - DC), phá mã tuyến tính (linear cryptanalysis - LC) và phá mã Davies (Davies' attack) Sau nhiều cải tiến một phiên bản cải tiến của DES đã ra đời là Triple -DES đã xóa bỏ những nhược điểm của DES với việc sử dụng khóa có chiều dài lớn , việc phá khóa Triple DES là điều rất khó khăn, chuyên gia về bảo mật Bruce Schneier đã cho rằng "Không . ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH PHƯƠNG PHÁP TOÁN TRONG TIN HỌC TÌM HIỂU THUẬT TOÁN MÃ HÓA DES - Data Encryption Standard Giảng viên:PGS.TS. chuẩn mã hóa dữ liệu phổ biến là: DES, AES (Advanced Encryption Standard - Tiêu chuẩn mã hóa nâng cao),… Thuật toán mã hóa khối ra đời sớm và có nhiều ảnh hưởng là thuật toán DES( Data Encryption Standard. Encryption Standard) .  One-time Pad (OTP).  AES (Advance Encryption Standard) .  RSA. DES | 5 DES | 6 I.GIỚI THIỆU Thuật toán DES( Data Encryption Standard) là một thuật toán mã hóa được dùng

Ngày đăng: 23/05/2015, 10:16

Từ khóa liên quan

Mục lục

  • MỞ ĐẦU

  • KHÁI NIỆM CƠ BẢN VỀ MÃ HÓA VÀ GIẢI MÃ

    • 1. Khái niệm

    • 2.Các nguyên lý của bảo mật và mã hóa

    • 3.Các dạng thuật toán mã hóa

    • 4.Một vài thuật toán mã hóa nổi tiếng

    • I.GIỚI THIỆU

    • II. TỔNG QUAN

    • III. THUẬT TOÁN

      • Bước 1. Tạo khóa con

      • Bước 2. Mã hóa khối thông tin 64 bit

      • Hàm F (Feistel)

      • IV. VÍ DỤ

        • Bước 1. Tạo ra 16 khóa con có chiều dài 48bit

        • Bước 2. Mã hóa khối thông tin 64 bit

        • V. CÁC CHẾ ĐỘ HOẠT ĐỘNG

          • 1. ECB (Electronic Code Book operation mode)

          • 2. CBC (Cipher Block Chaining operation mode)

          • 3. CFB (Cipher Feedback operation mode)

          • 4. OFB (Output Feedback operation mode)

          • VI.GIẢI MÃ

          • VII. ĐỘ AN TOÀN

          • VIII. PHÁ KHÓA DES

          • IX. ỨNG DỤNG

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

Tài liệu liên quan