1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng An ninh mạng viễn thông (HV Công nghệ Bưu chính Viễn Thông)

159 7 0

Đ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

Thông tin cơ bản

Tiêu đề Bài Giảng An Ninh Mạng Viễn Thông
Tác giả Ts. Nguyễn Chiến Trinh, Pgs.Ts. Nguyễn Tiến Ban, Ts. Hoàng Trọng Minh, Ths. Nguyễn Thanh Trà, Ths. Phạm Anh Thư
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Điện tử Viễn thông
Thể loại bài giảng
Năm xuất bản 2016
Thành phố Hà Nội
Định dạng
Số trang 159
Dung lượng 3,42 MB

Cấu trúc

  • Chương 1: Tổng quan an toàn mạng truyền thông (7)
    • 1.1 Khái niệm an toàn mạng truyền thông (7)
    • 1.2 Kiến trúc an toàn (7)
    • 1.3 Tấn công mạng (8)
    • 1.4 Dịch vụ an toàn (10)
    • 1.5 Các cơ chế an toàn (12)
    • 1.6 Mô hình an toàn mạng (14)
  • Chương 2: Mật mã khóa đối xứng (17)
    • 2.1 Mô hình mật mã hóa khóa đối xứng (17)
    • 2.2 Mật mã khối và tiêu chuẩn mật mã hóa dữ liệu DES (21)
      • 2.2.1 Cấu trúc mật mã khối (21)
        • 2.2.1.1. Cấu trúc chung của mật mã khối (22)
        • 2.2.1.2 Cấu trúc mật mã khối Feistel (24)
      • 2.2.2 DES (28)
        • 2.2.2.1 Cấu trúc DES (28)
        • 2.2.2.2 Hoán vị khởi tạo và hoán vị kết thúc (29)
        • 2.2.2.3 Các vòng mật mã của DES (30)
        • 2.2.2.4 Thuật toán sinh khóa con của DES (32)
        • 2.2.2.5 Hiệu ứng lan truyền (32)
      • 2.2.3 Nguyên lí thiết kế mật mã khối (34)
    • 2.3 Tiêu chuẩn mật mã hóa tiên tiến AES (35)
      • 2.3.1 Cấu trúc AES (35)
      • 2.3.2 Các hàm biến đổi AES (39)
        • 2.3.2.1 Hàm SubBytes (39)
        • 2.3.2.2 Hàm ShiftRows (41)
        • 2.3.2.3 Hàm MixColumns (42)
        • 2.3.2.4 Hàm AddRoundKey (43)
      • 2.3.3 Tạo khóa AES (45)
      • 2.3.4 Thực hiện AES (46)
    • 2.4 Các ứng dụng của mật mã khối (50)
      • 2.4.1 Mật mã hóa nhiều lần (50)
      • 2.4.2 Các chế độ và ứng dụng mật mã khối (52)
    • 2.5 Tạo số giả ngẫu nhiên và mật mã dòng (59)
      • 2.5.1 Nguyên lí tạo số giả ngẫu nhiên (59)
      • 2.5.2 Bộ tạo số giả ngẫu nhiên (61)
      • 2.5.3 Mật mã dòng (64)
      • 2.5.4 RC4 (65)
      • 3.1.1 Nguyên lí hệ thống mật mã khóa công khai (68)
        • 3.1.1.1 ệ mật khóa công khai (0)
        • 3.1.1.2 Các ứng dụng cho hệ mật khóa công khai (0)
        • 3.1.1.3 Các yêu cầu đối với hệ mật khóa công khai (0)
      • 3.1.2 Giải thuật RSA (75)
    • 3.2 Trao đổi khóa Diffie-Hellman (88)
    • 3.3 ệ thống mật mã Elgamal (0)
    • 3.4 Tạo số giả ngẫu nhiên sử dụng mật mã bất đối xứng (98)
  • Chương 4: Các giải thuật toàn vẹn dữ liệu (101)
    • 4.1 àm băm (0)
      • 4.1.1 Ứng dụng của hàm băm (101)
      • 4.1.2 Các yêu cầu và độ an toàn hàm băm (103)
    • 4.2 Mã xác thực bản tin MAC (106)
      • 4.2.1 Các yêu cầu xác thực bản tin (106)
      • 4.2.2 Chức năng xác thực bản tin (107)
      • 4.2.3 Các yêu cầu cho mã xác thực bản tin (115)
      • 4.2.4 Tính an toàn của MAC (118)
      • 4.2.5 MAC dựa trên hàm băm HMAC (120)
      • 4.2.7 Mật mã được xác thực (129)
  • Chương 5: Xác thực (139)
    • 5.1 Quản lí và phân phối khóa (0)
      • 5.1.1 h n hối khóa đối xứng s dụng mật mã hóa đối xứng (0)
      • 5.1.2 h n hối khóa đối xứng bằng mật mã hóa bất đối xứng (0)
      • 5.1.3 h n hối khóa công khai (0)
      • 5.1.4 Chứng thư X.509 (0)
    • 5.2 Xác thực người sử dụng (152)
      • 5.2.1 Nguyên lí xác thực người s dụng từ xa (0)
      • 5.2.2 Xác thực người dùng s dụng mật mã khóa đối xứng ............................................................................. 149 5.2.3 Xác thực người dùng s dụng mật mã khóa bất đối xứng ............................ Error! Bookmark not defined (0)

Nội dung

Tổng quan an toàn mạng truyền thông

Khái niệm an toàn mạng truyền thông

Trước khi công nghệ máy tính phát triển, khi đề cập đến an toàn bảo mật thông tin, chúng ta thường nghĩ đến các biện pháp nhằm bảo vệ thông tin trong quá trình trao đổi và lưu trữ Ví dụ, những biện pháp này bao gồm việc mã hóa dữ liệu, sử dụng mật khẩu mạnh và thực hiện các quy trình xác thực.

 Đóng dấu và ký niêm hong một bức thư để biết rằng lá thư có được chuyển nguyên vẹn đến người nhận hay không

Mật mã hóa bản tin là phương pháp giúp người gửi và người nhận hiểu rõ nội dung thông điệp Phương pháp này thường được áp dụng trong lĩnh vực chính trị và quân sự để đảm bảo tính bảo mật và an toàn cho thông tin.

Để bảo vệ tài liệu mật, cần lưu giữ chúng trong các két sắt có khóa tại những địa điểm được bảo vệ nghiêm ngặt, chỉ cho phép những người có quyền hạn mới có thể truy cập và xem tài liệu.

Với sự phát triển mạnh mẽ của công nghệ thông tin, đặc biệt là mạng Internet, lượng thông tin lưu trữ trên máy tính và truyền tải qua mạng ngày càng gia tăng Điều này dẫn đến nhu cầu cấp thiết về an toàn và bảo mật thông tin trên máy tính.

Có thể h n loại mô hình an toàn mạng thông tin trên máy tính theo hai hư ng chính như sau:

1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network Security)

2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự x m nhậ há hoại từ bên ngoài (System Security)

Kiến trúc an toàn

ITU-T đã khuyến nghị X.800, định nghĩa kiến trúc an toàn cho mô hình OSI, giúp các nhà quản lý tổ chức cung cấp dịch vụ an toàn Kiến trúc này, được phát triển như một chuẩn quốc tế, cho phép các nhà cung cấp cơ sở hạ tầng, thiết bị và dịch vụ triển khai các tính năng an toàn cho sản phẩm của họ Kiến trúc an toàn tập trung vào các kiểu tấn công, cơ chế an toàn và dịch vụ an toàn, với các đặc điểm được định nghĩa ngắn gọn.

 Tấn công an toàn: bất kỳ hành động nào mà làm hại đến tính an toàn thông tin của một tổ chức nào đó

 Cơ chế an toàn: quá trình được thiết kế để hát hiện, ngăn ngừa, hay khôi hục lại các kiểu tấn công an toàn

