1. Trang chủ
  2. » Luận Văn - Báo Cáo

Module20 CEH V12 Mã hóa Cryptography

151 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Cryptography là khoa học và nghệ thuật mã hóa thông tin để bảo vệ dữ liệu khỏi việc truy cập trái phép. Nó đảm bảo rằng chỉ những người được phép mới có thể đọc và hiểu thông tin. Các khái niệm chính: Mã hóa (Encryption): Quá trình biến đổi dữ liệu từ dạng dễ hiểu (plaintext) thành dạng khó hiểu (ciphertext) để bảo vệ thông tin. Giải mã (Decryption): Quá trình ngược lại, chuyển ciphertext trở về plaintext để có thể đọc được. Khóa (Key): Chuỗi ký tự sử dụng để mã hóa và giải mã dữ liệu. Có hai loại khóa: Khóa đối xứng (Symmetric Key): Cùng một khóa được sử dụng để mã hóa và giải mã. Khóa công khai (Public Key): Sử dụng một cặp khóa – một khóa công khai để mã hóa và một khóa bí mật để giải mã.

Trang 1

LO#04: Giải thích Cơ Sở Hạ Tầng Khóa Công Khai (PKI)LO#05: Thực Hiện Mật Mã Hóa Email

LO#06: Thực Hiện Mật Mã Hóa Ổ Đĩa

LO#07: Giải thích Các Phương Pháp Phân Tích Mật Mã Hóa và Tấn Công Mật Mã HóaKhác Nhau

LO#08: Giải thích Biện Pháp Phòng Ngừa Tấn Công Mật Mã Hóa

Mục Tiêu Học Tập

Bảo mật thông tin và mật mã hóa ngày càng trở nên quan trọng hơn với việc sử dụngInternet (World Wide Web) trong giao tiếp kinh doanh và cá nhân Việc bảo vệ thông tinnhạy cảm như chi tiết thẻ tín dụng, mã PIN, số tài khoản ngân hàng và tin nhắn riêng tưtrở nên ngày càng khó khăn hơn Các tổ chức dựa vào Internet để thực hiện các hoạtđộng như thương mại điện tử, nghiên cứu thị trường, hỗ trợ khách hàng và nhiều hoạtđộng khác.

Mật mã hóa và hệ thống mật mã (gọi tắt là "crypto") giúp bảo vệ dữ liệu khỏi việc bịchặn và đe dọa trong quá trình truyền tải trực tuyến Module này cung cấp một hiểu biếttoàn diện về các hệ thống mật mã và thuật toán khác nhau, các hàm băm một chiều, cơ sởhạ tầng khóa công khai (PKI), và cách mà mật mã hóa có thể đảm bảo sự riêng tư và anninh trong giao tiếp trực tuyến Nó cũng bao gồm các công cụ khác nhau được sử dụngđể mật mã hóa dữ liệu nhạy cảm.

Cuối cùng, sau khi hoàn thành module này, bạn sẽ có khả năng: Mô tả các khái niệm về mật mã hóa.

 Hiểu các thuật toán mật mã hóa khác nhau. Sử dụng các công cụ mật mã hóa khác nhau.

Trang 2

 Mô tả cơ sở hạ tầng khóa công khai (PKI). Áp dụng mật mã hóa email.

 Áp dụng mật mã hóa đĩa.

 Mô tả các loại tấn công mật mã hóa khác nhau.

 Sử dụng các công cụ phân tích mật mã hóa khác nhau.

LO#01: GIẢI THÍCH CÁC KHÁI NIỆM VỀ MẬT MÃ

Các Khái Niệm về Mật Mã Hóa

Mật mã hóa giúp bảo vệ giao dịch, giao tiếp và các quy trình khác thực hiện trong thếgiới điện tử Phần này nói về mật mã hóa và các khái niệm liên quan, giúp bạn hiểu cácchủ đề nâng cao được đề cập sau trong module này.

Trang 3

Mật Mã Hóa

"Từ ngữ "Cryptography" xuất phát từ từ tiếng Hy Lạp, với "kryptos" có nghĩa là "ẩn,che giấu, che phủ, bí mật hoặc bí ẩn," và "graphia" có nghĩa là "viết"; do đó,

cryptography có thể hiểu là "nghệ thuật của việc viết ẩn dụ."

Mật mã hóa là việc ẩn thông tin bằng cách chuyển đổi văn bản thuần (định dạng đọcđược) thành văn bản mật (định dạng không đọc được) bằng cách sử dụng một chìa khóahoặc hệ thống mật mã Đây là quá trình chuyển đổi dữ liệu thành một mã đã bị xáo trộnđược mật mã hóa và gửi qua mạng riêng hoặc công cộng Mật mã hóa bảo vệ thông tinmật như tin nhắn email, phiên trò chuyện, giao dịch web, dữ liệu cá nhân, dữ liệu doanhnghiệp, ứng dụng thương mại điện tử và nhiều loại giao tiếp khác Tin nhắn đã được mã

Trang 4

hóa đôi khi có thể được giải mã bởi các kỹ thuật phân tích mật mã (phá mã), mặc dù cáckỹ thuật mật mã hiện đại gần như không thể bị phá vỡ.

Mục Tiêu của Mật Mã Hóa

Bảo Mật Bí Mật (Confidentiality): Đảm bảo rằng thông tin chỉ có thể được truy

cập bởi những người được ủy quyền.

Tính Toàn Vẹn (Integrity): Tính tin cậy của dữ liệu hoặc nguồn lực trong việc

ngăn chặn sự thay đổi không đúng và không được ủy quyền.

Xác Thực (Authentication): Đảm bảo rằng giao tiếp, tài liệu hoặc dữ liệu là

chính xác và đáng tin cậy.

Không Chối Bỏ (Nonrepudiation): Đảm bảo rằng người gửi tin nhắn không thể

phủ nhận sau này đã gửi tin nhắn và người nhận không thể phủ nhận đã nhận tinnhắn.

Quy Trình Mã Hóa

Bản rõ (định dạng có thể đọc được) được mã hóa bằng các thuật toán mã hóa như RSA,DES và AES, dẫn đến một bản mã (định dạng không thể đọc được), khi đến đích, đượcgiải mã thành bản rõ có thể đọc được.

Mật mã được phân thành hai loại tùy theo số lượng khóa được sử dụng để mã hóa và giảimã:

● Mã hóa đối xứng:

Mã hóa đối xứng yêu cầu cả người gửi và người nhận tin nhắn đều phải có cùng mộtkhóa mã hóa Người gửi sử dụng một khóa để mã hóa văn bản gốc và gửi văn bản mãhóa thu được cho người nhận, người sử dụng cùng một khóa (được sử dụng để mã hóa)để giải mã văn bản mã hóa thành văn bản gốc Mã hóa đối xứng còn được gọi là mật mãkhóa bí mật, vì nó chỉ sử dụng một khóa bí mật để mã hóa và giải mã dữ liệu Loại mậtmã này hoạt động tốt khi bạn chỉ giao tiếp với một vài người.

Vì người gửi và người nhận phải chia sẻ khóa trước khi gửi bất kỳ tin nhắn nào nên kỹthuật này chỉ được sử dụng hạn chế trên Internet, nơi những cá nhân chưa có liên hệtrước thường yêu cầu một phương tiện liên lạc an toàn Giải pháp cho vấn đề này là mãhóa bất đối xứng (mật mã khóa công khai).

Trang 5

● Mã hóa bất đối xứng:

Khái niệm mã hóa bất đối xứng (còn được gọi là mật mã khóa công khai) được đưa ra đểgiải quyết các vấn đề về quản lý khóa Mã hóa bất đối xứng bao gồm cả khóa chung vàkhóa riêng Khóa chung được cung cấp công khai, trong khi người gửi giữ bí mật khóariêng.