Dịch vụ an toàn là giải pháp truyền thông giúp nâng cao tính bảo mật cho hệ thống xử lý dữ liệu và thông tin của tổ chức Những dịch vụ này chủ yếu được sử dụng để ngăn chặn các cuộc tấn công an ninh, đồng thời áp dụng một hoặc nhiều cơ chế bảo vệ để đảm bảo an toàn cho thông tin.

Tấn công mạng

Tấn công mạng chủ yếu được phân loại thành hai loại: tấn công thụ động và tấn công tích cực Tấn công thụ động liên quan đến việc thu thập hoặc khai thác thông tin từ hệ thống mà không làm ảnh hưởng đến tài nguyên của nó Ngược lại, tấn công tích cực bao gồm các hành động nhằm thay đổi tài nguyên hệ thống hoặc gây ảnh hưởng đến hoạt động của chúng.

Các kiểu tấn công thụ động

Các tấn công thụ động, như nghe trộm và giám sát hoạt động truyền thông, nhằm mục đích thu thập thông tin đang được truyền tải Hai hình thức chính của loại tấn công này bao gồm việc xem trộm nội dung bản tin và phân tích lưu lượng dữ liệu.

Hình 1.1: Các tấn công thụ động

Có ba kiểu tấn công nhằm xem trộm nội dung bản tin, bao gồm cuộc điện thoại, email và file truyền tải, trong đó có thể chứa thông tin bí mật hoặc nhạy cảm Kẻ tấn công sẽ tìm cách tiếp cận để xem trộm những thông tin này Một kiểu tấn công thụ động khác là phân tích lưu lượng, trong đó giả định rằng đã có biện pháp che dấu nội dung bản tin để kẻ tấn công không thể tách thông tin từ đó, mặc dù họ có thể bắt được các bản tin Kỹ thuật phổ biến để che dấu thông tin là mã hóa, nhưng nếu bản tin đã được mã hóa, kẻ tấn công vẫn có thể quan sát mẫu các bản tin và xác định vị trí, nhận dạng các thiết bị truyền thông Họ cũng có thể theo dõi tần suất và độ dài của các bản tin đang được trao đổi, thông tin này có thể giúp họ đoán được bản chất của quá trình truyền thông đang diễn ra.

Các tấn công thụ động rất khó phát hiện vì chúng không gây ra bất kỳ thay đổi nào trong dữ liệu Lưu lượng tin nhắn được gửi và nhận một cách bình thường, khiến cả người gửi và người nhận không nhận ra sự hiện diện của bên thứ ba đang theo dõi Tuy nhiên, có thể ngăn chặn loại tấn công này bằng cách sử dụng các phương pháp mã hóa Do đó, việc phòng ngừa là quan trọng hơn so với việc phát hiện các tấn công thụ động.

Các kiểu tấn công tích cực

Các tấn công tích cực liên quan đến việc thay đổi hoặc tạo ra dòng dữ liệu sai lệch, được phân loại thành bốn loại chính: mạo danh, hát lại bản tin, sửa đổi bản tin, và từ chối dịch vụ.

Hình 1.2: Các tấn công tích cực

Tấn công mạo danh là hình thức tấn công mà kẻ xấu giả mạo danh tính để gửi thông điệp đến bên nhận Bên nhận không nhận ra sự giả mạo này và tin rằng thông điệp đó đến từ nguồn hợp lệ.

Tấn công phát lại liên quan đến việc sao chép dữ liệu và gửi lại bản sao đó cho bên nhận, có thể gây ra tác hại tương tự như tấn công mạo danh Ví dụ, nếu Alice là ngân hàng và Bod là khách hàng, khi Bod gửi yêu cầu chuyển 1000$ cho Darth với chữ ký điện tử để ngăn chặn mạo danh, thì nếu Darth sao chép và phát lại tin nhắn đó, các biện pháp bảo vệ sẽ trở nên vô nghĩa Kết quả là Alice có thể tin rằng Bod đang gửi thêm một yêu cầu chuyển tiền khác cho Darth.

Darth đã chặn và thay đổi nội dung các bản tin của Bod gửi cho Alice, khiến cô không nhận ra rằng những thông điệp này đã bị sửa đổi Cụ thể, bản tin gốc của Bod gửi cho Alice là “Cho hé John đọc được các account file bí mật”, nhưng đã bị Darth chỉnh sửa thành “Cho hé Fred đọc được các account file bí mật” Alice tin rằng cô nhận được bản tin nguyên bản mà không hề hay biết về sự thay đổi này.

Tấn công từ chối dịch vụ (DDoS) nhắm vào một mục tiêu cụ thể, chẳng hạn như chặn toàn bộ các bản tin được gửi đến địa chỉ đó Một hình thức khác của tấn công này là làm sập hoàn toàn mạng, có thể thông qua việc làm mất khả năng hoạt động hoặc làm quá tải mạng bằng cách gửi liên tục các bản tin, dẫn đến suy giảm hiệu năng của hệ thống mạng.

Mặc dù có nhiều phương pháp phòng ngừa, việc ngăn chặn hoàn toàn các nguy cơ tấn công mạng, phần mềm và thiết bị là rất khó khăn do sự đa dạng của các kiểu tấn công hiện nay.

Dịch vụ an toàn

X.800 định nghĩa dịch vụ an toàn là một dịch vụ được cung cấ bởi l giao thức của các hệ thống truyền thông và đảm bảo tính an toàn của các hệ thống hoặc của việc truyền dữ liệu RFC 4949 định nghĩa dịch vụ an toàn thực hiện các chính sách an toàn và được thực thi bởi các cơ chế an toàn

X.800 chia các dịch vụ này thành năm loại và 14 dịch vụ cụ thể như sau

Dịch vụ xác thực đảm bảo rằng quá trình truyền thông được xác thực và thông tin, như tín hiệu cảnh báo hoặc báo thức, đến từ nguồn đáng tin cậy Khi có sự tương tác giữa các thiết bị, dịch vụ xác thực xác nhận rằng cả hai thực thể đều được xác thực tại thời điểm khởi tạo kết nối Đồng thời, dịch vụ này cũng bảo vệ kết nối khỏi việc bị can thiệp, ngăn chặn bên thứ ba giả mạo một trong hai bên để thực hiện việc nhận và truyền dẫn thông tin một cách trái phép.

Hai loại dịch vụ xác thực được định nghĩa trong X.800:

Xác thực toàn bộ các peer là quá trình cung cấp chứng thực nhận dạng thực thể eer trong một liên kết Hai thực thể được gọi là eer khi chúng thực thi cùng một giao thức trong các hệ thống khác nhau Việc xác thực eer diễn ra tại thời điểm thiết lập kết nối hoặc trong suốt quá trình truyền dữ liệu của kết nối.

Xác thực dữ liệu cung cấp chứng thực nguồn gốc của dữ liệu, nhưng không bảo vệ chống lại việc sao chép hoặc chỉnh sửa Dịch vụ này hỗ trợ các ứng dụng không có sự tương tác trước đó giữa các thực thể truyền thông, chẳng hạn như thư điện tử, và đóng vai trò quan trọng trong việc kiểm soát truy cập.

Trong lĩnh vực an toàn mạng, kiểm soát truy cập là phương pháp quan trọng để hạn chế và quản lý quyền truy cập vào các hệ thống và ứng dụng thông qua các kết nối truyền thông Để thực hiện điều này, mỗi người dùng hoặc thực thể cần được xác thực danh tính trước khi được phép truy cập vào các thành phần mạng, dữ liệu lưu trữ, luồng thông tin, dịch vụ và ứng dụng mạng.

Dịch vụ bảo mật dữ liệu

Dịch vụ bảo mật dữ liệu nhằm bảo vệ thông tin truyền đi khỏi các cuộc tấn công thụ động, với nhiều mức độ bảo vệ khác nhau Mức độ rộng nhất bao gồm việc bảo vệ toàn bộ dữ liệu của người sử dụng trong suốt quá trình truyền tải giữa hai bên Ngược lại, mức độ hẹp nhất chỉ bảo vệ một bản tin đơn lẻ hoặc một số trường cụ thể trong bản tin Một khía cạnh quan trọng khác của dịch vụ này là bảo vệ luồng dữ liệu khỏi sự theo dõi của kẻ tấn công, đảm bảo rằng chúng không thể xâm nhập vào thông tin.

6 được hía nguồn, hía đích, tần suất, độ dài, hay các đặc tính khác của lưu lượng trên một hương tiện truyền thông

Dịch vụ toàn vẹn dữ liệu

Dịch vụ toàn vẹn dữ liệu, giống như dịch vụ bảo mật dữ liệu, có thể áp dụng cho một dòng bản tin, một bản tin hoặc một số trường xác định trong bản tin Dịch vụ toàn vẹn hướng kết nối đảm bảo rằng các bản tin được nhận mà không bị lặp, chèn, chỉnh sửa, sai thứ tự hay truyền lại, đồng thời có khả năng khôi phục sự hư hại dữ liệu Điều này giúp ngăn chặn các kiểu tấn công từ chối dịch vụ và chỉnh sửa dòng bản tin Ngược lại, dịch vụ toàn vẹn hướng không kết nối thực hiện bảo vệ cho từng bản tin riêng biệt, thường cung cấp sự bảo vệ chống lại việc chỉnh sửa bản tin.

Dịch vụ không từ chối (Nonrepudiation)

Dịch vụ không từ chối giúp ngăn chặn việc bên gửi hoặc bên nhận từ chối đã gửi hoặc đã nhận thông điệp Một ví dụ điển hình là việc sử dụng chữ ký điện tử để thực hiện dịch vụ này.

Các dịch vụ khả dụng

Cả X.800 và RFC 4949 đều định nghĩa tính khả dụng là đặc tính của hệ thống hoặc tài nguyên hệ thống có khả năng truy cậ và s dụng dựa trên nhu cầu bởi một thực thể hệ thống được cấ quyền, tùy thuộc vào các đặc tả hiệu năng của hệ thống đó (nghĩa là hệ thống là khả dụng nếu nó cung cấ các dịch vụ theo thiết kế hệ thống bất cứ khi nào người s dụng yêu cầu) Có rất nhiều kiểu tấn công có thể làm mất hoặc giảm tính khả dụng Có một số cách tự động đối hó v i các kiểu tấn công này như xác thực và mật mã hóa, trong khi một số cách khác yêu cầu một số biện há mức vật lý để hòng ngừa hoặc khôi hục việc mất tính khả dụng của các hần t của các hệ thống.

Các cơ chế an toàn

Bảng dư i đ y liệt kê các cơ chế an toàn theo định nghĩa trong X.800, được chia thành hai loại: cơ chế thực thi trong giao thức cụ thể như TC hoặc giao thức ứng dụng, và cơ chế không cụ thể cho bất kỳ giao thức hoặc dịch vụ an toàn nào X.800 phân biệt giữa các cơ chế mã hóa thuận nghịch và không thuận nghịch Cơ chế mã hóa thuận nghịch là thuật toán cho phép mã hóa dữ liệu và sau đó giải mã lại.

7 hóa không thuận nghịch gồm các thuật toán hàm băm và các mã xác thực bản tin được s dụng trong các ứng dụng xác thực và chữ ký điện t

Bảng 1.1: Các cơ chế an toàn

Hình dư i đ y ch ra mối quan hệ giữa các dịch vụ an toàn và các cơ chế an toàn

Hình 1.3: Mối quan hệ giữa các dịch vụ an toàn và các cơ chế an toàn

Mô hình an toàn mạng

Mô hình an toàn mạng được mô tả trong hình 1.4

Hình 1.4: Mô hình an toàn mạng

Bản tin được truyền từ nguồn đến đích qua Internet, thiết lập một kênh thông tin logic bằng cách định nghĩa tuyến đường và sử dụng các giao thức truyền thông (TCP/IP).

Để bảo vệ quá trình truyền thông khỏi các cuộc tấn công, việc đảm bảo an toàn là rất cần thiết Tất cả các kỹ thuật cung cấp tính an toàn đều bao gồm hai thành phần chính.

 hé biến đổi an toàn lên thông tin được g i đi Ví dụ như mật mã hóa bản tin hay thêm mã vào nội dung bản tin

Một số thông tin an toàn được chia sẻ giữa bên gửi và bên nhận, chẳng hạn như khóa bí mật được sử dụng để mã hóa bản tin trước khi gửi đi.

Bên thứ ba chứng thực đóng vai trò quan trọng trong việc đảm bảo truyền dẫn an toàn thông tin Họ có trách nhiệm bảo vệ thông tin bí mật giữa bên gửi và bên nhận, ngăn chặn mọi khả năng bị phát hiện bởi các kẻ tấn công.

Có bốn nhiệm vụ cơ bản khi thiết kế dịch vụ an toàn cụ thể:

1 Thiết kế một thuật toán cho việc thực hiện biến đổi liên quan đến an toàn Thuật toán này hải đảm bảo rằng kẻ tấn công không thể đánh bại được mục đích của nó

2 Tạo thông tin bí mật được s dụng cùng v i thuật toán

3 hát triển các hương há h n hối và chia sẻ thông tin bí mật

4 Ch rõ giao thức được s dụng bởi bên g i và bên nhận mà s dụng thuật toán an toàn và thông tin bí mật để đạt được dịch vụ an toàn cụ thể

Mô hình an toàn truy cập mạng được trình bày trong Hình 1.5 nhằm bảo vệ hệ thống thông tin khỏi các truy cập không mong muốn Có hai loại tấn công chính là tấn công từ con người, như hacker, và tấn công từ phần mềm độc hại, bao gồm virus và worm.

Các cơ chế an toàn cần thiết để đối phó với các truy cập không mong muốn được chia thành hai loại chính Loại đầu tiên là chức năng gatekeeper, bao gồm các thủ tục đăng nhập dựa trên mật khẩu nhằm bảo vệ hệ thống và ngăn chặn các mối đe dọa như worm, virus và các cuộc tấn công tương tự Loại thứ hai là các biện pháp kiểm soát nội bộ, có nhiệm vụ giám sát hoạt động và phân tích thông tin lưu trữ để phát hiện sự hiện diện của kẻ xâm nhập không mong muốn.

10 Hình 1.5: Mô hình an toàn truy nhậ mạng

Mật mã khóa đối xứng

Mô hình mật mã hóa khóa đối xứng

Sơ đồ mật mã hóa đối xứng bao gồm 5 thành hần như ch ra trong hình vẽ 2.1 dư i đ y

Hình 2.1: Mô hình mật mã khóa đối xứng đơn giản Năm thành hần của mô hình mật mã khóa đối xứng đơn giản bao gồm:

 Bản rõ: đ y là dữ liệu hoặc bản tin ban đầu, được xem như là đầu vào của khối thuật toán mật mã

 Thuật toán mật mã hóa: thuật toán mật mã hóa thực hiện rất nhiều phép biến đổi và thay thế trên bản rõ

Khóa bí mật là một thành phần quan trọng trong quá trình mã hóa, đóng vai trò như một đầu vào cho khối thuật toán mật mã Khóa này là một giá trị độc lập với bản rõ và thuật toán, và nó quyết định đầu ra của thuật toán, tạo ra những kết quả khác nhau tùy thuộc vào khóa được sử dụng Các phép biến đổi và thay thế mà thuật toán thực hiện hoàn toàn dựa vào khóa bí mật này.

Bản mã là kết quả đầu ra của khối thuật toán mật mã, phụ thuộc vào bản rõ và khóa bí mật Với một bản tin xác định, việc sử dụng hai khóa khác nhau sẽ tạo ra hai bản mã khác nhau.

Thuật toán giải mật mã là quy trình thực hiện ngược lại so với thuật toán mã hóa, nơi mà khối này nhận bản mã và khóa bí mật để tái tạo lại bản rõ ban đầu.