Hệ thống khóa bất đối xứng là phương pháp mã hóa sử dụng cặp khóa bao gồm khóachung có sẵn cho bất kỳ ai và khóa riêng chỉ do chủ sở hữu khóa nắm giữ, giúp cung cấptính bảo mật, tính toàn vẹn, xác thực và không thể chối bỏ trong quản lý dữ liệu.

Trang 6

Mã hóa bất đối xứng sử dụng trình tự sau để gửi tin nhắn:

1 Một cá nhân tìm thấy khóa công khai của người mà mình muốn liên hệ trong mộtdanh bạ.

2 Khóa chung này được sử dụng để mã hóa tin nhắn sau đó được gửi đến ngườinhận dự kiến.

3 Người nhận sử dụng khóa riêng để giải mã tin nhắn và đọc nó.

Không ai ngoài người nắm giữ khóa riêng có thể giải mã tin nhắn được mã hóa bằngkhóa chung tương ứng Điều này làm tăng tính bảo mật của thông tin vì mọi thông tinliên lạc chỉ liên quan đến khóa chung; người gửi tin nhắn không bao giờ truyền hoặc chiasẻ khóa riêng Người gửi phải liên kết khóa công khai với tên người dùng một cách antoàn để đảm bảo rằng các cá nhân tự xưng là người nhận dự định không chặn thông tin.Để đáp ứng nhu cầu xác thực người ta có thể sử dụng chữ ký số.

Trang 7

Điểm Mạnh Và Điểm Yếu Của Các Phương Pháp Tiền Điện Tử

Điểm mạnh

Mã hóa đối xứngMã hóa bất đối xứng

Triển khai nhanh hơn và dễ dànghơn vì cùng một khóa được sửdụng để mã hóa và giải mã dữliệu

Yêu cầu ít sức mạnh xử lý hơnCó thể được triển khai trong chiptích hợp dành riêng cho ứngdụng (ASIC).

Sử dụng thuận tiện vì không cầnphân phối khóa để mã hóa tinnhắn

Ngăn chặn sự xâm phạm bảomật tin nhắn trên diện rộng vìcác khóa bí mật khác nhau đượcsử dụng để liên lạc với các bênkhác nhau

Bảo mật nâng cao, vì người takhông cần chia sẻ hoặc truyềnkhóa riêng cho bất kỳ ai

Khóa không bị ràng buộc với dữliệu được truyền trên liên kết; dođó, dù có chặn dữ liệu cũngkhông thể giải mã được

Cung cấp chữ ký số khôngthể bị từ chối

Điểm yếu

Mã hóa đối xứngMã hóa bất đối xứng

Thiếu kênh an toàn để trao đổikhóa bí mật

Xử lý chậm và đòi hỏi sức mạnhxử lý cao

Khó quản lý và bảo mật quánhiều khóa chung được tạo đểliên lạc với các bên khác nhau

Có thể xảy ra xâm phạm bảo mậttin nhắn trên diện rộng (tức làkẻ tấn công có thể đọc tin nhắnhoàn chỉnh nếu khóa riêng bị xâmphạm)

Không cung cấp sự đảm bảo nàovề nguồn gốc và tính xác thựccủa tin nhắn vì cả người gửi vàngười nhận đều sử dụng cùngmột khóa

Tin nhắn nhận được không

thể được giải mã nếu mất khóariêng

Dễ bị tấn công từ điển và tấn

công bạo lực Dễ bị tấn công man-in-the-middlevà brute-force

Trang 8

Quyền Truy Cập Của Chính Phủ Vào Khóa (GAK)

Quyền truy cập của chính phủ vào khóa (GAK) đề cập đến nghĩa vụ theo luật định củacác cá nhân và tổ chức là tiết lộ khóa mật mã của họ cho các cơ quan chính phủ Điều đócó nghĩa là các công ty phần mềm sẽ cung cấp bản sao của tất cả các khóa (hoặc ít nhấtlà đủ khóa để phần còn lại có thể bị bẻ khóa) cho chính phủ Các cơ quan thực thi phápluật trên khắp thế giới thu thập và sử dụng các khóa mật mã này để theo dõi các hoạtđộng liên lạc đáng ngờ và thu thập bằng chứng về tội phạm mạng vì lợi ích an ninh quốcgia Chính phủ hứa rằng họ sẽ giữ chìa khóa một cách an toàn và chỉ sử dụng chúng khitòa án ban hành lệnh làm như vậy Đối với chính phủ, vấn đề này tương tự như khả năngnghe lén điện thoại.

Các cơ quan chính phủ thường sử dụng ký quỹ chìa khóa để có thể truy cập vào chìakhóa một cách không bị gián đoạn Chìa khóa ký quỹ là chìa khóa thỏa thuận trao đổitrong đó các khóa mật mã thiết yếu được lưu trữ với bên thứ ba trong ký quỹ Bên thứ bacó thể sử dụng hoặc cho phép người khác sử dụng khóa mã hóa theo một số điều kiệnnhất định hoàn cảnh đã định trước Bên thứ ba, liên quan đến GAK, nói chung là cơ quanchính phủ có thể sử dụng các khóa mã hóa để giải mã bằng chứng kỹ thuật số theo ủyquyền hoặc lệnh từ một tòa án của pháp luật Tuy nhiên, mối lo ngại ngày càng tăng vềquyền riêng tư và bảo mật của khóa mật mã và thông tin Cơ quan nhà nước có tráchnhiệm bảo vệ những phím Các cơ quan như vậy thường sử dụng một khóa duy nhất đểbảo vệ các khóa khác, đây không phải là một ý tưởng hay vì để lộ một phím có thể làmlộ các phím khác.

Các cơ quan này không biết thông tin được bảo vệ bằng khóa bí mật đến mức nào, điềunày gây khó khăn cho việc đánh giá mức độ bảo vệ cần thiết Trong trường hợp khóa bịthu giữ cũng bảo vệ các thông tin khác mà các cơ quan này không có quyền truy cập thìkhông thể xác định được hậu quả của việc tiết lộ khóa vì các cơ quan chính phủ khôngnhận thức được thông tin mà các phím đó bảo vệ Trong những trường hợp như vậy,người sở hữu chìa khóa phải chịu trách nhiệm về hậu quả của việc sự tiết lộ quan trọng.Trước khi chủ sở hữu giao chìa khóa của mình cho cơ quan chính phủ, họ cần phải yên

Trang 9

tâm rằng các cơ quan chính phủ sẽ bảo vệ các khóa này theo tiêu chuẩn đủ mạnh để bảovệ quyền lợi của họ.

Trang 10

LO#02: GIẢI THÍCH CÁC THUẬT TOÁN MÃ HÓAKHÁC NHAU

Thuật Toán Mã Hóa

Mã hóa là quá trình chuyển đổi văn bản gốc có thể đọc được thành văn bản mật mãkhông thể đọc được bằng cách sử dụng một bộ thuật toán phức tạp để chuyển đổi dữ liệuthành các khối hoặc luồng ký tự chữ và số ngẫu nhiên Phần này đề cập đến mật mã vàcác thuật toán mã hóa khác nhau như DES, AES, RC4, RC5, RC6, DSA, RSA, MD5,SHA, v.v.

Trang 11

Mật Mã