Có hai yêu cầu cho việc s dụng an toàn mật mã hóa truyền thống:

Một thuật toán mã hóa mạnh mẽ cần đảm bảo rằng kẻ tấn công, dù biết thuật toán và có trong tay một hoặc nhiều bản mã, vẫn không thể giải mã chúng hoặc tìm ra khóa Điều này có nghĩa là kẻ tấn công không có khả năng giải mã bản mã hoặc khôi phục khóa, ngay cả khi hắn sở hữu một số bản mã cùng với văn bản rõ được tạo ra từ chúng.

Bên gửi và bên nhận cần phải có bản sao của khóa bí mật, và khóa này phải được bảo mật giữa hai bên Điều này có nghĩa là khóa cần được chuyển giao một cách an toàn từ người gửi đến người nhận.

Mật mã hóa đối xứng cho phép giải mã bản tin mà không cần giữ bí mật thuật toán, chỉ cần bảo mật khóa Điều này giúp cho việc phát triển các mạch tích hợp (chi) thực thi thuật toán trở nên dễ dàng và phổ biến trong nhiều sản phẩm Do đó, vấn đề bảo mật chủ yếu nằm ở việc bảo vệ khóa bí mật Các thành phần cần thiết của sơ đồ mật mã hóa đối xứng được mô tả trong hình 2.2.

Hình 2.2: Mô hình hệ thống mật mã hóa đối xứng

Nguồn bản tin tạo ra bản tin trong chế độ bản rõ, X  [X , 1 X 2 , , X M ] M hần t của

X là các chữ cái trong bảng chữ cái, bao gồm 26 chữ cái in hoa Hiện nay, bảng chữ cái nhị phân {0, 1} được sử dụng phổ biến Trong mật mã hóa, khóa được định nghĩa dưới dạng K = [K1, K2, , KJ] và cần được tạo ra từ nguồn tin nhắn Khóa này phải được cung cấp cho bên nhận qua một kênh an toàn Nếu bên thứ ba tạo ra khóa bí mật, thì khóa đó cần được bảo mật an toàn giữa cả hai bên gửi và nhận.

V i bản tin X và khóa bí mật K là đầu vào, các thuật toán mật mã hóa tạo ra các bản mã Y  [Y , Y , , 1 2 Y N ], được viết như sau:

Công thức này chỉ ra rằng Y được tạo ra thông qua thuật toán mã hóa E, là một hàm của bản rõ X, với hàm xác định phụ thuộc vào giá trị của khóa K Bên nhận, sở hữu khóa bí mật, có khả năng thực hiện phép biến đổi sau: ( , ).

Kẻ tấn công có thể tấn công bằng cách thu được Y mà không có khóa hoặc X Trong tình huống này, họ có thể cố gắng khôi phục X hoặc cả X và khóa Giả thiết rằng kẻ tấn công đã biết thuật toán mã hóa.

E và thuật toán giải mã D là công cụ quan trọng trong việc bảo mật thông tin Nếu kẻ tấn công chú ý đến một bản tin cụ thể, họ sẽ cố gắng khôi phục bản rõ X bằng cách tạo ra một lượng lớn bản rõ tương ứng.

Kẻ tấn công thường chú trọng đến khả năng đọc các bản tin tiếp theo; trong trường hợp này, việc khôi phục thông tin có thể được thực hiện bằng cách tạo ra một lượng K.

Các hệ thống mật mã được mô tả bởi ba khía cạch độc lậ dư i đ y:

1 Kiểu các cách thức được sử dụng để biến đổi từ bản rõ thành bản mã Tất cả các thuật toán mật mã hóa được dựa trên hai nguyên lý chung: thay thế, trong đó mỗi phần t trong bản rõ (bit, chữ cái, nhóm bít hoặc nhóm chữ cái) được ánh xạ thành một phần t khác; và hoán đổi vị trí, trong đó các hần t trong bản rõ được sắp xếp lại Yêu cầu cơ bản là không có thông tin nào bị mất (nghĩa là tất cả các hoạt động đó có thể được khôi phục) Hầu hết các hệ thống, còn được gọi là các hệ thống sản phẩm, bao gồm nhiều giai đoạn thay thế và biến đổi

2 Số khóa được sử dụng Nếu cả bên g i và bên nhận s dụng chung khóa, hệ thống đó được gọi là hệ thống mật mã hóa đối xứng, một khóa, khóa bí mật, hay truyền thống Nếu bên g i và nhận s dụng các khóa khác nhau, hệ thống đó được gọi là hệ thống mật mã hóa bất đối xứng, hai khóa, hay khóa công khai

3 Cách mà bản rõ được xử lý Mật mã khối x lý đầu vào là một khối các phần t tại một thời điểm, tạo ra khối đầu ra cho mỗi khối đầu vào Mật mã dòng (stream cypher) x lý các phần t đầu vào một cách liên tục, tạo ra phần t một đầu ra tại một thời điểm

Giải mã các mật mã và tấn công Brute-Force

Mục tiêu của việc tấn công hệ thống mã hóa là khôi phục khóa đang sử dụng, không chỉ đơn thuần là lấy lại bản rõ của một bản mã Có hai phương pháp chính để tấn công các sơ đồ mã hóa truyền thống.

Mật mã khối và tiêu chuẩn mật mã hóa dữ liệu DES

2.2.1 Cấu trúc mật mã khối

Hiện nay, nhiều thuật toán mã hóa khối đối xứng dựa trên cấu trúc Feistel Bài viết này sẽ giới thiệu về cấu trúc chung của mã hóa khối và cấu trúc của mã hóa khối Feistel.

2.2.1.1 Cấu trúc chung của mật mã khối

Mật mã khối là một phương pháp mã hóa trong đó dữ liệu được xử lý theo từng khối, tạo ra bản mã có kích thước tương đương với bản rõ Kích thước khối thường được sử dụng là 64 hoặc 128 bit Cấu trúc của bộ mã hóa khối được thể hiện trong hình 2.3.

Hình 2.3: Cấu trúc mật mã khối

Mật mã khối sử dụng khối bản rõ n bit để tạo ra khối bản mã n bit, trong đó có 2^n khối bản rõ khác nhau Để đảm bảo việc mã hóa có thể được giải mã, mỗi khối bản rõ phải tương ứng với một khối bản mã duy nhất thông qua một biến đổi thuận nghịch Biến đổi này không phải là một chiều, và các ví dụ dưới đây sẽ minh chứng cho sự khác biệt giữa biến đổi một chiều và không phải một chiều trong trường hợp n=2.

Bảng 2.2: Các kiểu ánh xạ Ánh xạ thuận nghịch Ánh xạ một chiều

Bản rõ Bản mã Bản rõ Bản mã

Trong trường hợp ánh xạ một chiều, mỗi bản mã 01 có thể được tạo ra từ hai khối bản rõ khác nhau Nếu áp dụng ánh xạ thuận nghịch, số lượng biến đổi khác nhau sẽ là 2^n! do bản rõ đầu tiên có 2^n lựa chọn cho bản mã đầu ra, và điều này cũng áp dụng cho bản rõ thứ hai.

2 sẽ có 2 n -1 lựa chọn bản mã còn lại, )

Mật mã thay thế chung với n = 4 sử dụng 4 bit đầu vào, trong đó mỗi tổ hợp đầu vào được ánh xạ thành một trong 16 tổ hợp đầu ra duy nhất Điều này có nghĩa là 4 bit bản rõ sẽ được thay thế bởi 4 bit bản mã tương ứng Các ánh xạ mã hóa và giải mã có thể được xác định thông qua một bảng, như đã trình bày trong bảng 2.2 Đây là một trong những hình thức phổ biến nhất của mật mã khối, cho phép định nghĩa bất kỳ ánh xạ thuận nghịch nào giữa bản rõ và bản mã.

Hình 2.4: Nguyên lý của hé thay thế khối n bit đầu vào n bit đầu ra (n=4)

Bảng 2.3: Bảng mật mã hóa và giải mật mã cho mật mã khối thay thế của hình 2.4

Bản rõ Bản mã Bản mã Bản rõ

2.2.1.2 Cấu trúc mật mã khối Feistel

Cấu trúc mật mã khối Feistel, do Horst Feistel đề xuất, kết hợp các phép thay thế và hoán vị Trong mô hình này, bản rõ trải qua nhiều vòng biến đổi để tạo ra bản mã cuối cùng Mô hình Feistel được minh họa trong hình 2.5.

Các hé biến đổi trong cấu trúc mật mã Feistel được mô tả như sau:

Trong đó, là bản rõ, C i (i=1, 2, n) là các bản mã

Bản rõ và các bản mã được chia thành hai n a trái và hải như sau:

Qua mỗi vòng, quy tắc biến đổi các n a trái n a hải như sau:

Trong bài viết này, toán t  thể hiện phép XOR, K i là khóa con cho vòng thứ i, được tạo ra từ khóa ban đầu thông qua thuật toán sinh khóa con, đảm bảo mỗi khóa con đều khác nhau và khác với khóa gốc Hàm F là một hàm mã hóa đồng nhất trong tất cả các vòng, trong khi việc sử dụng hàm F để thay thế và tráo đổi các n a trải và n a hải thể hiện phép hoán vị.

Bản mã của hệ thống sẽ là bản mã đầu ra của vòng cuối cùng được hoán vị

Quá trình giải mật mã diễn ra ngược lại so với quá trình mã hóa, với số vòng tương đương Đầu vào của bộ giải mật mã là bản mã C cùng với giá trị tương ứng.

Qua các vòng các bản mã được giải như sau:

Sau vòng cuối cùng, bản rõ được giải ra v i giá trị như sau:

Cấu trúc mã hóa và giải mã Feistel được minh họa trong hình 2.5, cho thấy cách hoạt động của quá trình này Hình 2.6 cung cấp một ví dụ cụ thể về việc áp dụng phương pháp Feistel trong mã hóa và giải mã dữ liệu.

Hệ thống mật mã Feistel yêu cầu lựa chọn cẩn thận các tham số và đặc tính thiết kế để đảm bảo tính chính xác trong quá trình mã hóa và giải mã.

Kích thước khối trong mã hóa có ý nghĩa quan trọng, khi kích thước khối lớn hơn thường mang lại mức độ an toàn cao hơn, giả định rằng các tham số khác không đổi Kích thước khối 64 bit là phổ biến trong thiết kế mã hóa khối, nhưng hệ thống mã hóa hiện đại như AES sử dụng kích thước khối 128 bit để tăng cường bảo mật.

Kích thước khóa là yếu tố quan trọng trong bảo mật mã hóa, với kích thước lớn hơn mang lại mức độ an toàn cao hơn, giúp chống lại các cuộc tấn công brute-force hiệu quả hơn Tuy nhiên, kích thước khóa lớn có thể làm giảm tốc độ mã hóa và giải mã Hiện nay, kích thước khóa 64 bit hoặc nhỏ hơn được coi là không đủ an toàn, trong khi khóa 128 bit đã trở thành tiêu chuẩn phổ biến cho các hệ thống bảo mật hiện đại.

Mật mã Feistel yêu cầu nhiều vòng để đảm bảo tính an toàn, vì một vòng đơn không đủ mạnh Thông thường, số vòng phổ biến được sử dụng là 16 vòng, giúp tăng cường độ bảo mật cho hệ thống.

 Thuật toán tạo khóa con: Tính phức tạp trong thuật toán này sẽ g y khó khăn cho kẻ tấn công

 Hàm F: tương tự như thuật toán tạo khóa con, hàm F càng phức tạ thì độ an toàn càng cao

Mật mã tiêu chuẩn DES (Data Encryption Standard) được giới thiệu vào năm 1977 bởi Viện Tiêu chuẩn và Kỹ thuật Quốc gia Hoa Kỳ (NIST) Thuật toán này, được gọi là DEA (Data Encryption Algorithm), mã hóa dữ liệu theo khối 64 bit với khóa 56 bit DES thực hiện quá trình biến đổi 64 bit đầu vào thành 64 bit đầu ra thông qua một chuỗi các bước Thuật toán này ngày càng trở nên phổ biến, đặc biệt trong các ứng dụng tài chính.

Mật mã DES có các đặc điểm sau:

DES là một mã hóa thuộc mã Feistel với 16 vòng, bao gồm một hoán vị khởi tạo trước vòng 1 và một hoán vị kết thúc sau vòng 16.

 ích thư c khối là 64 bit

 ích thư c khóa là 56 bit

 Mỗi vòng của DES dùng khóa con có kích thư c 48 bít được trích ra từ khóa chính

Cấu trúc mật mã hóa của mã DES được mô tả như hình 2.7

Tiêu chuẩn mật mã hóa tiên tiến AES

Vào những năm 1990, trước nguy cơ từ kích thước khóa ngắn của mật mã DES, Cục tiêu chuẩn quốc gia Hoa Kỳ đã kêu gọi phát triển một phương pháp mã hóa mới Cuối cùng, thuật toán Rijndael đã được chọn và đổi tên thành Advanced Encryption Standard (AES), được công bố bởi NIST vào năm 2001 AES là một mật mã khối đối xứng với nhiều vòng, và khác với DES, AES không phải là mã hóa Feistel.

Quá trình mã hóa AES được thể hiện qua cấu trúc chung trong Hình 2.9, trong đó kích thước khối dữ liệu là 128 bit (16 byte) Độ dài khóa có thể là 16, 24 hoặc 32 byte tương ứng với 128, 192 hoặc 256 bit.

Thuật toán mã hóa AES sử dụng các độ dài khóa khác nhau như AES-128, AES-192 và AES-256, tương ứng với các kích thước khóa 128, 192 hoặc 256 bit Đầu vào cho quá trình mã hóa và giải mã là khối dữ liệu 128 bit, được sắp xếp thành ma trận vuông kích thước 4x4 byte và được biến đổi qua từng giai đoạn Kết quả cuối cùng cũng là một ma trận vuông 4x4 byte Tương tự, khóa M byte cũng được sắp xếp thành ma trận vuông và sau đó được đưa vào bộ mở rộng khóa để tạo thành mảng các từ khóa cần thiết cho quá trình mã hóa.

Hình 2.10 minh họa quá trình mở rộng khóa 128 bit trong cấu trúc AES, trong đó mỗi từ khóa bao gồm 4 byte và toàn bộ mảng khóa có 44 từ Lưu ý rằng thứ tự byte trong ma trận được sắp xếp theo cột, với bốn byte đầu của bản rõ 128 bit nằm ở cột đầu tiên, tiếp theo là bốn byte tiếp theo ở cột thứ hai Tương tự, bốn byte đầu tiên của khóa mở rộng cũng nằm ở cột đầu tiên của ma trận w.

Hệ mật mã bao gồm N vòng, với số vòng phụ thuộc vào độ dài khóa: 10 vòng cho khóa 16 byte, 12 vòng cho khóa 24 byte, và 14 vòng cho khóa 32 byte N-1 vòng đầu tiên sử dụng bốn hàm biến đổi: SubBytes, ShiftRows, MixColumns, và AddRoundKey Vòng cuối cùng chỉ bao gồm ba hàm biến đổi, với một hàm khởi tạo (AddRoundKey) trước vòng đầu tiên, được coi là vòng số 0 Mỗi hàm biến đổi nhận một hoặc nhiều ma trận 4x4 làm đầu vào và tạo ra đầu ra cũng là ma trận 4x4 Như minh họa trong hình 2.9, đầu ra mỗi vòng là một ma trận 4x4, và đầu ra của vòng cuối cùng sẽ là bản mã.