Trong mật mã, mật mã là một thuật toán (một chuỗi các bước được xác định rõ ràng) đểthực hiện mã hóa và giải mã Mã hóa là quá trình chuyển đổi văn bản gốc thành mật mãhoặc mã; quá trình ngược lại được gọi là giải mã Một tin nhắn được mã hóa bằng mậtmã sẽ không thể đọc được trừ khi người nhận biết khóa bí mật cần thiết để giải mã nó.Công nghệ truyền thông (ví dụ: Internet, điện thoại di động) dựa vào mật mã để duy trìcả tính bảo mật và quyền riêng tư Các thuật toán mật mã có thể là nguồn mở (quy trìnhthuật toán thuộc phạm vi công cộng trong khi khóa được người dùng chọn và riêng tư)hoặc nguồn đóng (quy trình được phát triển để sử dụng trong các lĩnh vực cụ thể, chẳnghạn như quân sự và Bản thân thuật toán không thuộc phạm vi công cộng) Hơn nữa, mậtmã có thể được sử dụng miễn phí hoặc được cấp phép.

Trang 12

Các loại mật mã cổ điển

 Mật mã thay thế: Người dùng thay thế các đơn vị của văn bản gốc bằng vănbản mã hóa theo hệ thống thông thường Các đơn vị có thể là các chữ cái đơn lẻ,các cặp chữ cái hoặc sự kết hợp của chúng, v.v Người nhận thực hiện thay thếnghịch đảo để giải mã văn bản Ví dụ bao gồm mật mã Beale, mật mã autokey,mật mã Gronsfeld và mật mã Hill

Ví dụ: "HELLO WORLD" có thể được mã hóa thành "PSTER HGFST" (tức là

H=P, E=S, v.v.).

 Mật mã chuyển vị: Ở đây, các chữ cái trong bản rõ được sắp xếp lại theo một

hệ thống thông thường để tạo ra bản mã Ví dụ: "CRYPTOGRAPHY" khi đượcmã hóa sẽ trở thành "AOYCRGPTYRHP." Ví dụ bao gồm mật mã hàng rào

đường sắt, mật mã tuyến đường và chuyển vị Myszkowski. Mật mã hiện đại

Mật mã hiện đại được thiết kế để chống lại một loạt các cuộc tấn công Họ cung cấp tínhbảo mật, tính toàn vẹn và xác thực của người gửi Người dùng có thể tính toán mật mãhiện đại bằng cách sử dụng hàm toán học một chiều có khả năng phân tích các số nguyêntố lớn.

Trang 13

Các loại mật mã hiện đại

 Dựa trên loại khóa được sử dụng

Thuật toán khóa đối xứng (Mật mã khóa riêng): Sử dụng cùng một khóa

để mã hóa và giải mã.

Thuật toán khóa bất đối xứng (Mật mã khóa công khai): Sử dụng hai

khóa khác nhau để mã hóa và giải mã. Dựa vào loại dữ liệu đầu vào

Mật mã khối: Các thuật toán xác định hoạt động trên một khối (một nhóm

bit) có kích thước cố định với phép biến đổi không thay đổi được chỉ địnhbởi khóa đối xứng Hầu hết các mật mã hiện đại đều là mật mã khối Chúngđược sử dụng rộng rãi để mã hóa dữ liệu số lượng lớn Các ví dụ bao gồmDES, AES, IDEA, v.v Khi kích thước khối nhỏ hơn kích thước được mậtmã sử dụng, phần đệm được sử dụng để đạt được kích thước khối cố định. Mật mã luồng: Mật mã khóa đối xứng là các chữ số văn bản gốc được kết

hợp với một luồng khóa (luồng chữ số mật mã giả ngẫu nhiên) Ở đây,người dùng áp dụng khóa cho từng bit một Ví dụ bao gồm RC4, SEAL,v.v.

Trang 14

Tiêu Chuẩn Mã Hóa Dữ Liệu (DES)

DES là một tiêu chuẩn mã hóa dữ liệu sử dụng khóa bí mật cho cả mã hóa và giải mã (hệthống mật mã đối xứng) DES sử dụng khóa bí mật 64 bit, trong đó 56 bit được tạo ngẫunhiên và 8 bit còn lại được sử dụng để phát hiện lỗi Nó sử dụng thuật toán mã hóa dữliệu (DEA), mật mã khối khóa bí mật sử dụng khóa 56 bit hoạt động trên các khối 64 bit.DES là mật mã khối nguyên mẫu - một thuật toán lấy một chuỗi bit văn bản gốc có độdài cố định và biến đổi nó thành chuỗi bit văn bản mã hóa có cùng độ dài Thiết kế củaDES cho phép người dùng triển khai nó trong phần cứng và sử dụng nó để mã hóa mộtngười dùng, chẳng hạn như để lưu trữ các tệp trên đĩa cứng ở dạng mã hóa.

DES cung cấp 72 triệu triệu khóa mã hóa có thể trở lên và chọn một khóa ngẫu nhiên đểmã hóa mỗi tin nhắn Do điểm yếu cố hữu của DES so với các công nghệ ngày nay,mộtsố tổ chức sử dụng ba DES (3DES), trong đó họ lặp lại quy trình ba lần để tăng them sứcmạnh cho đến khi họ có đủ khả năng cập nhật thiết bị của mình lên khả năng AES.

Tiêu Chuẩn Mã Hóa Dữ Liệu Ba (3DES)

Cuối cùng, rõ ràng là DES sẽ không còn an toàn nữa Chính phủ Liên bang Hoa Kỳ bắtđầu cuộc thi tìm kiếm thuật toán mã hóa thay thế Tuy nhiên, trong lúc đó, 3DES đượctạo ra như một giải pháp tạm thời Về cơ bản, nó thực hiện DES ba lần với ba phím.3DES sử dụng "gói khóa" bao gồm ba khóa DES, K1, K2 và K3 Mỗi khóa là một khóaDES 56 bit tiêu chuẩn Sau đó nó thực hiện quá trình sau:

Mã hóa DES bằng K1, giải mã DES bằng K2, mã hóa DES bằng K3

Có ba lựa chọn cho các phím Trong tùy chọn đầu tiên, cả ba khóa đều độc lập và khácbiệt Trong tùy chọn thứ hai, K1 và K3 giống hệt nhau Trong tùy chọn thứ ba, cả ba

Trang 15

khóa đều là như nhau; do đó, theo nghĩa đen, bạn đang áp dụng cùng một thuật toán DESba lần với cùng một khóa.

Tùy chọn đầu tiên là an toàn nhất, trong khi tùy chọn thứ ba là kém an toàn nhất.

Tiêu chuẩn mã hóa nâng cao (AES)

Tiêu chuẩn mã hóa nâng cao (AES) là đặc điểm kỹ thuật của Viện Tiêu chuẩn và Côngnghệ Quốc gia (NIST) để mã hóa dữ liệu điện tử Nó cũng giúp mã hóa thông tin kỹthuật số như dữ liệu viễn thông, tài chính và chính phủ Các cơ quan chính phủ Hoa Kỳđã sử dụng nó để bảo mật tài liệu nhạy cảm nhưng chưa được phân loại.

AES bao gồm một thuật toán khóa đối xứng: cả mã hóa và giải mã đều được thực hiệnbằng cùng một khóa Nó là một mật mã khối lặp hoạt động bằng cách lặp lại các bước đãxác định nhiều lần Nó có kích thước khối 128 bit, với kích thước khóa lần lượt là 128,192 và 256 bit cho AES-128, AES-192 và AES-256 Thiết kế của AES giúp việc sử dụngnó hiệu quả cả về phần mềm và phần cứng Nó hoạt động đồng thời ở nhiều lớp mạng.

Mã giả AES

Ban đầu, hệ thống sao chép đầu vào mật mã vào trạng thái bên trong và sau đó thêmkhóa vòng ban đầu Hệ thống chuyển đổi trạng thái bằng cách lặp lại hàm tròn trong mộtsố chu kỳ Số chu kỳ có thể thay đổi tùy theo kích thước khối và độ dài khóa Sau khihoàn thành việc làm tròn, hệ thống sẽ sao chép trạng thái cuối cùng vào đầu ra mật mã.