Hàm mở rộng khóa trong AES tạo ra N+1 khóa cho các vòng, với mỗi khóa là một ma trận 4x4 Mỗi vòng mã hóa sử dụng một trong những khóa này làm đầu vào cho biến đổi AddRound Key Hình 2.11 cung cấp sơ đồ chi tiết về quy trình mã hóa AES, làm rõ thứ tự các biến đổi trong mỗi vòng và hàm giải mã tương ứng.

Hình 2.11: Sơ đồ mật mã và giải mật mã AES

Sơ đồ mật mã AES bao gồm 10 vòng, trong đó mỗi vòng thực hiện một phép hoán vị và ba phép thay thế Hình 2.12 minh họa rõ ràng quy trình này.

 Substitute bytes: s dụng S-box để thực hiện thay thế các byte của khối đầu vào

 ShiftRows: đ y là hé hoán vị đơn giản

 MixColumns: tại khối này phép thay thế khác được s dụng

 AddRoundKey: khối này thực hiện phép XOR của của khối mật mã đầuvào và một phần khóa mở rộng

Các hàm biến đổi trong mã hóa có thể dễ dàng được khôi phục Đối với hàm SubBytes, ShiftRows và MixColumns, các hàm nghịch đảo được sử dụng để giải mã Riêng với hàm AddRoundKey, quá trình giải mã được thực hiện bằng cách thực hiện phép XOR giữa từ mã và chính khóa sử dụng, theo quy tắc A ⊕ B = B ⊕ A.

Hình 2.12: Vòng mật mã AES

2.3.2 Các hàm biến đổi AES

Hàm biến đổi trong AES được thực hiện thông qua việc sử dụng S-box, một ma trận byte kích thước 16x16 chứa 256 giá trị byte khác nhau Mỗi byte đầu vào của khối S-box được ánh xạ thành một byte mới dựa trên 4 bit bên trái của byte đầu vào, xác định giá trị hàng, và 4 bit bên phải xác định giá trị cột.

Giá trị 34 hải được xem như là giá trị cột trong S-box Các giá trị cột và hàng tương ứng với các chỉ số trong S-box, giúp lựa chọn giá trị đầu ra 8 bit duy nhất Ví dụ, giá trị mã hexa {95} tương ứng với hàng 9 và cột 5 của S-box, chứa giá trị {2A} Do đó, giá trị {95} được ánh xạ thành giá trị {2A}.

Ma trận S-box và S-box ngược được ch ra ở hình 2.14 và hình 2.15

Hình 2.14: S-box cho mật mã hóa

Hình 2.15: S-box cho giải mật mã

Dư i đ y là ví dụ của hàm biến đổi SubBytes (hình 2.16)

Hình 2.16: Ví dụ về biến đổi của hàm SubBytes

Hàm ShiftRows thực hiện biến đổi dịch vòng các hàng của ma trận đầu vào, như ch ra trong hình 2.17

Hình 2.17: Thực hiện dịch hàng của hàm ShiftRows

Trong hình 2.17, hàng đầu tiên của ma trận đầu vào không bị dịch, trong khi hàng thứ hai được dịch vòng trái 1 byte Hàng thứ ba thực hiện dịch vòng trái 2 byte, và hàng cuối cùng thực hiện dịch vòng trái 3 byte Đây là một ví dụ minh họa cho hàm ShiftRows.

Hình 2.18: Ví dụ dịch vòng của hàm ShiftRows

Hàm ShiftRows ngược, để thực hiện giải mật mã được gọi là InvShiftRows, thực hiện dịch vòng theo hư ng ngược lại cho mỗi ba hàng cuối

Hàm MixColumns thực hiện biến đổi trộn các cột của ma trận đầu vào, được thực hiện trên mỗi cột một cách riêng biệt, như ch ra trong hình 2.19

Mỗi byte trong một cột được ánh xạ thành giá trị m i, được xác định bởi hàm của bốn byte trong cột đó Biến đổi này có thể được mô tả thông qua ma trận sau.

Như vậy mỗi cột đầu ra được biến đổi theo cột đầu vào tương ứng như sau:

Dư i đ y là ví dụ về hoạt động biến đổi của hàm MixColumns

Hàm biến đổi ngược của hàm MixColumns là hàm InvMixColumns, được định nghĩa bởi hé nh n ma trận dư i đ y:

Hàm AddRound ey thực hiện hé XOR giữa 128 bit đầu vào và 128 bit khóa của vòng đó, được mô tả trong hình 2.20

Dưới đây là ví dụ về hoạt động của hàm AddRoundKey, trong đó ma trận đầu tiên là ma trận đầu vào, ma trận thứ hai là ma trận khóa, và ma trận cuối cùng là ma trận đầu ra.

Như vậy, mỗi vòng mật mã của mật mã AES được thực hiện như trong hình 2.21 dư i đ y

Hình 2.21: Các đầu vào cho một vòng mật mã của AES

Thuật toán mở rộng khóa AES nhận đầu vào là 4 từ (16 byte) và tạo ra một mảng 44 từ (176 byte) để cung cấp khóa cho các vòng mã hóa Đầu ra của bộ mở rộng khóa bao gồm bốn từ đầu tiên, trong khi phần còn lại được bổ sung từng 4 từ một Mỗi từ mới, w[i], được tính toán dựa trên từ trước đó, w[i-1], và từ cách đó bốn vị trí, w[i-4].

KeyExpansion byte key word w word temp

For i i i w i key i key i key i key i

If i mod temp SubWord RotWord temp R

Hình 2.21 dư i đ y mô tả thuật toán tạo khóa AES, và hàm hức g Hàm hức g gồm các hàm con dư i đ y:

 RotWord: dịch vòng trái một byte Giả s từ đầu vào có 4 byte là [B0, B1,

B2, B3] thì kết quả của RotWord là [B1, B2, B3, B0]

 SubWord: thay thế mỗi byte trong từ đầu vào bằng cách tra cứu bảng S-box trong thao tác SubBytes.2

 Kết quả của việc thực hiện hai hàm trên sẽ được thực hiện XOR v i hàm

Hàm Rcon[j] cho mỗi vòng là khác nhau, và được định nghĩa như sau

Rcon[j] =(RC[j],0,0,0), v i RC[j] được xác định như bảng dư i đ y:

Hình 2.22: Thuật toán tạo khóa AES

Việc giải mã AES không giống hẳn như quá trình mã hóa, vì trình tự các phép biến đổi trong giải mã khác với mã hóa, mặc dù sơ đồ tạo khóa vẫn giống nhau Điều này dẫn đến việc cần có hai module phần mềm và phần firmware riêng biệt cho mã hóa và giải mã Tuy nhiên, tồn tại một phiên bản tương đương của thuật toán giải mã có cấu trúc giống với thuật toán mã hóa, với trình tự các phép biến đổi giống nhau cho cả hai quá trình Để đạt được điều này, sơ đồ tạo khóa cần được điều chỉnh.

Các ứng dụng của mật mã khối

2.4.1 Mật mã hóa nhiều lần Đối mặt v i nguy cơ tấn công brute-force của mật mã DES, đã có rất nhiều hư ng quan t m trong việc tìm ra hương há thay thế Một cách tiế cận là thiết kế một thuật toán m i hoàn toàn, AES là một ví dụ Một cách khác có thể bảo tồn được các đầu tư trư c đó về hần cứng cũng như hần mềm đó là s dụng mật mã hóa nhiều lần v i DES và s dụng nhiều khóa

DES hai lần (Double DES)

Mật mã hóa nhiều lần đơn giản nhất bao gồm hai giai đoạn: mã hóa và sử dụng hai khóa Với văn bản rõ và hai khóa mật mã 1 và 2, bản mã C được tạo ra theo quy trình nhất định.

Giải mật mã yêu cầu biết các khóa đó và được thực hiện ngược lại như sau:

Double DES sử dụng một khóa có kích thước 112 byte, nhưng có nhược điểm là tốc độ chậm hơn DES do phải thực hiện hai lần mã hóa Tuy nhiên, đã phát hiện ra một phương pháp tấn công Double DES gọi là "gặp nhau ở giữa" (meet-in-the-middle), đây là một phương pháp tấn công chosen-plaintext Phương pháp này có thể được hiểu thông qua hình 2.24 a.

Nếu biết cặp (M, C), kẻ tấn công sẽ mã hóa giá trị của khóa 1 với 2^56 khả năng và lưu trữ kết quả trong một bảng Sau đó, kẻ tấn công sẽ giải mã C bằng 2^56 giá trị của khóa 2 Đối với mỗi kết quả giải mã, kẻ tấn công sẽ so sánh với các kết quả trong bảng Nếu tìm thấy giá trị trùng khớp, hai khóa được xác định là đúng nếu chúng tạo ra bản mã chính xác.

Hình 2.24: Mật mã hóa nhiều lần a Mật mã hóa hai lần b Mật mã hóa ba lần

Triple DES là một phương pháp mã hóa nhằm khắc phục lỗ hổng của Double DES bằng cách sử dụng ba khóa khác nhau, với chiều dài khóa lên đến 168 bit Điều này tạo ra mức độ bảo mật cao hơn, giúp ngăn chặn các cuộc tấn công gặp nhau ở giữa Hình 2.24b mô tả cấu trúc của Triple DES, với bản mã được xác định theo các quy tắc cụ thể.

Trong thực tế, người ta sử dụng thuật toán DES với hai khóa 1 và 2 để đảm bảo độ an toàn cần thiết Bản mã và bản rõ được xác định bởi quy trình này.

2.4.2 Các chế độ và ứng dụng mật mã khối

Mật mã khối là phương pháp mã hóa dữ liệu theo từng khối có kích thước xác định Để mã hóa một bản tin dài, bản tin được chia thành nhiều khối và áp dụng mật mã khối cho từng khối Các mô hình phổ biến trong ứng dụng mật mã khối bao gồm ECB, CBC, CTR, OFB và CFB.

Chế độ ECB (Electronic Codebook)

Trong mô hình ECB, mỗi khối dữ liệu được mã hóa độc lập với nhau bằng cách sử dụng cùng một khóa K Hình 2.25 minh họa quy trình mã hóa và giải mã trong mô hình này.

Mô hình mã hóa ECB có đặc điểm nổi bật là nếu bản rõ giống nhau, thì bản mã cũng sẽ giống nhau Điều này tạo cơ hội cho kẻ tấn công lợi dụng các đặc tính thống kê của dữ liệu để tiến hành giải mã Do đó, ECB phù hợp cho việc mã hóa các bản tin ngắn, chẳng hạn như truyền khóa DES hoặc AES một cách an toàn Tuy nhiên, đối với các bản tin dài hơn, tính an toàn của ECB có thể bị giảm sút.

Chế độ CBC (Cipher Block Chaining) được phát triển nhằm khắc phục nhược điểm an toàn của chế độ ECB, với mục tiêu tạo ra các khối bản mã khác nhau ngay cả khi đầu vào là các bản rõ giống nhau Hình 2.26 minh họa mô hình hoạt động của chế độ CBC.

Hình 2.26: Mô hình mật mã hóa và giải mật mã CBC

Trong sơ đồ mã hóa CBC, mỗi khối dữ liệu được mã hóa bằng cách thực hiện phép XOR giữa bản rõ hiện tại và bản mã trước đó, sử dụng cùng một khóa cho tất cả các khối.

Để mã hóa khối đầu tiên, người ta sử dụng một khối dữ liệu giả gọi là vector khởi tạo (initialization vector - IV), được chọn ngẫu nhiên.

Quá trình giải mật mã được thực hiện ngược lại

Bên mã hóa và bên giải mã sử dụng chung một vector khởi tạo (IV) Do vector khởi tạo không cần phải giữ bí mật, nên thường được đính kèm vào văn bản mã hóa trước khi truyền đi.

Bản mã Ci không chỉ phụ thuộc vào bản rõ Pi mà còn vào tất cả các bản rõ trước đó và IV, điều này cho thấy nếu hai bản rõ giống nhau thì hai bản mã sẽ khác nhau do IV ngẫu nhiên Điều này khắc phục hạn chế của mô hình ECB, giúp kẻ tấn công không thể phát hiện các đặc tính thống kê của dữ liệu Tuy nhiên, trong quá trình giải mã, bản rõ i không chỉ phụ thuộc vào bản mã Ci mà còn vào bản mã Ci-1 trước đó Do đó, nếu xảy ra lỗi truyền dẫn, chỉ cần một bít bị hỏng sẽ dẫn đến việc không thể giải mã được bản mã đó và các bản mã tiếp theo.

Chế độ CFB (Cipher Feedback) cho phép biến đổi mật mã khối như AES và DES thành mật mã dòng, giúp loại bỏ các bit đệm trong bản tin Trong đó, AES sử dụng kích thước khối 128 bit và DES sử dụng 64 bit Mật mã dòng có khả năng hoạt động theo thời gian thực, cho phép mã hóa và truyền tải từng ký tự ngay lập tức trong khi dòng ký tự đang được truyền đi.

Tạo số giả ngẫu nhiên và mật mã dòng

2.5.1 Nguyên lí tạo số giả ngẫu nhiên

Số ngẫu nhiên là yếu tố thiết yếu trong mật mã hóa, được áp dụng trong nhiều ứng dụng và giao thức an toàn mạng Chúng đóng vai trò quan trọng trong các sơ đồ phân phối khóa, xác thực lẫn nhau, tạo khóa phiên, cũng như trong việc tạo ra các khóa cho thuật toán RSA và luồng bit cho mật mã dòng đối xứng.

Có hai tiêu chí được s dụng để đánh giá tính ngẫu nhiên của chuỗi ngẫu nhiên, đó là:

 Phân phối đồng nhất: phân phối các bit trong chuỗi phải là đồng nhất; nghĩa là tần suất xuất hiện của các bit 0 và 1 phải là như nhau

 Độc lập: không chuỗi con nào trong chuỗi ngẫu nhiên đó có thể được suy ra từ các chuỗi con khác

Trong các ứng dụng như nhận thực lẫn nhau, tạo khóa hiển và mã hóa dòng, tính không thể dự đoán trước được là yêu cầu thiết yếu Điều này không chỉ liên quan đến việc tạo ra chuỗi số ngẫu nhiên thống kê mà còn yêu cầu các thành phần trong chuỗi phải hoàn toàn không thể dự đoán Đối với các chuỗi ngẫu nhiên "đúng", mỗi số phải độc lập thống kê với các số khác trong chuỗi, do đó không thể dự đoán trước được Mặc dù các số ngẫu nhiên đúng được sử dụng trong nhiều ứng dụng, chúng vẫn gặp phải một số hạn chế, đặc biệt là về tính không hiệu quả.

Việc sử dụng các thuật toán để tạo ra chuỗi số ngẫu nhiên mang lại hiệu quả cao hơn Các ứng dụng mật mã hóa thường khai thác các kỹ thuật này để tạo số ngẫu nhiên Mặc dù các thuật toán này là xác định và tạo ra chuỗi số không hoàn toàn ngẫu nhiên thống kê, nếu thuật toán được thiết kế tốt, chuỗi số kết quả có thể vượt qua nhiều bài kiểm tra về tính ngẫu nhiên Những số này được gọi là số giả ngẫu nhiên.

Bộ tạo số ngẫu nhiên đúng (TRNG) sử dụng nguồn ngẫu nhiên thực sự, thường được gọi là nguồn entropy, để tạo ra chuỗi nhị phân ngẫu nhiên Nguồn entropy này được lấy từ các yếu tố vật lý như mẫu định thời bấm phím, hoạt động của ổ đĩa, chuyển động chuột và giá trị đồng hồ hệ thống TRNG có khả năng chuyển đổi các nguồn tương tự thành đầu ra nhị phân, đảm bảo tính ngẫu nhiên trong quá trình tạo số.