Cipher (byte in [4*Nb], byte out [4*Nb], word w [Nb* (Nr+1)])

byte state [4, Nb] state in

AddRoundKey (state, w)

for round = 1 step 1 to Nr-1 SubBytes (state)

ShiftRows (state) MixColumns (state)

AddRoundKey (state, w+round*Nb) end for

SubBytes (state) ShiftRows (state)

AddRoundKey (state, w+Nr*Nb) out state

end

Trang 16

● RC5

RC5 là mật mã khối khóa đối xứng nhanh được thiết kế bởi Ronald Rivest cho Bảo mậtdữ liệu RSA (nay là Bảo mật RSA) Thuật toán này là một thuật toán được tham số hóavới kích thước khối thay đổi, kích thước khóa thay đổi và số vòng thay đổi Kích thướckhối có thể là 32, 64 hoặc 128 bit Phạm vi của các vòng có thể thay đổi từ 0 đến 255 vàkích thước của khóa có thể thay đổi từ 0 đến 2.040 bit Tính biến đổi tích hợp này có thểmang lại sự linh hoạt ở mọi cấp độ bảo mật.

Các thủ tục được sử dụng trong RC5 là mở rộng khóa, mã hóa và giải mã.

Trong quy trình mở rộng khóa, khóa bí mật mà người dùng cung cấp sẽ được mở rộngđểđiền vào bảng khóa (kích thước của nó phụ thuộc vào số vòng) RC5 sử dụng bảng khóacho cả mã hóa và giải mã Quy trình mã hóa có ba thao tác cơ bản: cộng số nguyên, XORtheo bit và xoay biến Việc sử dụng rộng rãi cơ chế xoay vòng phụ thuộc vào dữ liệu và

Trang 17

sự kết hợp của các hoạt động khác nhau khiến RC5 trở thành một thuật toán mã hóa antoàn.

● RC6

RC6 là mật mã khối khóa đối xứng có nguồn gốc từ RC5 Đây là một thuật toán đượctham số hóa với kích thước khối, kích thước khóa và số vòng thay đổi Hai đặc điểmgiúp phân biệt RC6 với RC5 là phép nhân số nguyên (được sử dụng để tăng độ khuếchtán, đạt được trong ít vòng hơn với tốc độ mã hóa tăng lên) và việc sử dụng bốn thanhghi làm việc 4 bit thay vì hai thanh ghi 2 bit RC6 sử dụng bốn thanh ghi 4 bit thay vì haithanh ghi 2 bit vì kích thước khối của AES là 128 bit.

Trang 18

Blowfish là một loại thuật toán mã hóa khối đối xứng được thiết kế để thay thế thuật toánDES hoặc IDEA Nó sử dụng cùng một khóa bí mật để mã hóa và giải mã dữ liệu Thuậttoán này chia dữ liệu thành một khối có độ dài 64 bit và tạo ra khóa có độ dài từ 32 bitđến 448 bit Do tốc độ cao và hiệu quả tổng thể, Blowfish được sử dụng trong nhiềuphần mềm, từ công cụ bảo vệ mật khẩu đến các trang web thương mại điện tử để đảmbảo thanh toán.

Đó là mật mã Feistel 16 vòng hoạt động trên các khối 64 bit Tuy nhiên, không giốngnhư DES, kích thước khóa của nó dao động từ 32 bit đến 448 bit.

Thuật toán này có hai phần Phần đầu tiên xử lý việc mở rộng khóa Phần thứ hai thực sựmã hóa dữ liệu.

Việc mở rộng khóa được xử lý theo một số bước Bước đầu tiên là chia khóa gốc thànhmột tập hợp các khóa con Cụ thể, một khóa có độ dài không quá 448 bit được tách thành4.168 byte Có một mảng P và bốn hộp S 32 bit Mảng P chứa 18 khóa con 32 bit, trongkhi mỗi hộp S chứa 256 mục nhập.

Việc mở rộng khóa được thực hiện như sau:

1 Bước đầu tiên là khởi tạo mảng P và hộp S.

2 Sau đó, XOR mảng P với các bit khóa Ví dụ: P1 XOR (32 bit đầu tiên của khóa),P2 XOR (32 bit tiếp theo của khóa).

3 Sử dụng phương pháp trên để mã hóa chuỗi hoàn toàn bằng 0.4 Đầu ra mới này hiện là P1 và P2.

5 Mã hóa P1 và P2 mới bằng các khóa con đã sửa đổi.6 Đầu ra mới này hiện là P3 và P4.

7 Lặp lại quy trình 521 lần để tính toán các khóa con mới cho mảng P và bốn hộp S.Hàm tròn chia đầu vào 32 bit thành bốn phần tư 8 bit và sử dụng các phần tư làm đầu vàocho hộp S Các đầu ra được thêm modulo 232 và XOR để tạo ra đầu ra 32 bit cuối cùng.

Trang 19

Thuật toán Twofish là một trong năm thuật toán lọt vào vòng chung kết của Chính phủHoa Kỳ để thay thế DES, nhưng nó không được chọn Nó được thiết kế bởi BruceSchneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall và Niels Ferguson.TwoFish là mật mã khối 128 bit Đây là một trong những thuật toán đơn giản nhất về mặtkhái niệm, sử dụng một khóa duy nhất cho cả mã hóa và giải mã với độ dài bất kỳ lên tới256 bit Đó là mật mã Feistel Nó không chỉ hoạt động nhanh chóng cho CPU hoặc phầncứng mà còn linh hoạt cho các ứng dụng dựa trên mạng Hơn nữa, nó cho phép đánh đổihiệu suất ở nhiều mức độ khác nhau đối với các tham số như tốc độ mã hóa, số cổngphần cứng, mức sử dụng bộ nhớ, v.v Kỹ thuật cho phép triển khai khác nhau này sẽ cảithiện hiệu suất tương đối của thuật toán Bất kỳ người dùng nào cũng có thể tối ưu hóahiệu suất dựa trên lịch trình chính.

Threefish

Threefish được phát triển vào năm 2008 và nó là một phần của thuật toán Skein Nó đãđược ghi danh vào cuộc thi SHA-3 (hàm băm) của NIST Đây là một mật mã khối khóađối xứng lớn có thể điều chỉnh được, trong đó kích thước khối và khóa bằng nhau, tức là256, 512 và 1024 Threefish chỉ bao gồm ba thao tác, tức là ARX (cộng-xoay-XOR),giúp mã hóa đơn giản và tất cả các thao tác này đều hoạt động trên các từ 64 bit Cáckhối Threefish 256, 512 và 1024 lần lượt bao gồm 72, 72 và 80 vòng tính toán để đạtđược mục tiêu bảo mật cuối cùng Thuật toán này không sử dụng hộp S để ngăn chặn cáccuộc tấn công định thời vào bộ đệm.

Trang 20

Giống như Blowfish, Serpent là một mật mã khối khóa đối xứng đã lọt vào vòng chungkết trong cuộc thi AES Thuật toán này được thiết kế bởi Ross Anderson, Eli Biham vàLars Knudsen Nó sử dụng mật mã khối đối xứng 128 bit với kích thước khóa là 128,192 hoặc 256 bit Nó có thể được tích hợp vào các chương trình phần mềm hoặc phầncứng mà không có bất kỳ hạn chế nào.

Serpent bao gồm 32 vòng hoạt động tính toán bao gồm các hoạt động thay thế và hoán vịtrên bốn khối từ 32 bit sử dụng hộp S 8 biến với đầu vào 4 bit và đầu ra 4 bit Tất cả cáchộp S hoạt động song song 32 lần Mặc dù Serpent là một trong những cơ chế mã hóa antoàn nhất trong các cuộc thi AES, nhưng các nhà nghiên cứu đã chọn Rijndael thay vìSerpent do tốc độ mã hóa vừa phải (do số vòng nó sử dụng) và độ phức tạp Serpentgiảm thiểu mối tương quan giữa hình ảnh được mã hóa hoặc bản rõ ở mức độ lớn hơn sovới Twofish và Rijndael Do đó, Rijndael là đối thủ cạnh tranh nổi bật của AES và hiệnđang được sử dụng làm AES.

Thuật toán mã hóa nhỏ (TEA) được tạo ra bởi David Wheeler và Roger Needham vàđược trình bày công khai lần đầu tiên vào năm 1994 Đây là một thuật toán đơn giản, dễthựcnhiện bằng mã Đó là mật mã Feistel sử dụng 64 vòng (lưu ý rằng đây chỉ là gợi ý;nó có thể được thực hiện với ít hoặc nhiều vòng hơn) Số vòng phải chẵn vì chúng đượcthực hiện theo cặp gọi là chu kỳ.

Trang 21

TEA sử dụng khóa 128 bit hoạt động trên khối 64 bit Nó cũng sử dụng một hằng sốđược xác định là 232/tỷ lệ vàng Hằng số này được gọi là delta và trong mỗi vòng, bội sốcủa delta được sử dụng Khóa 128 bit được chia thành bốn khóa con 32 bit khác nhau cónhãn K[0], K[1], K[2] và K[3]

Thay vì sử dụng phép toán XOR, TEA sử dụng phép cộng và phép trừ nhưng với mod232 khối được chia thành hai nửa R và L R được xử lý thông qua hàm vòng.

Hàm làm tròn lấy nửa R và thực hiện phép dịch trái là 4 Sau đó, kết quả của thao tác nàyđược cộng vào K[0] Tiếp theo, kết quả của thao tác này được thêm vào delta (hãy nhớrằng delta là bội số hiện tại của 232/tỷ lệ vàng) Kết quả của thao tác này sau đó đượcdịch sang phải 5 và được them vào K[1] Đây là chức năng tròn Như với tất cả các mậtmã Feistel, kết quả của hàm vòng được XOR với L, sau đó L và R được hoán đổi chovòng tiếp theo.

Trang 22

CAST-128, còn được gọi là CAST5, là mật mã khối khóa đối xứng có mạng Feistel 12hoặc 16 vòng cổ điển với kích thước khối 64 bit CAST-128 sử dụng kích thước khóathay đổi từ 40 bit đến 128 bit với bước tăng 8 bit Các thành phần CAST-128 bao gồmcác hộp S lớn 8 × 32 bit (S1, S2, S3, S4) dựa trên các chức năng uốn cong, cộng và trừmô-đun, xoay phụ thuộc vào khóa và các hoạt động XOR CAST-128 sử dụng phím che(Km1) và phím xoay (Kr ) để thực hiện các chức năng của nó Hàm vòng bao gồm ba₁) để thực hiện các chức năng của nó Hàm vòng bao gồm baloại xen kẽ để thực hiện các phép toán cộng, trừ hoặc XOR ở các giai đoạn khác nhau.Nó được sử dụng làm mật mã mặc định trong GPG (GNU Privacy Guard) và PGP(Pretty Good Privacy).

256 là phần mở rộng của 128 sử dụng quy trình thiết kế tương tự 256 có kích thước khối 128 bit và sử dụng kích thước khóa thay đổi từ 128 đến 256 bit.Hơn nữa, nó sử dụng phương pháp phân tích mật mã không tương quan, có thể phá vỡ 28vòng với thời gian = 2246.9 và dữ liệu =298.8.

Trang 24

CAST-GOST Block Cipher

Mật mã khối GOST (Tiêu chuẩn Chính phủ), còn được gọi là Magma, là mật mã khốikhóa đối xứng có mạng Feistel 32 vòng hoạt động trên các khối 64 bit với độ dài khóa256 bit Nó bao gồm một hộp chữ S có thể được giữ bí mật và chứa khoảng 354 bit thôngtin bí mật GOST là một thuật toán mã hóa đơn giản, trong đó khóa con 32 bit modulo232 được thêm vào và đặt vào lớp hộp S và thao tác dịch chuyển trái được sử dụng đểdịch chuyển 11 bit, từ đó cung cấp đầu ra của hàm tròn.

Việc lập lịch khóa của mật mã khối GOST được thực hiện bằng cách chia khóa 256 bitthành 8 khóa con 32 bit, trong đó mỗi khóa con được sử dụng bốn lần Trong thuật toánnày, các từ khóa được sử dụng theo thứ tự trong 24 vòng đầu tiên và chúng được sử dụngtheo thứ tự ngược lại trong 8 vòng cuối cùng.

Kuznyechik là phần mở rộng mới nhất của GOST, sử dụng khối 128 bit.

Camellia

Camellia là mật mã khối khóa đối xứng có 18 vòng (đối với khóa 128 bit) hoặc 24 vòng(đối với khóa 256 bit) Đó là mật mã Feistel có kích thước khối 128 bit và kích thướckhóa là 128, 192 và 256 bit Camellia sử dụng bốn hộp S 8x8 bit để thực hiện các phépbiến đổi affine và các phép toán logic Hàm FL của lớp biến đổi logic hoặc hàm nghịch

Trang 25

đảo của nó được áp dụng sáu vòng một lần Camellia sử dụng kỹ thuật làm trắng chínhđể tăng cường độ an toàn.

Camellia là một phần của giao thức Transport Layer Security (TLS), được sử dụng đểcung cấp bảo mật giao tiếp Camellia không thể bị ép buộc ngay cả với công nghệ mớinhất mặc dù nó sử dụng kích thước khóa nhỏ hơn 128 bit, do đó làm cho nó trở thànhmật mã an toàn Ngoài ra, Camellia còn mang lại hiệu quả cao bảo mật và kỹ năng xử lýcủa nó tương đương với AES hoặc Rijndael.

Trang 26

DSA Và Các Sơ Đồ Chữ Ký Liên Quan

Thuật toán chữ ký số (DSA) là Tiêu chuẩn xử lý thông tin liên bang dành cho chữ ký số.NIST đã đề xuất DSA để sử dụng trong Tiêu chuẩn chữ ký số (DSS), được thông quadưới dạng FIPS 186 DSA giúp tạo và xác minh chữ ký số cho các ứng dụng nhạy cảmvà chưa được phân loại Nó tạo ra chữ ký số 320 bit với độ bảo mật 512-1024-bit.

Chữ ký số là một sơ đồ toán học được sử dụng để xác thực tin nhắn kỹ thuật số Việctính toán chữ ký số sử dụng một bộ quy tắc (tức là DSA) và một bộ tham số để ngườidùng có thể xác minh danh tính của người ký và tính toàn vẹn của dữ liệu.

Các quy trình liên quan đến DSA:

Quy trình tạo chữ ký: Khóa riêng được sử dụng để biết ai đã ký nó.

Quy trình xác minh chữ ký: Khóa chung được sử dụng để xác minh xem chữ ký

số đã cho có phải là chính hãng hay không.

DSA là một hệ thống mật mã khóa công khai, vì nó liên quan đến việc sử dụng cả khóariêng và khóa chung.

Lợi ích của DSA:

 Ít có khả năng giả mạo hơn so với chữ ký bằng văn bản Phương thức giao dịch kinh doanh nhanh chóng và dễ dàng Vấn đề tiền giả có thể được giảm thiểu đáng kể

Trang 27

Thuật toán DSA:

Mỗi thực thể A thực hiện như sau:

1 Chọn số nguyên tố q sao cho 2159 < a < 2160

2 Chọn một số nguyên t sao cho 0 ≤ t ≤ 8, và chọn một số nguyên tố p thỏa mãn2511+64t < p < 2512+64t, với điều kiện là q chia hết cho (p-1).

3 Chọn một phần tử ⍺ của nhóm tuần hoàn duy nhất có thứ tự q trong Z*, bằngcách chọn một phần tử g trong Z*, và sau đó tính toán ⍺ ≡ g(p-1)/q mod p cho đến

Trang 28

Rivest Shamir Adleman (RSA)

Ron Rivest, Adi Shamir và Leonard Adleman đã xây dựng RSA, một hệ thống mật mãkhóa công khai cho Mã hóa và xác thực Internet RSA sử dụng số học mô-đun và số cơbản lý thuyết để thực hiện tính toán sử dụng hai số nguyên tố lớn Hệ thống RSA đượcsử dụng rộng rãi trong nhiều sản phẩm, nền tảng và ngành công nghiệp Đây là một trongnhững tiêu chuẩn mã hóa thực tế Các công ty như Microsoft, Apple, Sun và Novell xâydựng thuật toán RSA vào hoạt động của họ hệ thống RSA cũng có thể được tìm thấytrên điện thoại được bảo mật bằng phần cứng, card mạng Ethernet và những chiếc thẻthông minh.

RSA hoạt động như sau:

1 Hai số nguyên tố lớn được lấy (a và b) và tích của chúng được xác định (c = ab,trong đó "c" được gọi là mô đun).

2 RSA chọn một số "e" nhỏ hơn "c" và nguyên tố cùng nhau với (a-1)(b-1) Do đó,e và (a-1)(b-1) không có ước chung ngoại trừ 1.

3 Hơn nữa, RSA chọn một số "f" sao cho (ef - 1) chia hết cho (a-1)(b-1).4 Các giá trị "e" và "f" lần lượt là số mũ công khai và số mũ riêng tư.5 Khóa công khai là cặp (c, e); khóa riêng là cặp (c, f).

6 Rất khó lấy được khóa riêng (c, f) từ khóa chung (c, e) Tuy nhiên, nếu ai đó cóthể phân tích "c" thành "a" và "b" thì người đó có thể giải mã được khóa riêng (c,f).

Tính bảo mật của hệ thống RSA phụ thuộc vào giả định rằng việc bao thanh toán đó khóthực hiện ra ngoài, làm cho kỹ thuật mã hóa trở nên an toàn.

Trang 29

Một ví dụ về cách mật mã sử dụng thuật toán RSA trong trao đổi thực tế đượcminh họa theo trình tự sau:

1 Người gửi tin nhắn mã hóa tin nhắn bằng khóa đối xứng DES được chọn ngẫunhiên DES (Tiêu chuẩn mã hóa dữ liệu) là một hệ thống khóa đối xứng tương đốikhông an toàn sử dụng mã hóa 64 bit (56 bit cho kích thước khóa, 8 bit để kiểmtra dự phòng theo chu kỳ) để mã hóa dữ liệu.

2 Sau đó, người gửi sẽ tra cứu khóa chung của người nhận và sử dụng nó để mã hóakhóa DES bằng hệ thống RSA.

3 Người gửi truyền một phong bì kỹ thuật số RSA, bao gồm tin nhắn được mã hóaDES và khóa DES được mã hóa RSA, cho người nhận.

4 Người nhận sẽ giải mã khóa DES và sau đó sử dụng khóa DES để giải mã chínhtin nhắn

Hệ thống này kết hợp tốc độ cao của DES với sự thuận tiện trong quản lý khóa của hệthống RSA.

Lược đồ chữ ký RSA

Mật mã học sử dụng RSA để mã hóa khóa công khai và chữ ký số (để ký một tin nhắn vàxác minh nó) Lược đồ chữ ký RSA là kỹ thuật đầu tiên được sử dụng để tạo chữ ký số.Đây là một sơ đồ chữ ký số xác định cung cấp khả năng khôi phục tin nhắn từ chính chữký đó, khiến nó trở thành kỹ thuật linh hoạt và thiết thực nhất hiện có.

RSA liên quan đến cả khóa chung và khóa riêng Khóa công khai, như tên gọi, có thểđược bất kỳ ai sử dụng để mã hóa tin nhắn Các tin nhắn mà người dùng mã hóa bằngkhóa chung cần có khóa riêng để giải mã.

Giả sử John mã hóa tài liệu M bằng khóa riêng SA, từ đó tạo ra chữ ký Sjohn(M) Johngửi M cùng với chữ ký Sjohn (M) cho Alice Alice giải mã tài liệu bằng khóa chung củaJohn, từ đó xác minh chữ ký của John.

Tạo khóa RSA

Quy trình tạo khóa RSA là chung cho tất cả các sơ đồ chữ ký dựa trên RSA Để tạo cặpkhóa RSA, tức là cả khóa công khai RSA và khóa riêng tương ứng, mỗi thực thể A phảithực hiện như sau:

 Tạo hai số nguyên tố lớn p và q tùy ý, mỗi số có độ dài bit gần bằng nhau Tính n = pq và ϕ = (p-1)(q-1)

 Chọn một số nguyên ngẫu nhiên e, 1 <e <ϕ, sao cho gcd(e, ϕ ) = 1 GCD = Ướcchung lớn nhất

 Sử dụng thuật toán Euclide mở rộng để tính số nguyên duy nhất d, 1 < d < ϕ,chẳng hạn ed đó 1 (mod ϕ)

 Khóa công khai của A là (n, e); Khóa riêng của A là dPhá hủy p và q khi kết thúc quá trình tạo khóa

Thuật toán RSA tạo và xác minh chữ ký RSA như sau:

Thực thể A ký vào thông điệp m∈M Bất kỳ thực thể B nào cũng có thể xác minh chữ kýcủa A và khôi phục

Trang 30

thông điệp m từ chữ ký.

1 Tạo chữ ký

Để ký tin nhắn m, thực thể A thực hiện như sau:• Tính m = R(m), một số nguyên trong khoảng [0, n-1]• Tính s = md mod n

Ví dụ về thuật toán RSA

Toán học cơ bản của mã hóa khóa công khai RSA được mô tả dưới đây:1 Tìm P và Q, hai số nguyên tố lớn (ví dụ: 1024-bit).

2 Chọn E sao cho E lớn hơn 1, E nhỏ hơn PQ và E và (P-1)(Q-1) nguyên tố cùngnhau, nghĩa là chúng không có thừa số nguyên tố chung E không nhất thiết phảilà số nguyên tố nhưng phải là số lẻ (P-1)(Q-1) không thể là số nguyên tố vì nó làsố chẵn.

3 Tính D sao cho (DE - 1) chia hết cho (P-1)(Q-1) Các nhà toán học viết điều nàylà DE = 1 (mod (P-1)(Q-1)), và họ gọi D là nghịch đảo nhân của E Điều này rấtdễ thực hiện - chỉ cần tìm một số nguyên X làm cho D = (X(P -1)(Q-1) + 1)/E làsố nguyên và sau đó sử dụng giá trị đó của D.

4 Hàm mã hóa là C = (T^E) mod PQ, trong đó C là bản mã (số nguyên dương), T làbản rõ (số nguyên dương) và biểu thị lũy thừa Trong quá trình mã hóa tin nhắn, Tphải nhỏ hơn mô đun PQ.

5 Hàm giải mã là T = (CAD) mod PQ, trong đó C là bản mã (số nguyên dương), Tlà bản rõ (số nguyên dương) và biểu thị lũy thừa.