Ngược lại, RNG sử dụng một giá trị cố định gọi là hạt giống (seed) để tạo ra chuỗi bit đầu ra thông qua một thuật toán xác định Hạt giống thường được sinh ra bởi một bộ TRNG Như hình 2.30 đã chỉ ra, một số kết quả của thuật toán được phản hồi lại làm đầu vào cho thuật toán thông qua một đường hồi tiếp Cần lưu ý rằng, dòng bit đầu ra được xác định bởi một hoặc nhiều giá trị đầu vào; do đó, nếu kẻ tấn công biết thuật toán và hạt giống, họ có thể tái tạo toàn bộ dòng bit.

Hình 2.30 đưa ra hai bộ tạo chuỗi giả ngẫu nhiên khác nhau:

Bộ tạo số giả ngẫu nhiên (PRNG) là thuật toán dùng để tạo ra chuỗi bit mở, thường được ứng dụng làm đầu vào cho mật mã dòng đối xứng.

Hàm giả ngẫu nhiên (RF) được sử dụng để tạo ra chuỗi bit giả ngẫu nhiên với độ dài cố định RF nhận đầu vào là seed cùng với thông tin bổ sung như ID người dùng hoặc ID ứng dụng.

Hình 2.30: Nguyên lý tạo số ngẫu nhiên và giả ngẫu nhiên

2.5.2 Bộ tạo số giả ngẫu nhiên

Trong hần này, hai kiểu thuật toán cho bộ RNG được trình bày

Các bộ tạo số ngẫu nhiên đồng dạng tuyến tính (Linear Congruential Generators) là một trong những thuật toán phổ biến nhất được sử dụng để tạo ra số giả ngẫu nhiên Thuật toán này hoạt động dựa trên 4 tham số cơ bản, giúp tạo ra chuỗi số ngẫu nhiên một cách hiệu quả.

Chuỗi số ngẫu nhiên {Xn} được tính như sau:

Nếu m, a, c, và X0 là số nguyên, kĩ thuật này sẽ tạo ra chuỗi số nguyên v i mỗi số nguyên nằm trong dải 0 X n m

Việc lựa chọn các giá trị cho a, c và m là yếu tố quyết định trong việc phát triển một bộ tạo số ngẫu nhiên hiệu quả Chẳng hạn, khi a = c = 1, chuỗi số được tạo ra không đáp ứng yêu cầu Một ví dụ khác với các giá trị a = 7, c = 0, m = 32 và X0 = 1 cho thấy bộ tạo ngẫu nhiên có khả năng sinh ra chuỗi số như {7, 17, }.

Chuỗi số {23, 1, 7, } không thỏa mãn điều kiện cần thiết, vì trong tổng số 32 giá trị có thể, chỉ có bốn giá trị được sử dụng, dẫn đến chu kỳ của chuỗi này là 4 Khi thay giá trị a bằng 5, chuỗi trở thành {5, 25, 29, 17, 21, 9, 13, 1, 5, } và chu kỳ của nó tăng lên 8.

Nếu m là một số lớn, nó có thể tạo ra chuỗi dài các số ngẫu nhiên khác nhau Tiêu chí là m phải gần với số nguyên không m lớn nhất có thể cho mỗi máy tính xác định trước Vì vậy, giá trị của m được chọn gần hoặc bằng 2^31.

Có ba tiêu chí được s dụng để đánh giá bộ tạo số ngẫu nhiên như sau:

 Hàm tạo sẽ là hàm tạo toàn chu kỳ Nghĩa là, hàm tạo sẽ tạo ra tất cả các số từ 0 đến m-1 trư c khi lặp lại

 Chuỗi được tạo ra phải là ngẫu nhiên

 Hàm sẽ thực hiện một cách hiệu quả v i số 32 bit

Với các giá trị thích hợp của a, c, và m, chuỗi số tạo ra có thể đáp ứng ba tiêu chí đánh giá Đối với tiêu chí đầu tiên, khi m là số nguyên tố và c = 0, chu kỳ của hàm tạo số ngẫu nhiên sẽ là m-1 với một giá trị nhất định của a Cụ thể, đối với số 32 bit, giá trị nguyên tố của m là 2^31 - 1, dẫn đến hàm tạo số ngẫu nhiên trở thành:

Độ mạnh của thuật toán đồng dạng tuyến tính phụ thuộc vào các tham số a và m được lựa chọn Thuật toán này không có yếu tố ngẫu nhiên, ngoại trừ việc chọn giá trị khởi tạo X0; khi giá trị này được xác định, các số tiếp theo trong chuỗi cũng sẽ được xác định Điều này tạo ra một lợi thế cho kẻ tấn công, đặc biệt khi họ biết thuật toán đồng dạng tuyến tính đang được sử dụng cùng với các tham số đã biết, chẳng hạn như a = 75, c = 0, m.

Khi một số được công bố, tất cả các số tiếp theo sẽ được xác định, chỉ cần một phần nhỏ của chuỗi số là đủ để nắm bắt các tham số của thuật toán Nếu kẻ tấn công có khả năng xác định các giá trị X0, X1, X2 và X3, thì

Từ các hương trình này, các giá trị của a, c, và m có thể tìm được

Mục tiêu của bộ sinh số ngẫu nhiên (RNG) là đảm bảo rằng kẻ tấn công không thể xác định các thành phần tiếp theo của chuỗi Điều này có thể đạt được bằng cách sử dụng đồng hồ hệ thống nội để thay đổi dòng số ngẫu nhiên Một phương pháp là khởi tạo lại chuỗi sau mỗi N số, sử dụng giá trị đồng hồ hiện tại (mod m) làm hạt giống Một cách đơn giản hơn là thêm giá trị đồng hồ hiện tại vào mỗi số ngẫu nhiên (mod m).

Bộ tạo BBS (Blum Blum Shub)

Trao đổi khóa Diffie-Hellman

Thuật toán khóa công khai đầu tiên được giới thiệu bởi Diffie và Hellman, được gọi là mật mã khóa công khai, thường được biết đến với tên gọi trao đổi khóa Diffie-Hellman Kỹ thuật trao đổi khóa này đã được áp dụng trong nhiều sản phẩm thương mại.

Thuật toán này nhằm mục đích cho phép hai người dùng trao đổi một cách an toàn một khóa, khóa này sẽ được sử dụng để mã hóa đối xứng các bản tin Bản chất của thuật toán là việc trao đổi những giá trị bí mật.

Thuật toán Diffie-Hellman hoạt động hiệu quả nhờ vào những khó khăn trong việc tính toán của các thuật toán rời rạc Thuật toán rời rạc có thể được định nghĩa là gốc ban đầu của một số nguyên tố, tức là số mà lũy thừa của nó modulo tạo ra tất cả các số nguyên từ 1 đến -1 Cụ thể, nếu a là gốc ban đầu của một số nguyên tố p, thì các số a mod p, a^2 mod p, , a^(p-1) mod p sẽ tạo thành các số nguyên khác biệt từ 1 đến -1.

V i bất kỳ số nguyên b và một gốc ban đầu a của số nguyên tố , ta có thể tìm ra một số mũ duy nhất i sao cho:

Số mũ i được gọi là thuật toán rời rạc của b v i căn nguyên thủy a, mod

Chúng ta thể hiện giá trị này là dloga, (b)

Thuật toán trao đổi khóa Diffie-Hellman cho phép hai người dùng, A và B, tạo ra một khóa chia sẻ an toàn Trong quá trình này, hai số đã biết là một số nguyên tố q và một số nguyên α, được gọi là căn nguyên thủy của q, được sử dụng.

Hình 3 10: Trao đổi khóa Diffie-Hellman

Alice và Bob chia sẻ một số nguyên tố q và một số nguyên α, sao cho α

Ngày đăng: 23/10/2021, 10:22

TỪ KHÓA LIÊN QUAN