Khóa công khai của bạn là cặp (PQ, E) Khóa riêng của bạn là số D (không tiết lộ cho bấtkỳ ai) Sản phẩm PQ là mô đun E là số mũ công khai D là số mũ bí mật.

Bạn có thể xuất bản khóa công khai của mình một cách tự do vì không có phương pháptính toán dễ dàng nào được biết đến Chỉ cung cấp D, P hoặc Q (PQ, E) (khóa chung củabạn).

Đưa ra dưới đây là một ví dụ về thuật toán RSA:

P = 61<= số nguyên tố đầu tiên (hủy số này sau khi tính E và D)Q = 53<= số nguyên tố thứ hai (hủy số này sau khi tính E và D)

Trang 31

PQ = 3233<= mô đun (đưa cái này cho người khác)E = 17<= số mũ công khai (đưa cái này cho người khác)D = 2753<= số mũ riêng (giữ bí mật này)

Khóa công khai của bạn là (E,PQ)Khóa riêng của bạn là D

Để giải mã giá trị bản mã 855, làm như sau:

Giải mã(855) = (855*2753) mod 3233= 123

Một cách để tính giá trị của 855^2753 mod 3233 như sau:Xét các lũy thừa của 855:

855^1 = 855 (mod 3233)855^2 = 367 (mod 3233)

855^4 = 367^2 (mod 3233) = 2136 (mod 3233)855^8 = 2136^2 (mod 3233) = 733 (mod 3233)855^16 = 733^2 (mod 3233) = 611 (mod 3233)855^32 = 611^2 (mod 3233) = 1526 (mod 3233)855^64 = 1526^2 (mod 3233) = 916 (mod 3233)855^128 = 916^2 (mod 3233) = 1709 (mod 3233)855^256 = 1709^2 (mod 3233) = 1282 (mod 3233)

Trang 32

855^512 = 1282^2 (mod 3233) = 1160 (mod 3233)855^1024 = 1160^2 (mod 3233) = 672 (mod 3233)855^2048 = 672^2 (mod 3233) = 2197 (mod 3233)Dựa vào những điều trên, chúng ta biết như sau:855^2753 (mod 3233)

= 855^(1+64 + 128 +512 + 2048) (mod 3233)

= 855^1*855^64 * 855^128 * 855^512*855^2048 (mod 3233)= 855 * 916 * 1709 * 1160 * 2197 (mod 3233)

= 794 * 1709 * 1160 * 2197 (mod 3233)= 2319 * 1160 * 2197 (mod 3233)= 184 * 2197 (mod 3233)

= 123 (mod 3233)= 123

Trang 33

Đây là một giao thức mật mã cho phép hai bên thiết lập khóa chung qua kênh không antoàn Nó được phát triển và xuất bản bởi Whitfield Diffie và Martin Hellman vào năm1976 Trên thực tế, nó đã được Malcolm J Williamson của Cơ quan Tình báo Anh pháttriển độc lập vài năm trước đó, nhưng nó đã được phân loại vào thời điểm đó.

Thuật toán Diffie-Hellman

Hệ thống có hai tham số gọi là p và g Tham số p là số nguyên tố

 Tham số g (thường được gọi là bộ tạo) là một số nguyên nhỏ hơn p, có tính chấtsau: với mọi số n nằm trong khoảng từ 1 đến p-1 (bao gồm cả hai), có một lũy

thừa k của g sao cho n = gk mod p

Nhiều sách giáo khoa về mật mã sử dụng các ký tự hư cấu “Alice” và “Bob” để minh họacho mật mã; chúng tôi cũng sẽ làm điều tương tự ở đây:

 Alice tạo ra một giá trị riêng tư ngẫu nhiên a và Bob tạo ra một giá trị riêng tưngẫu nhiên b Cả a và b đều được rút ra từ tập hợp số nguyên

 Chúng lấy được các giá trị công khai bằng cách sử dụng các tham số p và g và các

giá trị riêng tư của chúng Giá trị công khai của Alice là ga mod p, và giá trị công

khai của Bob là gb mod p.

 Họ trao đổi giá trị công cộng của họ

Alice tính gab = (gb)a mod p, và Bob tính gba = (ga)b mod p

Vì gab = gba = k nên Alice và Bob hiện có khóa bí mật chung k

Thuật toán Diffie-Hellman không cung cấp bất kỳ xác thực nào cho việc trao đổi khóa vàdễ bị tấn công bằng mật mã Tuy nhiên, nó là cơ sở của nhiều cơ chế xác thực.

Ví dụ: Nó cung cấp tính bảo mật chuyển tiếp trong các chế độ tạm thời của giao thức

TLS tùy thuộc vào thông số mật mã.

Trang 34

YAK là giao thức Trao đổi khóa xác thực (AKE) dựa trên khóa công khai Việc xác thựcYAK dựa trên các cặp khóa chung và nó cần PKI để phân phối khóa chung xác thực.YAK là một biến thể của giao thức Hashed Menezes-Qu-Vanstone (HMQV) hai lượt sửdụng bằng chứng không có kiến thức (ZKP) để chứng minh kiến thức về các khóa bí mậtphù du của cả hai bên Giao thức YAK thiếu khả năng kiểm soát khóa chung và cácthuộc tính bí mật hoàn hảo về phía trước.

Việc triển khai giao thức YAK giữa hai bên Alice và Bob được mô tả như sau:

1 Alice chọn một số ngẫu nhiên x sao cho X∈R[0, q - 1], tính X = gx và tạo ra ZKPcủa x, ký hiệu là KP{x} Alice gửi X và KP{x} cho Bob.

2 Bob chọn một số ngẫu nhiên y sao cho y∈R[0, q- 1], tính Y = gy và tạo ZKP của y,ký hiệu là KP{y} Bob gửi Y và KP{y} cho Alice.

3 Alice xác minh KP{x} đã nhận và tính khóa phiên sau khi xác minh là k = H((Y.PKB)x+a), trong đó H là hàm băm.

4 Bob xác minh KP{y} đã nhận và tính khóa phiên sau khi xác minh là k = H ((X.PKA)y+b).

5 Chúng xác thực lẫn nhau và cả hai đều nhận được cùng một khóa phiên k = H(g(x+a)(y+b)).

Giao thức YAK có thể thực hiện các mục tiêu sau: Bảo mật khóa riêng

 Bảo mật hoàn toàn về phía trước Bảo mật khóa phiên

Trang 35

Hàm Phân Loại Tin Nhắn (Băm Một Chiều)

Hàm băm tính toán biểu diễn chuỗi bit có kích thước cố định duy nhất, được gọi là bảntóm tắt thông báo, của bất kỳ khối thông tin tùy ý nào Các chức năng phân loại thôngbáo chắt lọc thông tin chứa trong một tệp (nhỏ hoặc lớn) thành một số có độ dài cố định,thường là từ 128 đến 256 bit Nếu bất kỳ bit nào của đầu vào của hàm bị thay đổi thì mọibit đầu ra đều có 50% cơ hội thay đổi Với một tệp đầu vào và thông báo tóm tắt tươngứng của nó, gần như không thể tìm thấy một tệp khác có cùng giá trị thông báo thôngbáo, vì về mặt tính toán là không thể có hai tệp có cùng giá trị thông báo thông báo.Hàm phân loại thông điệp còn được gọi là hàm băm một chiều vì chúng tạo ra các giá trịgần như không thể đảo ngược, có khả năng chống lại sự tấn công, hầu hết là duy nhất vàđược phân phối rộng rãi Bản thân các thuật toán phân loại tin nhắn không tham gia vàocác hoạt động mã hóa và giải mã Chúng cho phép tạo chữ ký số và mã xác thực tin nhắn(MAC) cũng như lấy khóa mã hóa từ cụm mật khẩu.

Vai trò chính của hàm băm mật mã là cung cấp tính toàn vẹn trong quản lý tài liệu Hàmbăm mật mã là một phần không thể thiếu của chữ ký số Chúng tương đối nhanh hơnthuật toán chữ ký số; do đó, tính năng đặc trưng của chúng là tính toán chữ ký của giá trịbăm của tài liệu, giá trị này nhỏ hơn tài liệu Ngoài ra, các bản tóm tắt còn giúp ẩn nộidung hoặc nguồn của tài liệu.

Các hàm phân loại tin nhắn được sử dụng rộng rãi bao gồm các thuật toán sau: MD5

 SHA

Lưu ý: Thông báo tóm tắt còn được gọi là hàm băm một chiều vì chúng không thể đảongược được.

Trang 37

Chức Năng Phân Loại Tin Nhắn: MD5 Và MD6

MD2, MD4, MD5 và MD6 là các thuật toán phân loại tin nhắn được sử dụng trong cácứng dụng chữ ký số để nén tài liệu một cách an toàn trước khi hệ thống ký vào tài liệu đóbằng khóa riêng Các thuật toán có thể có độ dài thay đổi, nhưng bản tóm tắt thông điệpthu được luôn có kích thước 128 bit.

Cấu trúc của cả ba thuật toán (MD2, MD4 và MD5) có vẻ giống nhau, mặc dù thiết kếcủa MD2 khá khác so với MD4 và MD5 MD2 hỗ trợ máy 8 bit, trong khi MD4 và MD5hỗ trợ máy 32 bit Thuật toán đệm thông báo bằng các bit bổ sung để đảm bảo rằng số bitchia hết cho 512 Các bit bổ sung có thể bao gồm thông báo nhị phân 64 bit.

Các cuộc tấn công vào các phiên bản MD4 ngày càng thành công Nghiên cứu đã chỉ racách kẻ tấn công thực hiện các cuộc tấn công va chạm trên phiên bản MD4 đầy đủ trongvòng một phút trên PC thông thường MD5 an toàn hơn một chút nhưng chậm hơn MD4.Tuy nhiên, cả kích thước tóm tắt tin nhắn và yêu cầu về phần đệm vẫn giữ nguyên.

MD5 là hàm băm mật mã được sử dụng rộng rãi, lấy thông báo có độ dài tùy ý làm đầuvào và xuất ra bản tóm tắt thông báo hoặc dấu vân tay 128 bit (16 byte) của đầu vào.MD5 có thể được sử dụng trong nhiều ứng dụng mật mã và rất hữu ích cho các ứng dụngchữ ký số, tập tin kiểm tra tính toàn vẹn và lưu trữ mật khẩu Tuy nhiên, MD5 không cókhả năng chống va chạm; do đó, nó tốt hơn là sử dụng các thuật toán mới nhất, chẳnghạn như MD6, SHA-2 và SHA-3.

MD6 sử dụng cấu trúc giống cây Merkle để cho phép tính toán băm song song quy môlớn cho đầu vào rất dài Nó có khả năng chống lại các cuộc tấn công phân tích mật mãkhác biệt.

Để tính hiệu quả của hàm băm, hãy kiểm tra kết quả đầu ra khi thuật toán ngẫu nhiên hóamột thông báo đầu vào tùy ý.

Sau đây là ví dụ về các bản tóm tắt thông báo có sự khác biệt tối thiểu:

Trang 38

 echo "There is 1500 CHF in the blue box" | md5sume41a323bdf20eadafd3f0e4f72055d36

 echo " There is 1500 CHF in the blue box " | md5sum7a0da864a41fd0200ae0ae97afd3279d

 echo " There is 1500 CHF in the blue box " | md5sum2db1ff7a70245309e9f2165c6c34999d

Ngay cả những văn bản khác nhau tối thiểu cũng tạo ra các mã MD5 hoàn toàn khácnhau.

Nguồn: http://onlinemd5.com

Onlinemd5 tạo và kiểm tra tính toàn vẹn của tệp bằng các thuật toán an toàn đã đượcchứng minh theo thời gian như MD5, SHA-1 và SHA-256 Người ta có thể tạo tổng kiểmtra (dấu vân tay kỹ thuật số) của các tệp và xác minh tính toàn vẹn của chúng bằng côngcụ trực tuyến này.

Trang 39

Chức Năng Phân Loại Tin Nhắn: Thuật Toán Băm An Toàn (SHA)

Hệ thống Tiêu chuẩn Quốc gia Hoa Kỳ (NIST) đã phát triển Thuật toán Băm An toàn(SHA), được xác định trong Tiêu chuẩn Băm An toàn (SHS) và được công bố như một

tiêu chuẩn xử lý thông tin liên bang (FIPS PUB 180) Thuật toán này tạo ra một giá trịbăm một chiều mật mã hóa Rivest đã phát triển SHA, nó tương tự như gia đình thuậttoán băm của hàm băm thông điệp Nó chậm hơn một chút so với MD5, nhưng giá trịbăm lớn hơn làm cho nó an toàn hơn đối với các cuộc tấn công va chạm và đảo ngượcmật mã.

Mã hóa SHA là một chuỗi gồm năm hàm mật mã khác nhau và hiện có ba thế hệ: 1, SHA-2 và SHA-3.

SHA- SHA-0: Một thuật ngữ được áp dụng sau cùng cho phiên bản gốc của hàm băm

160-bit được công bố vào năm 1993 dưới tên gọi SHA, đã bị rút khỏi thị trườngdo một "lỗ hổng đáng kể" không được tiết lộ Nó đã được thay thế bằng mộtphiên bản được sửa đổi một chút, cụ thể là SHA-1.

SHA-1: Đây là một hàm băm 160-bit giống với thuật toán MD5 trước đó được

phát triển bởi Ron Rivest Nó tạo ra một giá trị băm 160-bit từ một thông điệpcó chiều dài tối đa là (2^64 - 1) bit Nó được thiết kế bởi Cơ quan An ninh Quốcgia (NSA) để là một phần của Thuật toán Chữ ký Số (DSA) Nó thường được sửdụng trong các giao thức an ninh như PGP, TLS, SSH, và SSL Tính đến năm2010, SHA-1 không còn được phê duyệt sử dụng trong mật mã vì nhược điểmmật mã của nó.

SHA-2: SHA-2 là một gia đình gồm hai hàm băm tương tự nhau nhưng có kích

thước khối khác nhau, cụ thể là SHA-256, sử dụng từ 32-bit, và SHA-512, sửdụng từ 64-bit Các phiên bản cắt giảm của mỗi tiêu chuẩn là SHA-224 vàSHA-384.

Trang 40

SHA-3: SHA-3 sử dụng cấu trúc bọt biển trong đó các khối thông điệp được

XOR vào các bit ban đầu của trạng thái, sau đó thuật toán đảo ngược chúng mộtcách không thể mất thông tin Nó hỗ trợ cùng độ dài băm như SHA-2 nhưngkhác biệt về cấu trúc nội tại khá nhiều so với phần còn lại của gia đình SHA.

So sánh các hàm SHA (SHA-O, SHA-1, SHA-2 và SHA-3).

Thuật toán về biếnthể

Kíchthước vàtrạng thái

Kíchthước tinnhắntốiđa(bi

xor, rot

Thêm mod232, and, or,

xor, rot

(5*32) 512 264 -1 80

Thêm mod232, and, or,

xor, rot

112 128SHA-384

(8*64) 1024 2128 -

Thêm mod264, and, or,xor, shr, rot

192 256 112 128

8 832 5761344108

And, or,xor,

112 128 192 256Mind/2,128

6)

Ngày đăng: 10/08/2024, 21:21

w