Download as pdf or txt
Download as pdf or txt
You are on page 1of 73

Machine Translated by Google

Chương 7
Mật mã và khóa công khai
Cơ sở hạ tầng

MỤC TIÊU BÀI THI+ BẢO MẬT COMPTIA


NỘI DUNG TRONG CHƯƠNG NÀY BAO GỒM:

Miền 1.0: Các mối đe dọa, tấn công và lỗ hổng

1.2 Đưa ra một kịch bản, phân tích các chỉ số tiềm ẩn để xác
định kiểu tấn công.

Miền 2.0: Kiến trúc và Thiết kế 2.1 Giải thích tầm

quan trọng của các khái niệm bảo mật trong môi trường doanh
nghiệp.

2.8 Tóm tắt những khái niệm cơ bản về mật mã.

Miền 3.0: Triển khai 3.9 Đưa ra một

kịch bản, triển khai cơ sở hạ tầng khóa công khai.

Mật mã học là thực hành mã hóa thông tin theo cách không thể giải mã được nếu
không truy cập vào khóa giải mã cần thiết. Mật mã bao gồm hai hoạt động chính:
mã hóa, chuyển đổi thông tin văn bản thuần túy thành văn bản mã hóa bằng
cách sử dụng khóa mã hóa và giải mã, chuyển đổi văn bản mã hóa trở lại văn
bản thuần túy bằng khóa giải mã.

Mật mã học có một số mục tiêu quan trọng. Đầu tiên trong số này là mục tiêu bảo
mật, tương ứng với một trong ba chân của bộ ba CIA. Các tổ chức sử dụng mã hóa
để bảo vệ thông tin nhạy cảm khỏi những con mắt tò mò. Mục tiêu thứ hai,
tính chính trực, cũng tương ứng với một trong ba yếu tố của bộ ba CIA.
Machine Translated by Google

Các tổ chức sử dụng mật mã để đảm bảo rằng dữ liệu không bị


thay đổi một cách cố ý hoặc vô ý. Khi chúng ta đạt được mục tiêu thứ
ba, xác thực, các mục tiêu của mật mã bắt đầu khác với bộ ba CIA. Mặc dù
xác thực bắt đầu bằng chữ A, hãy nhớ rằng chữ A trong bộ ba CIA là
“sẵn sàng”.
Xác thực đề cập đến việc sử dụng mã hóa để xác thực danh tính của các cá
nhân. Mục tiêu thứ tư, tính không chối bỏ, đảm bảo rằng các cá
nhân có thể chứng minh cho bên thứ ba rằng tin nhắn đến từ người gửi có
mục đích. Các hệ thống mật mã khác nhau có khả năng đạt được các mục
tiêu khác nhau, như bạn sẽ tìm hiểu trong chương này.

Nhiều người, thậm chí nhiều sách giáo khoa, có xu hướng sử


dụng thuật ngữ mật mã và mật mã học thay thế cho nhau.

Tổng quan về mật mã


Mật mã học là một lĩnh vực gần như lâu đời như loài người. Những
nỗ lực mã hóa đầu tiên được ghi nhận đã xảy ra cách đây 4.000 năm. Những
nỗ lực ban đầu này bao gồm việc dịch các thông điệp từ ngôn ngữ
này sang ngôn ngữ khác hoặc thay thế các ký tự. Kể từ thời điểm đó,
mật mã đã phát triển với rất nhiều khả năng. Những bước đột phá đầu
tiên vào mật mã này chỉ tập trung vào việc đạt được mục tiêu bảo
mật. Các phương pháp cổ điển sử dụng các kỹ thuật tương đối đơn giản
mà con người thường có thể thực hiện được trong một khoảng thời gian
hợp lý. Kỹ thuật che giấu được sử dụng trong mật mã hiện đại phức tạp
hơn nhiều và có thể không thể phá vỡ được trong một khoảng thời gian
thực tế.

Mật mã lịch sử
Các phương pháp mã hóa lịch sử có trước thời đại máy tính hiện đại.
Những phương pháp này không phụ thuộc vào toán học, vì nhiều
Machine Translated by Google

các phương pháp hiện đại có thể thực hiện được, nhưng đúng hơn là dựa trên một số kỹ thuật xáo

trộn văn bản.

Mật mã là một phương pháp được sử dụng để xáo trộn hoặc làm xáo trộn các
ký tự nhằm che giấu giá trị của chúng. Mã hóa là quá trình sử dụng mật mã để thực
hiện kiểu xáo trộn tin nhắn đó. Hai loại mật mã hoặc phương pháp mã
hóa phi toán học chính là thay thế và hoán vị. Chúng ta sẽ thảo luận
về cả hai phương pháp này trong phần này.

Mật mã thay thế

Mật mã thay thế là một loại hệ thống mã hóa hoặc mã hóa thay đổi một ký tự
hoặc ký hiệu này thành một ký tự hoặc ký hiệu khác. Thay thế ký tự
có thể là một phương pháp mã hóa thông tin tương đối dễ dàng. Một
trong những mật mã thay thế lâu đời nhất được biết đến là mật mã Caesar. Nó
được cho là được sử dụng bởi Julius Caesar. Hệ thống này chỉ đơn giản là
dịch chuyển tất cả các chữ cái đến một số khoảng trống nhất định trong
bảng chữ cái. Người ta cho rằng, Julius Caesar đã sử dụng dịch chuyển số ba
sang phải. Điều này đơn giản có nghĩa là bạn biến chữ A của tin nhắn thành
D, B thành E, v.v. Khi bạn chạm đến cuối bảng chữ cái, bạn chỉ cần “quấn quanh”
để X trở thành A, Y trở thành B và Z trở thành C.

Tất nhiên, Caesar đang làm việc bằng tiếng Latinh, nhưng điều tương tự có
thể được thực hiện với bất kỳ ngôn ngữ nào, kể cả tiếng Anh. Đây là một ví dụ:

TÔI SẼ VƯỢT KIỂM TRA

Nếu bạn dịch từng chữ cái thứ ba sang phải, bạn sẽ nhận được kết quả sau:

L ZLOO SDVV WKH HADP

Việc giải mã một tin nhắn được mã hóa bằng mật mã Caesar tuân theo quy trình
ngược lại. Thay vì dịch chuyển mỗi chữ cái sang phải ba vị trí, việc giải mã
sẽ dịch chuyển từng chữ cái của bản mã sang trái ba vị trí để khôi phục ký tự
văn bản thuần túy ban đầu.
Machine Translated by Google

ROT13

ROT13 hay “xoay 13” là một mật mã thay thế đơn giản khác. Mật mã
ROT13 hoạt động tương tự như mật mã Caesar nhưng xoay mỗi
chữ cái 13 vị trí trong bảng chữ cái. Do đó, A trở thành N, B trở
thành O, v.v. Vì bảng chữ cái có 26 chữ cái nên bạn có thể sử dụng
cùng một cách xoay 13 chữ cái để giải mã tin nhắn.

Mật mã Caesar và ROT13 là những ví dụ rất đơn giản về mật mã


thay thế. Ngày nay chúng quá đơn giản để sử dụng, vì bất kỳ nhà mật
mã học nào cũng có thể phá được những mật mã này hoặc bất kỳ sự thay
thế tương tự nào chỉ trong vài giây. Tuy nhiên, hoạt động thay thế
tạo thành nền tảng của nhiều thuật toán mã hóa hiện đại. Họ chỉ thực
hiện những phép thay thế phức tạp hơn nhiều và thực hiện những thao
tác đó nhiều lần để tăng thêm độ phức tạp và khiến mật mã khó bị bẻ khóa hơn.

Thay thế nhiều chữ cái

Một trong những vấn đề với mật mã thay thế là chúng không thay đổi
tần số chữ cái và từ cơ bản của văn bản. Một cách để chống lại điều
này là sử dụng nhiều bảng chữ cái thay thế cho cùng một thông điệp.
Mật mã sử dụng phương pháp này được gọi là mật mã thay thế đa
bảng chữ cái. Ví dụ: bạn có thể dịch chữ cái đầu tiên sang phải 3
đơn vị, chữ cái thứ hai sang phải 2 đơn vị và chữ cái thứ ba sang
trái một đơn vị; sau đó lặp lại công thức này với ba chữ cái tiếp theo.

Ví dụ nổi tiếng nhất về sự thay thế nhiều bảng chữ cái trong lịch
sử là mật mã Vigenère. Nó sử dụng một từ khóa để tra cứu văn bản mật
mã trong một bảng, được hiển thị trong Hình 7-1. Người dùng sẽ lấy
chữ cái đầu tiên trong văn bản mà họ muốn mã hóa, đi tới bảng Vigenère
và khớp chữ cái đó với chữ cái trong từ khóa để tìm chữ cái trong văn
bản mã hóa. Điều này sẽ được lặp lại cho đến khi
Machine Translated by Google

toàn bộ tin nhắn đã được mã hóa. Mỗi chữ cái trong từ khóa tạo ra một
bảng chữ cái thay thế khác nhau.

HÌNH 7.1 Bảng mật mã Vigenère

Ví dụ: hãy tưởng tượng rằng bạn muốn sử dụng mật mã này để mã hóa cụm
từ “TIN NHẮN BÍ MẬT” bằng từ khóa “APPLE”. Bạn sẽ bắt đầu bằng cách
sắp xếp các ký tự của tin nhắn với các ký tự của từ khóa, lặp lại
từ khóa nhiều lần nếu cần:

BÍ MẬT

TÁOAPPLEAPP

Sau đó, bạn tạo bản mã bằng cách tra cứu từng cặp văn bản thuần túy và
ký tự khóa trong bảng Vigenère của Hình 7.1 . Chữ cái đầu tiên của văn
bản thuần túy là “S” và chữ cái đầu tiên của khóa là “A”, vì vậy bạn đi
đến cột S trong bảng rồi nhìn vào hàng tìm A và thấy rằng giá trị văn
bản mã hóa là “ S." Lặp lại quá trình này cho ký tự thứ hai, bạn
tra cứu giao điểm của “E” và “P” trong
Machine Translated by Google

bảng để lấy ký tự bản mã “T.” Khi bạn thực hiện quy trình
này, bạn sẽ nhận được thông báo được mã hóa này:

STRCITBTDEAVT

Để giải mã tin nhắn, bạn đảo ngược quy trình, tìm ký tự


văn bản mã hóa trong hàng cho chữ cái chính và sau đó nhìn vào đầu
cột đó để tìm văn bản thuần túy. Ví dụ: chữ cái đầu tiên đưa
chúng ta đến hàng “A”, nơi chúng ta tìm thấy ký tự bản mã “S”
nằm trong cột “S”. Chữ cái thứ hai đưa chúng ta đến hàng “P”, nơi
chúng ta tìm thấy ký tự bản mã “T” trong cột “E”.

Mật mã chuyển vị Một

mật mã chuyển vị bao gồm việc hoán vị hoặc xáo trộn các chữ
cái theo một cách nhất định. Thông thường, một tin nhắn được
chia thành các khối có kích thước bằng nhau và sau đó mỗi khối sẽ
được xáo trộn. Trong ví dụ đơn giản ở Hình 7.2, các ký tự
được hoán vị bằng cách thay đổi thứ tự các ký tự trong mỗi nhóm.
Trong trường hợp này, các chữ cái được xoay ba vị trí trong tin
nhắn. Bạn có thể thay đổi cách chuyển Khối 1 từ Khối 2 và làm cho
nó khó hơn một chút, nhưng việc giải mã vẫn tương đối dễ dàng.

HÌNH 7.2 Hoạt động của mật mã chuyển vị đơn giản

Chuyển vị cột là một ví dụ cổ điển về mật mã chuyển vị. Với


mật mã này, bạn chọn trước số hàng sẽ là khóa mã hóa của bạn. Sau
đó bạn viết tin nhắn của bạn bằng cách
Machine Translated by Google

đặt các ký tự liên tiếp ở hàng tiếp theo cho đến khi bạn đến
cuối cột. Ví dụ: nếu bạn muốn mã hóa tin nhắn

MEETMEINTHESTORE

Sử dụng phím 4, bạn sẽ viết tin nhắn thành bốn hàng như sau:

MMTT

EEHO

EIER

TNSE Sau đó, để có được bản mã, bạn đọc dọc theo hàng thay vì dọc
theo cột, sẽ cho bạn

MMTTEEHOEIERTNSE

Để giải mã tin nhắn này, bạn phải biết rằng tin nhắn đã được
mã hóa bằng bốn hàng, sau đó bạn sử dụng thông tin đó để tạo lại
ma trận, viết các ký tự văn bản mã hóa trên các hàng.
Sau đó, bạn giải mã tin nhắn bằng cách đọc dọc theo các cột thay
vì theo hàng.

Máy Enigma Không có

cuộc thảo luận nào về lịch sử mật mã sẽ hoàn thành nếu không
thảo luận về máy Enigma. Máy Enigma được chính phủ Đức tạo ra
trong Thế chiến thứ hai để cung cấp thông tin liên lạc an toàn
giữa các đơn vị quân sự và chính trị. Chiếc máy như trong Hình
7.3 trông giống như một chiếc máy đánh chữ với một số tính năng
bổ sung.
Machine Translated by Google

HÌNH 7.3 Máy Enigma từ Bảo tàng Mật mã Quốc gia của Cơ quan An ninh Quốc
gia

Nguồn: Ảnh Chính phủ Hoa Kỳ

Người vận hành chịu trách nhiệm cấu hình máy để sử dụng mã ngày bằng cách
đặt các nút xoay ở phía trên máy và cấu hình các dây ở mặt trước của
máy. Hoạt động bên trong của máy thực hiện thay thế nhiều bảng chữ cái,
thay đổi sự thay thế cho từng ký tự của tin nhắn.

Sau khi máy đã được cấu hình đúng cách trong ngày, việc sử dụng máy rất
đơn giản. Người vận hành gửi nhấn phím trên bàn phím tương ứng
với một chữ cái trong tin nhắn văn bản thuần túy. Chữ cái mã hóa tương
ứng sau đó sẽ sáng lên. Toán tử nhận thực hiện theo quy trình tương tự
để chuyển đổi trở lại văn bản thuần túy.

Máy Enigma đã làm phiền lòng các sĩ quan tình báo của Đồng minh, những
người đã dành thời gian và sức lực đáng kể cho một dự án mang tên
Ultra được thiết kế để đánh bại cỗ máy. Nỗ lực đánh bại Enigma tập trung vào
Machine Translated by Google

Bletchley Park ở Vương quốc Anh và được dẫn dắt bởi nhà khoa học máy tính
tiên phong Alan Turing. Những nỗ lực này đã dẫn đến thành công lớn trong
việc giải mã thông tin liên lạc của Đức, và những nỗ lực đó đã được chính Thủ
tướng Anh Winston Churchill khen ngợi, người được cho là đã nói
với Vua George VI rằng “nhờ [Ultra], được đưa vào sử dụng trên tất cả các
mặt trận, mà chúng ta đã thắng cuộc chiến!”

Steganography

Steganography là nghệ thuật sử dụng các kỹ thuật mật mã để nhúng các


thông điệp bí mật vào một tập tin khác. Các thuật toán Steganographic
hoạt động bằng cách thực hiện các thay đổi đối với các bit ít quan trọng nhất
trong số nhiều bit tạo nên tệp hình ảnh. Những thay đổi nhỏ đến mức không có
ảnh hưởng đáng kể đến hình ảnh được xem. Kỹ thuật này cho phép các
bên giao tiếp ẩn các thông điệp ở nơi dễ thấy—ví dụ: họ có thể nhúng một
thông điệp bí mật vào trong một hình minh họa trên một trang web lẽ ra vô
hại.

Người viết mật mã thường nhúng thông điệp bí mật của họ vào trong hình ảnh,
tệp video hoặc tệp âm thanh vì những tệp này thường lớn đến mức ngay cả
người kiểm tra tinh ý nhất cũng có thể dễ dàng bỏ qua thông điệp bí
mật. Kỹ thuật Steganography thường được sử dụng cho các hoạt động bất hợp
pháp hoặc có vấn đề, chẳng hạn như gián điệp và nội dung khiêu dâm
trẻ em.

Tuy nhiên, Steganography cũng có thể được sử dụng cho các mục đích hợp pháp.
Việc thêm hình mờ kỹ thuật số vào tài liệu để bảo vệ quyền sở hữu trí
tuệ được thực hiện bằng kỹ thuật giấu tin. Thông tin ẩn chỉ có người tạo
ra tệp mới biết. Nếu sau này ai đó tạo một bản sao nội dung trái phép,
hình mờ có thể được sử dụng để phát hiện bản sao và (nếu các tệp có hình mờ
duy nhất được cung cấp cho mỗi người nhận ban đầu) sẽ truy tìm bản sao
vi phạm về nguồn.

Steganography là một công nghệ cực kỳ đơn giản để sử dụng, với các công cụ
miễn phí có sẵn trên Internet. Hình 7.4 hiển thị toàn bộ giao diện của một
công cụ như vậy, OpenStego. Nó chỉ yêu cầu bạn chỉ định một tệp văn bản
chứa thông điệp bí mật của bạn và một tệp hình ảnh
Machine Translated by Google

mà bạn muốn sử dụng để ẩn tin nhắn. Hình 7.5 cho thấy một ví
dụ về một bức ảnh có chứa thông điệp bí mật; thông điệp không thể
được phát hiện bằng mắt người.

HÌNH 7.4 Công cụ ghi mật mã OpenStego

HÌNH 7.5 Hình ảnh có thông điệp được nhúng


Machine Translated by Google

Mục tiêu của Mật mã học


Những người thực hành bảo mật sử dụng hệ thống mật mã để đáp ứng bốn mục
tiêu cơ bản: tính bảo mật, tính toàn vẹn, tính xác thực và tính không chối bỏ.
Việc đạt được từng mục tiêu này đòi hỏi phải đáp ứng một số yêu cầu
thiết kế và không phải tất cả các hệ thống mật mã đều nhằm đạt được cả
bốn mục tiêu. Trong các phần sau, chúng tôi sẽ xem xét chi tiết từng
mục tiêu và đưa ra mô tả ngắn gọn về các yêu cầu kỹ thuật cần thiết để đạt được
mục tiêu đó.

Bảo mật
Tính bí mật đảm bảo rằng dữ liệu vẫn ở chế độ riêng tư trong ba trường hợp khác
nhau: khi dữ liệu ở trạng thái nghỉ, khi đang truyền và khi dữ liệu đang ở chế độ
sử dụng.

Tính bí mật có lẽ là mục tiêu được đề cập rộng rãi nhất của các hệ
thống mật mã—bảo vệ bí mật cho thông tin được lưu trữ hoặc cho thông tin liên
lạc giữa các cá nhân và nhóm. Hai loại hệ thống mật mã chính thực thi tính bảo
mật.

Hệ thống mật mã đối xứng sử dụng khóa bí mật chung dành cho tất cả người
dùng hệ thống mật mã.

Hệ thống mật mã bất đối xứng sử dụng các tổ hợp khóa chung và khóa riêng
cho từng người dùng của hệ thống. Cả hai khái niệm này đều được khám
phá trong phần “Mật mã hiện đại” ở phần sau của chương này.

Khái niệm bảo vệ dữ liệu ở trạng thái nghỉ và dữ liệu đang truyền thường
được đề cập trong kỳ thi Bảo mật+. Bạn cũng nên biết rằng dữ liệu đang
truyền cũng thường được gọi là dữ liệu trên dây, đề cập đến các cáp mạng
mang dữ liệu liên lạc.
Machine Translated by Google

Khi phát triển một hệ thống mật mã nhằm mục đích cung cấp tính bảo mật,
bạn phải nghĩ đến ba loại dữ liệu:

Dữ liệu ở trạng thái nghỉ hoặc dữ liệu được lưu trữ là dữ liệu

nằm ở một vị trí cố định đang chờ truy cập. Ví dụ về dữ liệu ở trạng thái
nghỉ bao gồm dữ liệu được lưu trữ trên ổ cứng, băng sao lưu, dịch vụ lưu
trữ đám mây, thiết bị USB và các phương tiện lưu trữ khác.

Dữ liệu chuyển động hoặc dữ liệu trên dây là dữ liệu được truyền qua mạng
giữa hai hệ thống. Dữ liệu đang chuyển động có thể được truyền trên mạng
công ty, mạng không dây hoặc Internet công cộng.

Dữ liệu đang sử dụng là dữ liệu được lưu trữ trong bộ nhớ hoạt động
của hệ thống máy tính nơi nó có thể được truy cập bởi một quá
trình đang chạy trên hệ thống đó.

Mỗi tình huống này đặt ra các loại rủi ro bảo mật khác nhau mà mật mã có thể bảo vệ
chống lại. Ví dụ: dữ liệu đang chuyển động có thể dễ bị tấn công nghe lén, trong
khi dữ liệu ở trạng thái nghỉ dễ bị đánh cắp bởi các thiết bị vật lý hơn. Dữ liệu
đang được sử dụng có thể bị truy cập bởi các quy trình trái phép nếu hệ điều hành
không thực hiện cách ly quy trình đúng cách.

Obfuscation là một khái niệm liên quan chặt chẽ đến tính bảo mật. Đó là hành vi
cố tình làm cho con người khó hiểu cách thức hoạt động của mã. Kỹ
thuật này thường được sử dụng để che giấu hoạt động bên trong của phần mềm,
đặc biệt khi phần mềm chứa tài sản trí tuệ nhạy cảm.

Chính trực

Tính toàn vẹn đảm bảo rằng dữ liệu không bị thay đổi mà không được phép. Nếu có
cơ chế toàn vẹn, người nhận tin nhắn có thể chắc chắn rằng tin nhắn nhận được
giống hệt với tin nhắn đã được gửi. Tương tự, kiểm tra tính toàn vẹn có thể
đảm bảo rằng dữ liệu được lưu trữ không bị thay đổi trong khoảng thời gian từ khi
tạo đến khi truy cập. Kiểm soát tính toàn vẹn bảo vệ chống lại mọi hình thức

thay đổi,
Machine Translated by Google

bao gồm sự thay đổi có chủ ý của bên thứ ba nhằm cố gắng chèn thông tin
sai lệch, cố ý xóa các phần dữ liệu và thay đổi vô ý do lỗi trong quá
trình truyền.

Tính toàn vẹn của tin nhắn được thực thi thông qua việc sử dụng các bản
tóm tắt tin nhắn được mã hóa, được gọi là chữ ký số, được tạo khi truyền
tin nhắn. Người nhận tin nhắn chỉ cần xác minh rằng chữ ký số của
tin nhắn là hợp lệ, đảm bảo rằng tin nhắn không bị thay đổi trong quá
trình truyền. Tính toàn vẹn có thể được thực thi bởi cả hệ thống mật
mã khóa công khai và khóa bí mật.

Xác thực

Xác thực xác minh danh tính được xác nhận của người dùng hệ thống và là
chức năng chính của hệ thống mật mã. Ví dụ: giả sử Bob muốn thiết lập
phiên liên lạc với Alice và cả hai đều là người tham gia vào hệ thống
liên lạc bí mật được chia sẻ.
Alice có thể sử dụng kỹ thuật xác thực phản hồi thử thách để đảm bảo
rằng Bob chính là người mà anh ấy tuyên bố.

Hình 7.6 cho thấy giao thức phản hồi-thách thức này sẽ hoạt động như thế
nào trong thực tế. Trong ví dụ này, mã bí mật chung được Alice và Bob sử
dụng khá đơn giản—các chữ cái của mỗi từ chỉ đơn giản là đảo ngược.
Đầu tiên Bob liên lạc với Alice và xác định danh tính của mình. Sau

đó, Alice gửi một tin nhắn thách thức cho Bob, yêu cầu anh ta mã hóa
một tin nhắn ngắn bằng mã bí mật mà chỉ Alice và Bob mới biết. Bob trả
lời bằng tin nhắn được mã hóa. Sau khi Alice xác minh rằng tin
nhắn được mã hóa là chính xác, cô tin rằng chính Bob thực sự đang ở đầu
bên kia của kết nối.
Machine Translated by Google

HÌNH 7.6 Giao thức xác thực phản hồi thử thách

Không bác bỏ
Việc chống chối bỏ cung cấp sự đảm bảo cho người nhận rằng tin
nhắn được tạo ra bởi người gửi chứ không phải ai đó giả mạo
người gửi. Nó cũng ngăn người gửi tuyên bố rằng họ chưa bao giờ
gửi tin nhắn ngay từ đầu (còn được gọi là từ chối tin nhắn). Khóa bí
mật hoặc khóa đối xứng, các hệ thống mật mã (chẳng hạn như các mật mã
thay thế đơn giản) không cung cấp sự đảm bảo về tính không chối bỏ này.
Nếu Jim và Bob tham gia vào một hệ thống liên lạc khóa bí mật, cả hai
đều có thể tạo ra cùng một thông điệp được mã hóa bằng khóa bí mật chung
của họ. Tính chống chối bỏ chỉ được cung cấp bởi các hệ thống mật mã khóa
công khai hoặc bất đối xứng, một chủ đề sẽ được thảo luận sau trong
chương này.

Khái niệm mật mã


Giống như bất kỳ ngành khoa học nào, bạn phải làm quen với một số thuật
ngữ nhất định trước khi nghiên cứu về mật mã. Chúng ta hãy xem xét một
số thuật ngữ chính được sử dụng để mô tả mật mã và mật mã. Trước khi
một tin nhắn được đưa vào dạng mã hóa, nó được gọi là tin nhắn
văn bản thuần túy và được biểu thị bằng chữ P khi mô tả các chức năng mã hóa.
Người gửi tin nhắn sử dụng thuật toán mật mã để mã hóa tin nhắn văn bản
thuần túy và tạo ra tin nhắn văn bản mã hóa , được biểu thị
bằng chữ cái C. Tin nhắn này được truyền bằng một số phương tiện vật
lý hoặc điện tử đến người nhận. Khi đó người nhận
Machine Translated by Google

sử dụng thuật toán xác định trước để giải mã thông điệp văn bản mã hóa và truy

xuất phiên bản văn bản gốc.

Khóa mật mã Tất cả các thuật

toán mã hóa đều dựa vào khóa để duy trì tính bảo mật của chúng.

Trong hầu hết các trường hợp, khóa không gì khác hơn là một con số. Nó thường là

một số nhị phân rất lớn, nhưng dù sao nó cũng là một con số. Mỗi thuật toán có

một không gian khóa cụ thể. Không gian khóa là phạm vi các giá trị hợp lệ để

sử dụng làm khóa cho một thuật toán cụ thể. Một không gian khóa được xác định bởi

độ dài khóa của nó. Độ dài khóa không gì khác hơn số bit nhị phân (0 và 1) trong

khóa. Không gian khóa là phạm vi giữa khóa có tất cả số 0 và khóa có tất cả số

1.

Hay nói cách khác, không gian khóa là dãy số từ 0 đến 2


,
trong đó n là kích thước bit của khóa. Vì vậy, khóa 128 bit có thể
_

128
có giá trị từ 0 đến 2 là một 38 (khoảng 3,40282367 × 10 , Một

con số rất lớn!). Việc bảo vệ tính bảo mật của các khóa bí mật là hết sức quan

trọng. Trên thực tế, tất cả sự bảo mật mà bạn có được từ mật mã đều dựa vào khả

năng giữ các khóa được sử dụng ở chế độ riêng tư.


Machine Translated by Google

Nguyên lý Kerchoff

Tất cả mật mã đều dựa vào thuật toán. Thuật toán là một tập hợp các
quy tắc, thường là toán học, quy định cách thức diễn ra quá trình mã
hóa và giải mã. Hầu hết các nhà mật mã học đều tuân theo nguyên tắc
Kerchoff, một khái niệm giúp các thuật toán được biết đến và công
khai, cho phép mọi người kiểm tra và kiểm tra chúng.
Cụ thể, nguyên tắc Kerchoff (còn được gọi là giả định của Kerchoff)
là một hệ thống mật mã phải được bảo mật ngay cả khi mọi thứ về hệ
thống, ngoại trừ khóa, đều là kiến thức công khai. Nguyên tắc này
có thể tóm tắt là “Kẻ thù biết hệ thống”.

Một số lượng lớn các nhà mật mã tuân thủ nguyên tắc này, nhưng không
phải tất cả đều đồng ý. Trên thực tế, một số người tin rằng có thể
duy trì bảo mật tổng thể tốt hơn bằng cách giữ cả thuật toán và
khóa ở chế độ riêng tư. Những người theo Kerchoff phản pháo lại rằng
cách tiếp cận ngược lại bao gồm thực tiễn đáng ngờ về “bảo mật thông
qua sự mù mờ” và tin rằng việc tiếp xúc với công chúng sẽ tạo ra nhiều
hoạt động hơn và dễ dàng bộc lộ nhiều điểm yếu hơn, dẫn đến việc từ
bỏ các thuật toán không đủ mạnh và nhanh chóng áp dụng các thuật toán phù hợp.
những cái đó.

Như bạn sẽ học trong chương này, các loại thuật toán khác nhau yêu cầu
các loại khóa khác nhau. Trong hệ thống mật mã khóa riêng (hoặc khóa bí
mật), tất cả người tham gia đều sử dụng một khóa chung duy nhất. Trong hệ
thống mật mã khóa công khai, mỗi người tham gia có một cặp khóa riêng.
Khóa mật mã đôi khi được gọi là biến mật mã.

Nghệ thuật tạo và thực hiện các mã và mật mã bí mật được gọi là mật
mã. Hoạt động này diễn ra song song với nghệ thuật giải mã - nghiên
cứu các phương pháp để đánh bại các mật mã và mật mã.
Cùng với nhau, mật mã và phân tích mật mã thường được gọi là mật mã học.
Việc triển khai cụ thể một mã hoặc mật mã trong phần cứng và phần
mềm được gọi là hệ thống mật mã.
Machine Translated by Google

Mật mã

Mật mã là các thuật toán được sử dụng để thực hiện các


hoạt động mã hóa và giải mã. Bộ mật mã là tập hợp các mật mã và độ
dài khóa được hệ thống hỗ trợ. Mật mã hiện đại được chia thành
hai loại chính, mô tả phương thức hoạt động của chúng:

Mật mã khối hoạt động trên các “khối” hoặc khối của tin nhắn
và áp dụng thuật toán mã hóa cho toàn bộ khối tin nhắn cùng
một lúc. Mật mã chuyển vị là ví dụ về mật mã khối. Thuật toán
đơn giản được sử dụng trong thuật toán phản hồi thử thách
lấy toàn bộ một từ và đảo ngược các chữ cái của nó. Mật
mã chuyển vị cột phức tạp hơn hoạt động trên toàn bộ tin nhắn
(hoặc một đoạn tin nhắn) và mã hóa nó bằng thuật toán chuyển
vị và từ khóa bí mật. Hầu hết các thuật toán mã hóa hiện đại
đều triển khai một số loại mật mã khối.

Mật mã dòng hoạt động trên một ký tự hoặc bit của tin nhắn (hoặc
luồng dữ liệu) tại một thời điểm. Mật mã Caesar là một ví
dụ về mật mã dòng. Bộ đệm một lần cũng là một mật mã dòng vì
thuật toán hoạt động độc lập trên từng chữ cái của thông điệp
văn bản gốc. Mật mã dòng cũng có thể hoạt động như một loại
mật mã khối. Trong các hoạt động như vậy, có một bộ đệm chứa
dữ liệu thời gian thực, sau đó được mã hóa thành một khối và
truyền đến người nhận.

Mật mã hiện đại


Các hệ thống mật mã hiện đại sử dụng các thuật toán phức tạp về
mặt tính toán và các khóa mật mã dài để đáp ứng các mục tiêu
mật mã về tính bảo mật, tính toàn vẹn, xác thực và không chối bỏ.
Các phần sau đây đề cập đến vai trò của khóa mật mã trong thế
giới bảo mật dữ liệu và xem xét ba loại thuật toán thường
được sử dụng ngày nay: thuật toán mã hóa khóa đối xứng,
thuật toán mã hóa khóa bất đối xứng và thuật toán băm.
Machine Translated by Google

Bí mật mật mã Trong những

ngày đầu của mật mã, một trong những nguyên tắc nổi bật là “bảo
mật thông qua sự tối nghĩa”. Một số nhà mật mã học cho rằng cách
tốt nhất để giữ an toàn cho thuật toán mã hóa là giấu các chi
tiết của thuật toán với người ngoài. Các hệ thống mật mã cũ yêu
cầu các bên giao tiếp phải giữ bí mật thuật toán được sử dụng
để mã hóa và giải mã tin nhắn với bên thứ ba. Bất kỳ sự tiết
lộ nào về thuật toán đều có thể dẫn đến sự xâm phạm toàn bộ
hệ thống bởi kẻ thù.

Các hệ thống mật mã hiện đại không dựa vào tính bí mật của
thuật toán của chúng. Trên thực tế, các thuật toán cho hầu hết các hệ
thống mật mã đều có sẵn rộng rãi để công chúng xem xét trong các tài liệu
đi kèm và trên Internet. Việc mở các thuật toán cho công chúng giám sát
thực sự đã cải thiện tính bảo mật của chúng. Cộng đồng bảo mật máy tính
phân tích rộng rãi các thuật toán cho phép những người thực hành phát
hiện và sửa các lỗ hổng bảo mật tiềm ẩn, đồng thời đảm bảo rằng
các thuật toán họ sử dụng để bảo vệ thông tin liên lạc của mình an toàn
nhất có thể.

Thay vì dựa vào các thuật toán bí mật, các hệ thống mật mã hiện đại dựa
vào tính bí mật của một hoặc nhiều khóa mật mã được sử dụng
để cá nhân hóa thuật toán cho người dùng hoặc nhóm người dùng cụ thể.
Hãy nhớ lại phần thảo luận về mật mã chuyển vị rằng một từ khóa được sử
dụng cùng với chuyển vị cột để hướng dẫn các nỗ lực mã hóa và giải mã.
Thuật toán được sử dụng để thực hiện chuyển vị cột đã được nhiều
người biết đến—bạn chỉ cần đọc chi tiết về nó trong cuốn sách này! Tuy
nhiên, chuyển vị cột có thể được sử dụng để liên lạc an toàn giữa
các bên miễn là từ khóa được chọn mà người ngoài không thể đoán được.
Miễn là tính bảo mật của từ khóa này được duy trì, việc bên thứ ba biết
chi tiết về thuật toán không thành vấn đề.
Machine Translated by Google

Mặc dù bản chất công khai của thuật toán không ảnh hưởng
đến tính bảo mật của chuyển vị cột, nhưng phương pháp này có một số
điểm yếu cố hữu khiến nó dễ bị phân tích mật mã. Do đó, nó
là một công nghệ không phù hợp để sử dụng trong truyền thông
an toàn hiện đại.

Độ dài của khóa mật mã là một yếu tố cực kỳ quan trọng trong việc xác
định độ mạnh của hệ thống mật mã và khả năng mã hóa sẽ không bị xâm phạm
thông qua các kỹ thuật phân tích mật mã.

Sức mạnh tính toán tăng lên nhanh chóng cho phép bạn sử dụng
các khóa ngày càng dài trong nỗ lực mã hóa của mình. Tuy nhiên, sức mạnh
tính toán tương tự này cũng nằm trong tay các nhà phân tích mật
mã đang cố gắng đánh bại các thuật toán bạn sử dụng. Do đó, điều cần thiết
là bạn phải vượt qua đối thủ bằng cách sử dụng các khóa đủ dài để đánh bại
các nỗ lực phân tích mật mã hiện nay. Ngoài ra, nếu bạn muốn nâng cao khả
năng dữ liệu của mình vẫn an toàn trước quá trình phân tích mật
mã trong tương lai, bạn phải cố gắng sử dụng các khóa có khả năng vượt
xa mức tăng dự kiến về khả năng phân tích mật mã trong toàn bộ khoảng
thời gian dữ liệu phải được giữ an toàn. Ví dụ, sự ra đời của điện
toán lượng tử có thể biến đổi mật mã, khiến các hệ thống mật mã
hiện tại trở nên không an toàn, như sẽ được thảo luận sau trong
chương này.

Vài thập kỷ trước, khi Tiêu chuẩn mã hóa dữ liệu được tạo ra, khóa
56 bit được coi là đủ để duy trì tính bảo mật của mọi dữ liệu. Tuy
nhiên, hiện nay có sự nhất trí rộng rãi rằng thuật toán DES 56 bit không
còn an toàn nữa do những tiến bộ trong kỹ thuật phân tích mật mã
và sức mạnh siêu máy tính.
Các hệ thống mật mã hiện đại sử dụng ít nhất khóa 128 bit để bảo vệ dữ
liệu khỏi những con mắt tò mò. Hãy nhớ rằng độ dài của khóa liên quan
trực tiếp đến chức năng hoạt động của hệ thống mật mã; để đảm bảo an toàn
Machine Translated by Google

hệ thống mật mã, khóa càng dài thì càng khó phá vỡ hệ
thống mật mã.

Thuật toán khóa đối xứng Thuật

toán khóa đối xứng dựa trên khóa mã hóa “bí mật chung” được
phân phối cho tất cả các thành viên tham gia liên
lạc. Khóa này được tất cả các bên sử dụng để mã hóa và giải mã
tin nhắn, do đó cả người gửi và người nhận đều sở hữu một
bản sao của khóa chung. Người gửi mã hóa bằng khóa bí mật
chung và người nhận giải mã bằng khóa đó. Khi sử dụng các
khóa có kích thước lớn, mã hóa đối xứng rất khó bị phá vỡ. Nó
chủ yếu được sử dụng để thực hiện mã hóa hàng loạt và chỉ
cung cấp dịch vụ bảo mật. Mật mã khóa đối xứng còn có thể được
gọi là mật mã khóa bí mật và mật mã khóa riêng.
Hình 7.7 minh họa quá trình mã hóa và giải mã khóa đối xứng.

HÌNH 7.7 Mật mã khóa đối xứng


Machine Translated by Google

Việc sử dụng thuật ngữ khóa riêng có thể phức tạp vì nó là một phần
của ba thuật ngữ khác nhau có hai ý nghĩa khác nhau. Bản thân thuật ngữ
khóa riêng luôn có nghĩa là khóa riêng từ cặp khóa của mật mã khóa
chung (hay còn gọi là bất đối xứng). Tuy nhiên, cả mật mã khóa riêng
và khóa riêng chia sẻ đều đề cập đến mật mã đối xứng. Ý nghĩa
của từ riêng tư được mở rộng để chỉ hai người chia sẻ một bí mật
mà họ giữ bí mật. (Ý nghĩa thực sự của từ riêng tư là chỉ một người
duy nhất có bí mật được giữ bí mật.) Hãy đảm bảo hiểu rõ những thuật
ngữ khó hiểu này trong quá trình học tập của bạn.

Mật mã khóa đối xứng có một số điểm yếu:

Phân phối khóa là một vấn đề lớn. Các bên phải có một phương pháp
trao đổi khóa bí mật an toàn trước khi thiết lập liên lạc bằng giao
thức khóa đối xứng. Nếu không có kênh điện tử an toàn thì thường
phải sử dụng phương pháp phân phối khóa ngoại tuyến (nghĩa là
trao đổi ngoài băng tần).

Mật mã khóa đối xứng không thực hiện tính chống chối bỏ. Bởi
vì bất kỳ bên giao tiếp nào cũng có thể mã hóa và giải mã tin
nhắn bằng khóa bí mật chung nên không có cách nào để chứng minh nguồn
gốc của một tin nhắn nhất định.

Thuật toán không thể mở rộng. Rất khó để các nhóm lớn giao tiếp bằng
cách sử dụng mật mã khóa đối xứng. Giao tiếp riêng tư
an toàn giữa các cá nhân trong nhóm chỉ có thể đạt được
nếu mỗi tổ hợp người dùng có thể chia sẻ một khóa riêng.

Chìa khóa phải được tạo lại thường xuyên. Mỗi khi một người tham
gia rời khỏi nhóm, tất cả các khóa mà người tham gia đó biết phải
bị loại bỏ.
Machine Translated by Google

Điểm mạnh chính của mật mã khóa đối xứng là tốc độ hoạt động nhanh
chóng. Mã hóa khóa đối xứng rất nhanh, thường nhanh hơn 1.000 đến 10.000
lần so với thuật toán bất đối xứng. Theo bản chất của toán học liên
quan, mật mã khóa đối xứng cũng tự nhiên phù hợp với việc triển khai
phần cứng, tạo cơ hội cho các hoạt động tốc độ cao hơn nữa.

Phần “Mật mã đối xứng” ở phần sau của chương này cung cấp cái nhìn chi
tiết về các thuật toán khóa bí mật chính được sử dụng ngày nay.

Thuật toán khóa bất đối xứng

Thuật toán khóa bất đối xứng, còn được gọi là thuật toán khóa chung,
cung cấp giải pháp cho những điểm yếu của mã hóa khóa đối xứng.
Trong các hệ thống này, mỗi người dùng có hai khóa: khóa chung,
được chia sẻ với tất cả người dùng và khóa riêng, được giữ bí mật
và chỉ chủ sở hữu cặp khóa mới biết. Nhưng có một điểm khác biệt: các
khóa đối diện và khóa liên quan phải được sử dụng song song để mã hóa và
giải mã. Nói cách khác, nếu khóa chung mã hóa một tin nhắn thì chỉ
có khóa riêng tương ứng mới có thể giải mã được nó và ngược lại.

Hình 7.8 cho thấy thuật toán được sử dụng để mã hóa và giải mã
các thông điệp trong hệ thống mật mã khóa công khai. Hãy xem xét ví dụ
này. Nếu Alice muốn gửi tin nhắn cho Bob bằng mật mã khóa công khai, cô ấy
sẽ tạo tin nhắn và sau đó mã hóa nó bằng khóa chung của Bob.
Cách duy nhất có thể để giải mã bản mã này là sử dụng khóa riêng
của Bob và người dùng duy nhất có quyền truy cập vào khóa đó là Bob.
Vì vậy, Alice thậm chí không thể tự mình giải mã tin nhắn sau khi mã
hóa nó. Nếu Bob muốn gửi trả lời cho Alice, anh ấy chỉ cần mã hóa tin
nhắn bằng khóa chung của Alice, sau đó Alice đọc tin nhắn bằng
cách giải mã nó bằng khóa riêng của cô ấy.
Machine Translated by Google

HÌNH 7.8 Mật mã khóa bất đối xứng


Machine Translated by Google

Yêu cầu chính

Trong một lớp học mà một trong những tác giả của cuốn sách này đã dạy gần đây,

sinh viên muốn xem minh họa về vấn đề khả năng mở rộng
liên quan đến các thuật toán mã hóa đối xứng. Sự thật là
hệ thống mật mã đối xứng yêu cầu mỗi cặp tiềm năng
người giao tiếp có khóa riêng chung sẽ làm cho
thuật toán không thể mở rộng. Tổng số khóa cần thiết để
kết nối hoàn toàn n bên bằng cách sử dụng mật mã đối xứng
cho bởi công thức sau:

Bây giờ, điều này nghe có vẻ không tệ lắm (và nó không dành cho những
hệ thống), nhưng hãy xem xét các số liệu sau đây. Rõ ràng,
Dân số càng lớn thì hệ thống mật mã đối xứng càng ít có khả năng
sẽ phù hợp để đáp ứng nhu cầu của nó.

Số lượng Số lượng Số lượng

những người tham gia phím đối xứng phím bất đối xứng
yêu cầu yêu cầu
2 1 4

3 3 6

4 6 số 8

5 10 10

10 45 20

100 4.950 200

1.000 499.500 2.000

10.000 49.995.000 20.000


Machine Translated by Google

Các thuật toán khóa bất đối xứng cũng cung cấp hỗ trợ cho công
nghệ chữ ký số. Về cơ bản, nếu Bob muốn đảm bảo với những người dùng
khác rằng thư có tên anh ấy thực sự là do anh ấy gửi, thì trước tiên Bob
sẽ tạo một bản tóm tắt thư bằng cách sử dụng thuật toán băm (bạn sẽ
tìm hiểu thêm về thuật toán băm trong phần tiếp theo). Bob sau đó mã hóa
thông báo đó bằng khóa riêng của mình. Bất kỳ người dùng nào muốn xác
minh chữ ký chỉ cần giải mã bản tóm tắt tin nhắn bằng khóa chung của Bob
và sau đó xác minh rằng bản tóm tắt tin nhắn được giải mã là chính xác.

Sau đây là danh sách các điểm mạnh chính của mật mã khóa bất đối
xứng:

Việc bổ sung người dùng mới chỉ yêu cầu tạo một cặp khóa công
khai. Cặp khóa tương tự này được sử dụng để liên lạc với tất
cả người dùng hệ thống mật mã bất đối xứng. Điều này làm
cho thuật toán có khả năng mở rộng cực kỳ cao.

Người dùng có thể bị loại bỏ dễ dàng hơn nhiều khỏi các hệ thống
bất đối xứng. Hệ thống mật mã bất đối xứng cung cấp cơ chế thu hồi
khóa cho phép hủy khóa, loại bỏ người dùng khỏi hệ thống
một cách hiệu quả.

Việc tạo lại khóa chỉ được yêu cầu khi khóa riêng của người dùng
bị xâm phạm. Nếu người dùng rời khỏi cộng đồng, quản trị viên hệ
thống chỉ cần vô hiệu hóa khóa của người dùng đó. Không có khóa
nào khác bị xâm phạm và do đó không cần phải tạo lại khóa
đối với bất kỳ người dùng nào khác.

Mã hóa khóa bất đối xứng có thể cung cấp tính toàn vẹn, xác
thực và chống chối bỏ. Nếu người dùng không chia sẻ khóa riêng
của họ với các cá nhân khác, tin nhắn được ký bởi người dùng đó có
thể được hiển thị là chính xác và từ một nguồn cụ thể và không
thể bị từ chối sau đó.

Phân phối khóa là một quá trình đơn giản. Người dùng muốn tham
gia vào hệ thống chỉ cần cung cấp khóa công khai của họ cho bất kỳ
ai mà họ muốn liên lạc. Không có phương pháp nào có thể lấy được
khóa riêng từ khóa chung.
Machine Translated by Google

Không có liên kết truyền thông hiện có cần phải tồn tại. Hai cá nhân có
thể bắt đầu giao tiếp một cách an toàn ngay từ khi bắt đầu phiên giao tiếp
của họ. Mật mã bất đối xứng không yêu cầu mối quan hệ tồn tại từ trước
để cung cấp cơ chế an toàn cho việc trao đổi dữ liệu.

Điểm yếu chính của mật mã khóa công khai là tốc độ hoạt động chậm. Vì lý do
này, nhiều ứng dụng yêu cầu truyền an toàn lượng lớn dữ liệu sử dụng
mật mã khóa công khai để thiết lập kết nối và sau đó trao đổi khóa bí
mật đối xứng. Phần còn lại của phiên sau đó sử dụng mật mã đối xứng.
Bảng 7.1 so sánh các hệ thống mật mã đối xứng và bất đối xứng. Việc xem
xét kỹ bảng này cho thấy rằng điểm yếu của một hệ thống này lại tương ứng
với điểm mạnh của hệ thống kia.

BẢNG 7.1 So sánh hệ thống mật mã đối xứng và bất đối xứng

đối xứng Bất đối xứng

Bộ cặp khóa chung một khóa

Ngoài băng tần Trao đổi trong băng


tần

Không thể mở rộng Có thể mở rộng

Nhanh Chậm

Mã hóa hàng loạt Khối dữ liệu nhỏ, chữ ký số, chứng chỉ số

Tính bảo mật, tính Tính bí mật, tính toàn vẹn, tính xác thực, tính
toàn vẹn không chối bỏ

Thuật toán băm


Trong phần trước, bạn đã biết rằng hệ thống mật mã khóa công khai có thể cung
cấp khả năng chữ ký số khi được sử dụng cùng với bản tóm tắt thông báo.
Thông báo tóm tắt là bản tóm tắt của một
Machine Translated by Google

nội dung của tin nhắn (không giống như tổng kiểm tra tệp) được
tạo bởi thuật toán băm. Việc lấy được một thông báo từ một hàm
băm lý tưởng là cực kỳ khó khăn, và rất khó có khả năng hai thông
báo sẽ tạo ra cùng một giá trị băm. Các trường hợp hàm băm tạo ra
cùng một giá trị cho hai phương pháp khác nhau được gọi là xung
đột và sự tồn tại của xung đột thường dẫn đến việc thuật toán
băm không được dùng nữa.

Mật mã đối xứng


Bạn đã học các khái niệm cơ bản về mật mã khóa đối xứng, mật
mã khóa bất đối xứng và hàm băm.
Trong các phần sau, chúng ta sẽ xem xét sâu hơn một số hệ thống
mật mã đối xứng phổ biến: Tiêu chuẩn mã hóa dữ liệu (DES), Triple
DES (3DES) và Tiêu chuẩn mã hóa nâng cao (AES).

Tiêu chuẩn mã hóa dữ liệu

Chính phủ Hoa Kỳ đã công bố Tiêu chuẩn mã hóa dữ liệu vào năm 1977
như một hệ thống mật mã tiêu chuẩn được đề xuất cho tất cả
các thông tin liên lạc của chính phủ. Do những sai sót trong thuật
toán, các nhà mật mã học và chính phủ liên bang không còn coi DES
là an toàn nữa. Nhiều người tin rằng các cơ quan tình báo thường
xuyên giải mã thông tin được mã hóa DES. DES đã được thay thế
bởi Tiêu chuẩn mã hóa nâng cao vào tháng 12 năm 2001. Điều quan
trọng là phải hiểu DES vì đây là khối xây dựng của Triple DES
(3DES), một thuật toán mã hóa mạnh sẽ được thảo luận trong phần tiếp theo.

DES là mật mã khối 64 bit có năm chế độ hoạt động: chế độ Sách
mã điện tử (ECB), chế độ Chuỗi khối mật mã (CBC), chế độ Phản hồi
mật mã (CFB), chế độ Phản hồi đầu ra (OFB) và chế độ Bộ đếm (CTR). .
Các chế độ này được giải thích trong các phần sau. Tất cả
các chế độ DES hoạt động trên 64 bit văn bản gốc tại một thời
điểm để tạo ra các khối văn bản mã hóa 64 bit. Khóa được DES sử
dụng có độ dài 56 bit.
Machine Translated by Google

DES sử dụng một chuỗi dài các thao tác độc quyền hoặc (XOR) để tạo ra bản mã. Quá
trình này được lặp lại 16 lần cho mỗi thao tác mã hóa/giải mã. Mỗi
lần lặp lại thường được gọi là một vòng mã hóa, giải thích cho tuyên bố rằng
DES thực hiện 16 vòng mã hóa.

Như đã đề cập, DES sử dụng khóa 56 bit để điều khiển quá trình mã hóa và giải
mã. Tuy nhiên, bạn có thể đọc trong một số tài liệu rằng DES sử dụng khóa 64
bit. Đây không phải là sự mâu thuẫn - có một lời giải thích hoàn toàn hợp lý.
Đặc tả DES yêu cầu khóa 64 bit. Tuy nhiên, trong số 64 bit đó, chỉ có 56 bit
thực sự chứa thông tin khóa. 8 bit còn lại được cho là chứa thông tin chẵn
lẻ để đảm bảo 56 bit còn lại là chính xác. Tuy nhiên, trong thực tế,
những bit chẵn lẻ đó hiếm khi được sử dụng.

Bạn nên cam kết con số 56-bit vào bộ nhớ.

Chế độ sổ mã điện tử

Chế độ Sách mã điện tử (ECB) là chế độ đơn giản nhất để hiểu và kém
an toàn nhất. Mỗi lần thuật toán xử lý một khối 64 bit, nó chỉ cần mã hóa khối đó
bằng khóa bí mật đã chọn. Điều này có nghĩa là nếu thuật toán gặp cùng một khối
nhiều lần thì nó sẽ tạo ra cùng một khối được mã hóa. Nếu kẻ thù đang nghe
trộm thông tin liên lạc, họ có thể chỉ cần xây dựng một “cuốn sách mã” gồm
tất cả các giá trị được mã hóa có thể có. Sau khi thu thập đủ số lượng khối,
kỹ thuật phân tích mật mã có thể được sử dụng để giải mã một số khối và phá vỡ sơ
đồ mã hóa.

Lỗ hổng này khiến việc sử dụng chế độ ECB trên tất cả các đường truyền ngoại trừ

các đường truyền ngắn nhất là không thực tế. Trong sử dụng hàng ngày, ECB chỉ

được sử dụng để trao đổi một lượng nhỏ dữ liệu, chẳng hạn như các khóa và
tham số được sử dụng để khởi tạo các chế độ DES khác cũng như các ô trong cơ sở dữ liệu.
Machine Translated by Google

Chế độ xâu chuỗi khối mật mã

Trong chế độ Chuỗi khối mật mã (CBC), mỗi khối văn bản không
được mã hóa được kết hợp với khối văn bản mã hóa ngay trước nó
trước khi được mã hóa bằng thuật toán DES. Quá trình giải mã
chỉ đơn giản là giải mã bản mã và đảo ngược hoạt động mã hóa.

CBC sử dụng vectơ khởi tạo (IV), đây là giá trị được chọn ngẫu
nhiên được sử dụng để bắt đầu quá trình mã hóa. CBC lấy IV và kết
hợp nó với khối tin nhắn đầu tiên bằng cách sử dụng thao
tác được gọi là độc quyền hoặc (XOR), tạo ra một đầu ra duy
nhất mỗi khi thao tác được thực hiện. IV phải được gửi đến người
nhận, có thể bằng cách gắn IV vào mặt trước của bản mã hoàn
chỉnh ở dạng thuần túy hoặc bằng cách bảo vệ nó bằng mã hóa
chế độ ECB sử dụng cùng khóa được sử dụng cho tin nhắn. Một
điều quan trọng cần cân nhắc khi sử dụng chế độ CBC là lỗi
sẽ lan truyền—nếu một khối bị hỏng trong quá trình truyền
thì sẽ không thể giải mã được khối đó và khối tiếp theo.

Chế độ phản hồi mật mã

Chế độ Phản hồi Mật mã (CFB) là phiên bản mật mã trực tuyến của
CBC. Nói cách khác, CFB hoạt động dựa trên dữ liệu được tạo ra
trong thời gian thực. Tuy nhiên, thay vì chia thông điệp thành
các khối, nó sử dụng bộ nhớ đệm có cùng kích thước khối. Khi bộ
đệm đầy, nó sẽ được mã hóa và gửi đến người nhận. Sau đó, hệ
thống đợi bộ đệm tiếp theo được lấp đầy khi dữ liệu mới được
tạo trước khi nó được mã hóa và truyền đi. Ngoài việc thay đổi
từ dữ liệu có sẵn sang dữ liệu thời gian thực, CFB hoạt động theo
cách tương tự như CBC.

Chế độ phản hồi đầu ra

Trong chế độ Phản hồi đầu ra (OFB), DES hoạt động theo kiểu gần
giống như ở chế độ CFB. Tuy nhiên, thay vì XOR phiên bản mã
hóa của khối văn bản mã hóa trước đó, DES XOR văn bản thuần túy có
giá trị gốc. Đối với khối được mã hóa đầu tiên, một
Machine Translated by Google

vectơ khởi tạo được sử dụng để tạo giá trị hạt giống. Các giá trị hạt

giống trong tương lai được lấy bằng cách chạy thuật toán DES trên giá trị
hạt giống trước đó. Ưu điểm chính của chế độ OFB là không có chức năng xâu
chuỗi và lỗi truyền không lan truyền ảnh hưởng đến việc giải mã các khối trong
tương lai.

Chế độ đếm

DES chạy ở chế độ Bộ đếm (CTR) sử dụng mật mã luồng tương tự như mã được sử
dụng trong chế độ CFB và OFB. Tuy nhiên, thay vì tạo giá trị hạt giống cho
mỗi thao tác mã hóa/giải mã từ kết quả của các giá trị hạt giống trước đó,
nó sử dụng một bộ đếm đơn giản tăng dần cho mỗi thao tác. Giống như chế
độ OFB, lỗi không lan truyền ở chế độ CTR.

Chế độ CTR cho phép bạn chia thao tác mã hóa hoặc giải mã thành nhiều
bước độc lập. Điều này làm cho chế độ CTR rất phù hợp để sử dụng trong
tính toán song song.

Ba DES
Như đã đề cập trong các phần trước, khóa 56-bit của Tiêu chuẩn mã hóa dữ liệu
không còn được coi là phù hợp khi đối mặt với các kỹ thuật phân tích mật mã
hiện đại và sức mạnh siêu máy tính. Tuy nhiên, một phiên bản thích ứng của
DES, Triple DES (3DES), sử dụng cùng một thuật toán để tạo ra mã hóa
an toàn hơn.

Có bốn phiên bản của 3DES. Cách đầu tiên chỉ cần mã hóa bản rõ ba lần,
sử dụng ba khóa khác nhau: K1 , K2 và K3 . Nó được gọi là chế độ DES-EEE3 (chữ

E chỉ ra rằng có ba thao tác mã hóa, trong khi chữ số 3 chỉ ra rằng ba
khóa khác nhau được sử dụng). DES-EEE3 có thể được biểu thị bằng ký hiệu
sau, trong đó E(K,P) biểu thị quá trình mã hóa bản rõ P bằng khóa K:
Machine Translated by Google

E(K1,E(K2,E(K3,P)))

DES-EEE3 có độ dài khóa hiệu dụng là 168 bit.

Biến thể thứ hai (DES-EDE3) cũng sử dụng ba khóa nhưng thay thế thao
tác mã hóa thứ hai bằng thao tác giải mã.

E(K1,D(K2,E(K3,P)))

Phiên bản thứ ba của 3DES (DES-EEE2) chỉ sử dụng hai khóa K1 và như sau:

K2 ,

E(K1,E(K2,E(K1,P)))

Biến thể thứ tư của 3DES (DES-EDE2) cũng sử dụng hai khóa nhưng sử dụng
thao tác giải mã ở giữa, được biểu thị bằng hàm D(K,C) , trong đó K
là khóa giải mã và C là bản mã cần giải mã.

E(K1,D(K2,E(K1,P)))

Cả hai biến thể thứ ba và thứ tư đều có độ dài khóa hiệu dụng là 112
bit.

Về mặt kỹ thuật, có biến thể thứ năm của 3DES, DES-EDE1, chỉ sử dụng
một khóa mật mã. Tuy nhiên, nó dẫn đến thuật toán tương tự như DES
tiêu chuẩn, thuật toán này yếu đến mức không thể chấp nhận được đối
với hầu hết các ứng dụng. Nó chỉ được cung cấp cho mục đích
tương thích ngược.

Bốn biến thể của 3DES này đã được phát triển trong nhiều năm vì một số
nhà mật mã học đưa ra giả thuyết rằng một biến thể an toàn hơn các
biến thể khác. Tuy nhiên, niềm tin hiện tại là tất cả các chế độ đều an
toàn như nhau.
Machine Translated by Google

Hãy dành chút thời gian để hiểu các biến thể của 3DES. Hãy ngồi
xuống với một cây bút chì và tờ giấy và đảm bảo rằng bạn hiểu cách
mỗi biến thể sử dụng hai hoặc ba khóa để đạt được mã hóa mạnh hơn.

Chuẩn Mã hóa Cấp cao

Vào tháng 10 năm 2000, Viện Tiêu chuẩn và Công nghệ Quốc
gia công bố rằng mật mã khối Rijndael (phát âm là “rhine-doll”) đã
được chọn để thay thế cho DES. Vào tháng 11 năm 2001, NIST đã
phát hành FIPS 197, bắt buộc sử dụng AES/Rijndael để mã hóa tất cả dữ
liệu nhạy cảm nhưng chưa được phân loại của chính phủ Hoa Kỳ.

Mật mã AES cho phép sử dụng ba điểm mạnh chính: 128 bit, 192 bit và
256 bit. AES chỉ cho phép xử lý các khối 128 bit, nhưng Rijndael đã
vượt quá thông số kỹ thuật này, cho phép các nhà mật mã sử dụng kích
thước khối bằng với độ dài khóa. Số vòng mã hóa phụ thuộc vào độ dài
khóa được chọn:

Khóa 128 bit yêu cầu 10 vòng mã hóa. Khóa 192

bit yêu cầu 12 vòng mã hóa. Khóa 256 bit yêu

cầu 14 vòng mã hóa.

Quản lý khóa đối xứng

Vì khóa mật mã chứa thông tin cần thiết cho tính bảo mật của hệ
thống mật mã nên người dùng và quản trị viên hệ thống mật mã phải
thực hiện các biện pháp đặc biệt để bảo vệ tính bảo mật của tài liệu
khóa. Các biện pháp bảo mật này được gọi chung là các biện pháp
quản lý khóa. Chúng bao gồm các biện pháp bảo vệ xung quanh việc
tạo, phân phối, lưu trữ, phá hủy, phục hồi và ký quỹ bí mật.
Machine Translated by Google

Tạo và phân phối khóa đối xứng Như đã đề cập

trước đó, trao đổi khóa là một trong những vấn đề chính của
thuật toán mã hóa đối xứng. Trao đổi khóa là sự phân phối an
toàn các khóa bí mật cần thiết để vận hành các thuật toán. Ba
phương pháp chính được sử dụng để trao đổi khóa bí mật một cách an
toàn là phân phối ngoại tuyến, mã hóa khóa công khai và thuật toán
trao đổi khóa Diffie–Hellman.

Phân phối ngoại tuyến Phương pháp đơn giản nhất về mặt kỹ
thuật liên quan đến việc trao đổi vật lý các tài liệu chính.
Một bên cung cấp cho bên kia một tờ giấy hoặc một mảnh
phương tiện lưu trữ có chứa khóa bí mật. Trong nhiều thiết
bị mã hóa phần cứng, vật liệu khóa này có dạng một thiết bị
điện tử giống với một khóa thực tế được đưa vào thiết bị mã
hóa. Tuy nhiên, mọi phương thức phân phối khóa ngoại
tuyến đều có những sai sót cố hữu. Nếu tài liệu khóa được
gửi qua thư, nó có thể bị chặn.
Điện thoại có thể bị nghe lén. Giấy tờ chứa chìa khóa có thể vô
tình bị ném vào thùng rác hoặc bị thất lạc.

Mã hóa khóa công khai Nhiều người giao tiếp muốn đạt được
lợi ích về tốc độ của mã hóa khóa bí mật mà không gặp rắc rối
trong việc phân phối khóa. Vì lý do này, nhiều người sử dụng
mã hóa khóa công khai để thiết lập liên kết truyền thông ban đầu.
Khi liên kết được thiết lập thành công và các bên hài lòng
về danh tính của nhau, họ sẽ trao đổi khóa bí mật qua liên kết
khóa công khai an toàn. Sau đó, họ chuyển thông
tin liên lạc từ thuật toán khóa chung sang thuật toán khóa bí
mật và tận hưởng tốc độ xử lý tăng lên. Nhìn chung, mã hóa
khóa bí mật nhanh hơn hàng nghìn lần so với mã hóa khóa chung.

Diffie–Hellman Trong một số trường hợp, cả mã hóa khóa


công khai lẫn phân phối ngoại tuyến đều không đủ. Hai bên có
thể cần liên lạc với nhau, nhưng họ không có phương tiện vật
chất để trao đổi tài liệu quan trọng và không có thông tin công khai.
Machine Translated by Google

cơ sở hạ tầng quan trọng tại chỗ để tạo điều kiện thuận lợi cho việc
trao đổi khóa bí mật. Trong những tình huống như thế này, các thuật
toán trao đổi khóa như thuật toán Diffie–Hellman tỏ ra là những
cơ chế cực kỳ hữu ích.

Giới thiệu về thuật toán Diffie–Hellman

Thuật toán Diffie–Hellman đại diện cho một bước tiến lớn
trong lĩnh vực khoa học mật mã khi nó được phát hành vào năm 1976.
Nó vẫn còn được sử dụng cho đến ngày nay. Các thuật toán hoạt động như sau:

1. Các bên giao tiếp (chúng ta sẽ gọi họ là Richard và


Sue) đồng ý về hai số lớn: p (là số nguyên tố) và g
(là số nguyên) sao cho 1 < g < p.

2. Richard chọn một số nguyên lớn r ngẫu nhiên và thực hiện phép tính
phép tính sau:

R = gr mod p

3. Sue chọn ngẫu nhiên một số nguyên lớn s và thực hiện


phép tính sau:

S = gs mod p

4. Richard gửi R cho Sue và Sue gửi S cho Richard.

5. Sau đó Richard thực hiện phép tính sau:

K = Sr mod p

6. Sue thực hiện phép tính sau:

K = Rs mod p

Tại thời điểm này, Richard và Sue đều có cùng giá trị K và có
thể sử dụng giá trị này để liên lạc với khóa bí mật giữa
hai bên.
Machine Translated by Google

Lưu trữ và hủy khóa đối xứng Một thách thức lớn

khác khi sử dụng mật mã khóa đối xứng là tất cả các khóa được
sử dụng trong hệ thống mật mã phải được giữ an toàn. Điều này bao gồm
các phương pháp hay nhất sau về việc lưu trữ khóa mã hóa:

Không bao giờ lưu trữ khóa mã hóa trên cùng một hệ thống nơi
chứa dữ liệu được mã hóa. Điều này chỉ làm cho kẻ tấn công
dễ dàng hơn!

Đối với các khóa nhạy cảm, hãy cân nhắc việc cung cấp cho hai cá nhân
khác nhau một nửa khóa. Sau đó, họ phải cộng tác để tạo lại toàn bộ
khóa. Điều này được gọi là nguyên tắc phân chia kiến thức (được
thảo luận ở phần trước của chương này).

Khi người dùng biết về khóa bí mật rời khỏi tổ chức hoặc không còn được
phép truy cập vào tài liệu được bảo vệ bằng khóa đó thì khóa phải được
thay đổi và tất cả tài liệu được mã hóa phải được mã hóa lại bằng
khóa mới. Khó khăn trong việc hủy khóa để xóa người dùng khỏi hệ thống
mật mã đối xứng là một trong những lý do chính khiến các tổ chức chuyển
sang thuật toán bất đối xứng.

Mật mã ký quỹ và phục hồi chính

là một công cụ mạnh mẽ. Giống như hầu hết các công cụ, nó có thể được sử
dụng cho một số mục đích có lợi nhưng cũng có thể được sử dụng
với mục đích xấu. Để kiểm soát sự phát triển bùng nổ của công nghệ
mật mã, các chính phủ trên thế giới đã đưa ra các ý tưởng để triển
khai các hệ thống ký quỹ quan trọng. Các hệ thống này cho phép chính
phủ, trong những trường hợp hạn chế như lệnh của tòa án, lấy được khóa
mật mã được sử dụng cho một giao tiếp cụ thể từ một cơ sở lưu
trữ trung tâm.

Có hai cách tiếp cận chính đối với ký quỹ chính đã được đề xuất
trong thập kỷ qua.
Machine Translated by Google

Hệ thống mật mã công bằng Trong phương pháp ký quỹ này, các khóa bí
mật được sử dụng trong giao tiếp được chia thành hai hoặc nhiều
phần, mỗi phần được trao cho một bên thứ ba độc lập. Bản thân mỗi
phần này đều vô dụng nhưng có thể được kết hợp lại để lấy khóa bí
mật. Khi chính phủ có được thẩm quyền pháp lý để truy cập vào
một khóa cụ thể, chính phủ sẽ cung cấp bằng chứng về lệnh của tòa án
cho từng bên thứ ba và sau đó tập hợp lại khóa bí mật đó.

Tiêu chuẩn mã hóa ký quỹ Cách tiếp cận ký quỹ này cung cấp cho
chính phủ một phương tiện công nghệ để giải mã văn bản mật mã. Tiêu
chuẩn này là cơ sở đằng sau thuật toán Skipjack.

Rất khó có khả năng các cơ quan quản lý của chính phủ sẽ vượt qua được
các rào cản pháp lý và quyền riêng tư cần thiết để triển khai ký quỹ chính
trên cơ sở rộng rãi. Công nghệ này chắc chắn đã có sẵn, nhưng công
chúng có thể sẽ không bao giờ chấp nhận sự can thiệp tiềm tàng của
chính phủ mà nó tạo điều kiện.

Mật mã bất đối xứng


Hãy nhớ lại phần trước của chương này rằng hệ thống mật mã khóa công
khai dựa vào các cặp khóa được gán cho mỗi người dùng hệ thống mật mã.
Mỗi người dùng duy trì cả khóa chung và khóa riêng. Đúng như tên gọi,
người dùng hệ thống mật mã khóa công khai cung cấp miễn phí khóa chung của
họ cho bất kỳ ai mà họ muốn liên lạc.
Việc sở hữu khóa công khai của bên thứ ba không gây ra bất kỳ điểm yếu
nào cho hệ thống mật mã. Mặt khác, khóa riêng được dành riêng cho cá
nhân sở hữu khóa đó sử dụng. Nó không bao giờ được chia sẻ với bất kỳ
người dùng hệ thống mật mã nào khác.

Giao tiếp thông thường giữa những người sử dụng hệ thống mật mã khóa
công khai khá đơn giản và được minh họa trong Hình 7.8. Lưu ý rằng quá
trình này không yêu cầu chia sẻ khóa riêng. Người gửi mã hóa tin nhắn văn
bản gốc (P) bằng khóa chung của người nhận để tạo tin nhắn văn bản mã hóa
(C). Khi người nhận mở
Machine Translated by Google

tin nhắn văn bản mã hóa, họ giải mã nó bằng khóa riêng của mình để tạo
lại tin nhắn văn bản thuần túy ban đầu.

Khi người gửi mã hóa tin nhắn bằng khóa chung của người nhận, không
người dùng nào (kể cả người gửi) có thể giải mã tin nhắn đó nếu
không biết khóa riêng của người nhận (nửa sau của cặp khóa công khai được
sử dụng để tạo tin nhắn). Đây là điểm hay của mật mã khóa công khai—khóa
công khai có thể được chia sẻ tự do bằng cách sử dụng thông tin liên lạc
không bảo mật và sau đó được sử dụng để tạo các kênh liên lạc an toàn
giữa những người dùng trước đây chưa từng biết đến nhau.

Bạn cũng đã học ở chương trước rằng mật mã khóa công khai
đòi hỏi mức độ phức tạp tính toán cao hơn.
Khóa được sử dụng trong hệ thống khóa công khai phải dài hơn khóa
được sử dụng trong hệ thống khóa riêng để tạo ra hệ thống mật mã có độ mạnh
tương đương.

RSA
Hệ thống mật mã khóa công khai nổi tiếng nhất được đặt theo tên
của người tạo ra nó. Năm 1977, Ronald Rivest, Adi Shamir và Leonard Adleman
đã đề xuất thuật toán khóa công khai RSA và thuật toán này vẫn là tiêu
chuẩn toàn cầu cho đến ngày nay. Họ đã được cấp bằng sáng chế cho
thuật toán của mình và thành lập một liên doanh thương mại có tên là RSA
Security để phát triển các triển khai chính thống cho công nghệ bảo
mật của họ. Ngày nay, thuật toán RSA đã được phát hành rộng rãi và được
sử dụng rộng rãi để liên lạc an toàn.

Thuật toán RSA phụ thuộc vào độ khó tính toán vốn có của việc phân
tích các số nguyên tố lớn. Mỗi người dùng hệ thống mật mã tạo ra
một cặp khóa chung và khóa riêng bằng thuật toán. Các chi tiết cụ thể về
việc tạo khóa nằm ngoài phạm vi của bài kiểm tra, nhưng bạn nên nhớ rằng
nó dựa trên độ phức tạp của việc phân tích các số nguyên tố lớn.
Machine Translated by Google

Tầm quan trọng của độ dài khóa

Độ dài của khóa mật mã có lẽ là tham số bảo mật quan trọng nhất
có thể được đặt theo quyết định của quản trị viên bảo mật. Điều quan
trọng là phải hiểu khả năng của thuật toán mã hóa của bạn và chọn
độ dài khóa cung cấp mức độ bảo vệ thích hợp. Phán quyết này có
thể được đưa ra bằng cách cân nhắc độ khó của việc vượt qua độ
dài khóa nhất định (được đo bằng lượng thời gian xử lý cần thiết để
vượt qua hệ thống mật mã) so với tầm quan trọng của dữ liệu.

Nói chung, dữ liệu của bạn càng quan trọng thì khóa bạn sử dụng để bảo
vệ dữ liệu đó càng mạnh. Tính kịp thời của dữ liệu cũng là một yếu tố
quan trọng cần cân nhắc. Bạn phải tính đến sự tăng trưởng nhanh
chóng của sức mạnh tính toán—Định luật Moore gợi ý rằng sức mạnh tính
toán tăng gấp đôi khoảng hai năm một lần. Nếu các máy tính hiện tại
phải mất một năm thời gian xử lý để phá mã của bạn, thì sẽ chỉ mất ba
tháng nếu nỗ lực được thực hiện bằng công nghệ hiện đại trong khoảng
bốn năm nữa.
Nếu bạn cho rằng dữ liệu của mình vẫn nhạy cảm tại thời điểm đó, bạn
nên chọn khóa mật mã dài hơn nhiều để vẫn được bảo mật tốt trong
tương lai.

Ngoài ra, vì những kẻ tấn công hiện có thể tận dụng tài nguyên điện
toán đám mây nên chúng có thể tấn công dữ liệu được mã hóa hiệu quả hơn.
Đám mây cho phép kẻ tấn công thuê sức mạnh tính toán có thể mở rộng,
bao gồm các bộ xử lý đồ họa (GPU) mạnh mẽ theo giờ và cung cấp mức
giảm giá đáng kể khi sử dụng công suất vượt quá trong giờ cao điểm.
Điều này mang lại khả năng tính toán mạnh mẽ trong tầm tay của nhiều kẻ
tấn công.

Điểm mạnh của các độ dài khóa khác nhau cũng khác nhau tùy theo hệ thống
mật mã bạn đang sử dụng. Ví dụ: khóa RSA 1.024 bit cung cấp mức độ bảo
mật tương đương với khóa ECC 160 bit.
Machine Translated by Google

Vì vậy, tại sao không luôn luôn sử dụng một khóa cực dài? Các khóa
dài hơn chắc chắn sẽ an toàn hơn nhưng chúng cũng đòi
hỏi nhiều chi phí tính toán hơn. Đó là sự đánh đổi cổ điển giữa
nguồn lực và các hạn chế về bảo mật.

Đường cong elip

Năm 1985, hai nhà toán học, Neal Koblitz từ Đại học Washington và
Victor Miller từ IBM, đã độc lập đề xuất ứng dụng lý thuyết mật mã
đường cong elip (ECC) để phát triển các hệ thống mật mã an toàn.

Các khái niệm toán học đằng sau mật mã đường cong elip khá phức
tạp và vượt xa phạm vi của cuốn sách này.
Tuy nhiên, nhìn chung bạn nên làm quen với thuật toán đường cong elip
và các ứng dụng tiềm năng của nó khi chuẩn bị cho kỳ thi Bảo mật+.

Bất kỳ đường cong elip nào cũng có thể được xác định bằng phương trình sau:

y2 = x3 + ax + b

Trong phương trình này, x, y, a và b đều là số thực. Mỗi đường cong


elip có một nhóm đường cong elip tương ứng được tạo thành từ các
điểm trên đường cong elip cùng với điểm O, nằm ở vô cực. Hai điểm
trong cùng một nhóm đường cong elip (P và Q) có thể được cộng lại với
nhau bằng thuật toán cộng đường cong elip. Hoạt động này được thể hiện
dưới dạng

P + Q

Vấn đề này có thể được mở rộng để liên quan đến phép nhân bằng cách giả
sử rằng Q là bội số của P, nghĩa là như sau:
Machine Translated by Google

Q = xP

Các nhà khoa học máy tính và toán học tin rằng rất khó tìm được x, ngay cả
khi P và Q đã được biết đến. Bài toán khó này, được gọi là bài toán
logarit rời rạc của đường cong elip, tạo thành cơ sở của mật mã đường
cong elip. Người ta tin rằng vấn đề này khó giải quyết hơn cả vấn đề
phân tích thừa số nguyên tố mà hệ thống mật mã RSA dựa trên
và vấn đề logarit rời rạc tiêu chuẩn được sử dụng bởi Diffie–Hellman.

Hàm băm
Ở phần sau của chương này, bạn sẽ tìm hiểu cách hệ thống mật mã triển
khai chữ ký điện tử để cung cấp bằng chứng cho thấy thông báo có nguồn gốc
từ một người dùng cụ thể của hệ thống mật mã và để đảm bảo rằng thông báo
không bị sửa đổi trong khi truyền giữa hai bên. Trước khi bạn có thể
hiểu hết khái niệm đó, trước tiên chúng ta phải giải thích khái niệm hàm
băm. Chúng ta sẽ khám phá những điều cơ bản về hàm băm và xem xét một
số hàm băm phổ biến được sử dụng trong các thuật toán chữ ký số hiện

đại.

Hàm băm có mục đích rất đơn giản—chúng nhận một tin nhắn có thể dài và tạo
ra một giá trị đầu ra duy nhất bắt nguồn từ nội dung của tin nhắn. Giá trị
này thường được gọi là bản tóm tắt thông báo. Người gửi tin nhắn có thể
tạo bản tóm tắt tin nhắn và truyền đến người nhận cùng với tin nhắn đầy đủ
vì hai lý do.

Đầu tiên, người nhận có thể sử dụng hàm băm tương tự để tính toán lại
thông báo tóm tắt từ thông báo đầy đủ. Sau đó, họ có thể so sánh thông
báo được tính toán với thông báo được truyền đi để đảm bảo rằng thông báo
được gửi bởi người khởi tạo giống với thông báo mà người nhận nhận
được. Nếu thông báo tóm tắt thông báo không khớp, điều đó có nghĩa
là thông báo đã được sửa đổi bằng cách nào đó trong khi truyền đi. Điều
quan trọng cần lưu ý là các thông báo phải giống hệt nhau để các bản tóm
tắt khớp với nhau. Nếu các tin nhắn có sự khác biệt dù chỉ một chút về
khoảng cách, dấu câu hoặc nội dung thì giá trị tóm tắt của tin nhắn sẽ là
Machine Translated by Google

hoàn toàn khác. Không thể biết mức độ khác biệt giữa hai tin
nhắn bằng cách so sánh các bản tóm tắt. Ngay cả một sự khác biệt nhỏ
cũng sẽ tạo ra các giá trị tóm tắt hoàn toàn khác nhau.

Thứ hai, bản tóm tắt thông điệp có thể được sử dụng để triển khai
thuật toán chữ ký số. Khái niệm này được đề cập trong “Chữ ký số” ở
phần sau của chương này.

Thuật ngữ tóm tắt thông báo được sử dụng thay thế cho nhau với nhiều
từ đồng nghĩa khác nhau, bao gồm hàm băm, giá trị băm, tổng hàm băm,
CRC, dấu vân tay, tổng kiểm tra và ID kỹ thuật số.

Có năm yêu cầu cơ bản đối với hàm băm mật mã:

Họ chấp nhận đầu vào có độ dài bất kỳ.

Chúng tạo ra đầu ra có độ dài cố định, bất kể độ dài của đầu


vào.

Giá trị băm tương đối dễ tính toán.

Hàm băm là một chiều (có nghĩa là cực kỳ khó xác định đầu vào
khi được cung cấp đầu ra).

Hàm băm không có xung đột (có nghĩa là cực kỳ khó tìm thấy hai thông
báo tạo ra cùng một giá trị băm).

SHA
Thuật toán băm an toàn (SHA) và các thuật toán kế thừa của nó, SHA-1,
SHA-2 và SHA-3, là các hàm băm tiêu chuẩn của chính phủ được Viện Tiêu
chuẩn và Công nghệ Quốc gia (NIST) quảng bá và được chỉ định trong một
ấn phẩm chính thức của chính phủ— Tiêu chuẩn băm an toàn (SHS), còn
được gọi là Tiêu chuẩn xử lý thông tin liên bang (FIPS) 180.
Machine Translated by Google

SHA-1 nhận đầu vào có độ dài gần như bất kỳ (trong thực tế, giới hạn trên
của thuật toán là khoảng 2.097.152 terabyte) và tạo ra bản tóm tắt thông báo
160 bit. Thuật toán SHA-1 xử lý tin nhắn theo khối 512 bit. Do đó,
nếu độ dài tin nhắn không phải là bội số của 512 thì thuật toán SHA sẽ
đệm tin nhắn bằng dữ liệu bổ sung cho đến khi độ dài đạt đến bội số cao nhất
tiếp theo của 512.

Các cuộc tấn công phân tích mật mã đã chứng minh rằng có những điểm yếu
trong thuật toán SHA-1. Điều này dẫn đến việc tạo ra SHA-2, có bốn biến
thể:

SHA-256 tạo ra bản tóm tắt thông báo 256 bit sử dụng kích thước
khối 512 bit.

SHA-224 sử dụng phiên bản rút gọn của hàm băm SHA-256 để tạo ra
bản tóm tắt thông báo 224 bit bằng kích thước khối 512 bit.

SHA-512 tạo ra bản tóm tắt thông báo 512 bit sử dụng kích thước
khối 1.024 bit.

SHA-384 sử dụng phiên bản rút gọn của hàm băm SHA-512 để tạo ra
bản tóm tắt 384 bit sử dụng kích thước khối 1.024 bit.

Cộng đồng mật mã thường coi thuật toán SHA-2 là an toàn, nhưng về
mặt lý thuyết, chúng có điểm yếu tương tự như thuật toán SHA-1. Năm
2015, chính phủ liên bang đã công bố phát hành thuật toán Keccak làm tiêu
chuẩn SHA-3. Bộ SHA-3 được phát triển để đóng vai trò thay thế ngẫu
nhiên cho các hàm băm SHA-2, cung cấp các biến thể và độ dài băm
tương tự bằng thuật toán an toàn hơn.

MD5
Năm 1991, Ron Rivest phát hành phiên bản tiếp theo của thuật toán phân
loại tin nhắn mà ông gọi là MD5. Nó cũng xử lý các khối tin nhắn 512-bit,
nhưng nó sử dụng bốn vòng tính toán riêng biệt để tạo ra một bản tóm
tắt có cùng độ dài như các thuật toán MD2 và MD4 trước đó (128 bit).
Machine Translated by Google

MD5 triển khai các tính năng bảo mật giúp giảm đáng kể tốc
độ tạo thông báo tóm tắt. Thật không may, các cuộc tấn công phân
tích mật mã gần đây đã chứng minh rằng giao thức MD5 có thể bị xung
đột, ngăn cản việc sử dụng nó để đảm bảo tính toàn vẹn của tin nhắn.

Chữ ký số
Khi bạn đã chọn thuật toán băm phù hợp bằng mật mã, bạn có thể sử dụng
thuật toán đó để triển khai hệ thống chữ ký số . Cơ sở hạ tầng
chữ ký số có hai mục tiêu riêng biệt:

Tin nhắn được ký điện tử đảm bảo với người nhận rằng tin nhắn
thực sự đến từ người gửi được xác nhận. Chúng
thực thi việc chống chối bỏ (nghĩa là chúng ngăn cản người
gửi sau này tuyên bố rằng thư là giả mạo).

Tin nhắn được ký điện tử đảm bảo với người nhận rằng tin nhắn
không bị thay đổi trong quá trình truyền giữa người gửi
và người nhận. Điều này bảo vệ chống lại cả sửa đổi có chủ đích
(bên thứ ba thay đổi ý nghĩa của tin nhắn) và sửa đổi
không chủ ý (do lỗi trong quá trình liên lạc, chẳng
hạn như nhiễu điện).

Các thuật toán chữ ký số dựa trên sự kết hợp của hai khái niệm chính
đã được đề cập trong chương này—mật mã khóa công khai và hàm băm.

Nếu Alice muốn ký điện tử vào tin nhắn cô ấy đang gửi cho Bob, cô
ấy sẽ thực hiện các hành động sau:

1. Alice tạo ra một bản tóm tắt thông điệp của bản rõ gốc
tin nhắn bằng cách sử dụng một trong các thuật toán băm mật
mã, chẳng hạn như SHA3-512.

2. Alice sau đó chỉ mã hóa bản tóm tắt tin nhắn bằng khóa riêng
của mình. Bản tóm tắt tin nhắn được mã hóa này là chữ ký số.
Machine Translated by Google

3. Alice thêm bản tóm tắt thông điệp đã ký vào bản rõ


tin nhắn.

4. Alice truyền tin nhắn được thêm vào cho Bob.

Khi Bob nhận được tin nhắn được ký điện tử, anh ta đảo ngược quy trình như
sau:

1. Bob giải mã chữ ký số bằng khóa chung của Alice.

2. Bob sử dụng hàm băm tương tự để tạo bản tóm tắt thông báo
của tin nhắn văn bản gốc đầy đủ nhận được từ Alice.

3. Bob sau đó so sánh bản tóm tắt tin nhắn được giải mã mà anh ấy nhận được
từ Alice với bản tóm tắt tin nhắn mà anh ấy đã tự mình tính toán. Nếu hai
thông báo trùng khớp, anh ta có thể yên tâm rằng tin nhắn anh nhận
được là do Alice gửi. Nếu chúng không khớp thì có nghĩa là tin nhắn
không được gửi bởi Alice hoặc tin nhắn đã bị sửa đổi trong khi truyền.

Chữ ký số được sử dụng không chỉ cho tin nhắn.


Các nhà cung cấp phần mềm thường sử dụng công nghệ chữ ký số để xác
thực các bản phân phối mã mà bạn tải xuống từ Internet, chẳng hạn như
các chương trình phụ trợ và bản vá phần mềm.

Lưu ý rằng bản thân quy trình chữ ký số không cung cấp bất kỳ quyền riêng tư
nào. Nó chỉ đảm bảo rằng các mục tiêu mật mã về tính toàn vẹn, xác thực
và không chối bỏ được đáp ứng. Tuy nhiên, nếu Alice muốn đảm bảo tính riêng tư
cho tin nhắn của mình gửi cho Bob, cô ấy có thể thêm một bước vào quy trình tạo
tin nhắn. Sau khi thêm bản tóm tắt tin nhắn đã ký vào tin nhắn văn bản gốc,
Alice có thể mã hóa toàn bộ tin nhắn bằng khóa chung của Bob. Khi Bob nhận được
tin nhắn, anh ấy sẽ giải mã nó bằng khóa riêng của mình trước khi làm theo
các bước vừa nêu.
Machine Translated by Google

HMAC
Thuật toán Mã xác thực thư băm (HMAC) triển khai chữ ký số một phần—nó đảm
bảo tính toàn vẹn của thư trong quá trình truyền nhưng không cung cấp khả năng
chống chối bỏ.

Tôi nên sử dụng khóa nào?

Nếu bạn là người mới làm quen với mật mã khóa công khai, việc chọn đúng
khóa cho nhiều ứng dụng khác nhau có thể khá khó hiểu. Tất cả quá trình mã
hóa, giải mã, ký tin nhắn và xác minh chữ ký đều sử dụng cùng một thuật
toán với các khóa đầu vào khác nhau. Dưới đây là một số quy tắc đơn giản
giúp bạn ghi nhớ những khái niệm này khi chuẩn bị cho kỳ thi:

Nếu bạn muốn mã hóa tin nhắn, hãy sử dụng khóa chung của người nhận.

Nếu bạn muốn giải mã tin nhắn được gửi cho mình, hãy sử dụng khóa
riêng của bạn.

Nếu bạn muốn ký điện tử vào tin nhắn bạn đang gửi cho người khác,
hãy sử dụng khóa riêng của bạn.

Nếu bạn muốn xác minh chữ ký trên tin nhắn do người khác gửi, hãy
sử dụng khóa chung của người gửi.

Bốn quy tắc này là nguyên tắc cốt lõi của mật mã khóa công khai
và chữ ký số. Nếu bạn hiểu từng điều trong số đó, bạn đã có một khởi đầu
tuyệt vời!

HMAC có thể được kết hợp với bất kỳ thuật toán tạo thông báo tiêu
chuẩn nào, chẳng hạn như SHA-3, bằng cách sử dụng khóa bí mật chung.
Do đó, chỉ các bên giao tiếp biết khóa mới có thể tạo hoặc xác minh chữ ký
số. Nếu người nhận giải mã được bản tóm tắt tin nhắn nhưng không thể so sánh
thành công nó với tin nhắn
Machine Translated by Google

thông báo được tạo từ tin nhắn văn bản thuần túy, điều đó có nghĩa là tin nhắn

đã bị thay đổi trong quá trình truyền tải.

Vì HMAC dựa vào khóa bí mật chung nên nó không cung cấp bất kỳ chức năng chống
chối bỏ nào (như đã đề cập trước đó). Tuy nhiên, nó hoạt động theo cách
hiệu quả hơn tiêu chuẩn chữ ký số được mô tả trong phần sau và có thể
phù hợp với các ứng dụng trong đó mật mã khóa đối xứng phù hợp. Nói tóm lại,
nó thể hiện một nửa điểm giữa việc sử dụng thuật toán phân loại tin nhắn
không được mã hóa và thuật toán chữ ký số tốn kém về mặt tính toán dựa
trên mật mã khóa công khai.

Tiêu chuẩn chữ ký số

Viện Tiêu chuẩn và Công nghệ Quốc gia chỉ định các thuật toán chữ ký số
được chính phủ liên bang chấp nhận sử dụng trong Tiêu chuẩn Xử lý Thông
tin Liên bang (FIPS) 186-4, còn được gọi là Tiêu chuẩn Chữ ký Số (DSS).
Tài liệu này quy định rằng tất cả các thuật toán chữ ký số được liên
bang phê duyệt phải sử dụng hàm băm SHA-3.

DSS cũng chỉ định các thuật toán mã hóa có thể được sử dụng để hỗ trợ
cơ sở hạ tầng chữ ký số. Có ba thuật toán mã hóa tiêu chuẩn hiện được phê
duyệt:

Thuật toán chữ ký số (DSA) như được chỉ định trong FIPS 186-4

Thuật toán Rivest, Shamir, Adleman (RSA) như được chỉ định trong
ANSI X9.31

Đường cong Elliptic DSA (ECDSA) như được chỉ định trong ANSI X9.62

cơ sở hạ tầng nơi công cộng

Điểm mạnh chính của mã hóa khóa công khai là khả năng tạo điều kiện thuận lợi
cho việc liên lạc giữa các bên trước đây chưa biết nhau.
Điều này được thực hiện nhờ cơ sở hạ tầng khóa công khai (PKI)
Machine Translated by Google

thứ bậc của các mối quan hệ tin cậy. Những ủy thác này cho phép
kết hợp mật mã bất đối xứng với mật mã đối xứng cùng với chứng chỉ
băm và chứng chỉ kỹ thuật số, mang lại cho chúng tôi mật mã lai.

Trong các phần sau, bạn sẽ tìm hiểu các thành phần cơ bản của cơ
sở hạ tầng khóa công khai và các khái niệm mật mã giúp thực hiện
liên lạc an toàn toàn cầu. Bạn sẽ tìm hiểu thành phần
của chứng chỉ số, vai trò của tổ chức phát hành chứng chỉ và quy
trình được sử dụng để tạo và hủy chứng chỉ.

Chứng chỉ

Chứng chỉ kỹ thuật số cung cấp cho các bên giao tiếp sự đảm
bảo rằng những người mà họ đang giao tiếp thực sự là người mà
họ tuyên bố. Chứng chỉ số về cơ bản là bản sao được xác nhận của
khóa chung của một cá nhân. Khi người dùng xác minh rằng
chứng chỉ đã được ký bởi cơ quan cấp chứng chỉ đáng tin cậy (CA),
họ biết rằng khóa chung là hợp pháp.

Chứng chỉ kỹ thuật số chứa thông tin nhận dạng cụ thể và cấu
trúc của chúng được quản lý bởi tiêu chuẩn quốc tế—X.509.
Chứng chỉ phù hợp với X.509 chứa các thuộc tính chứng chỉ sau:

Phiên bản X.509 phù hợp với chứng chỉ Số sê-ri (từ

người tạo chứng chỉ)

Mã định danh thuật toán chữ ký (chỉ định kỹ thuật được cơ quan
cấp chứng chỉ sử dụng để ký điện tử vào nội dung của chứng
chỉ)

Tên nhà phát hành (nhận dạng cơ quan cấp chứng chỉ đã cấp
chứng chỉ)

Khoảng thời gian hiệu lực (chỉ định ngày và giờ—ngày và giờ
bắt đầu cũng như ngày và giờ hết hạn—trong thời gian đó
chứng chỉ có hiệu lực)
Machine Translated by Google

Tên chung của chủ đề (CN) mô tả rõ ràng chủ sở hữu chứng chỉ
(ví dụ: “certmike.com”)

Chứng chỉ có thể tùy chọn chứa Tên thay thế chủ đề (SAN) cho phép bạn
chỉ định các mục bổ sung (địa chỉ IP, tên miền, v.v.) để được bảo vệ
bởi chứng chỉ duy nhất.

Khóa chung của chủ thể (phần nội dung của chứng chỉ—khóa chung
thực tế mà chủ sở hữu chứng chỉ đã sử dụng để thiết lập
liên lạc an toàn)

Phiên bản hiện tại của X.509 (phiên bản 3) hỗ trợ phần mở rộng chứng
chỉ—các biến tùy chỉnh chứa dữ liệu được cơ quan cấp chứng chỉ chèn vào
chứng chỉ để hỗ trợ theo dõi chứng chỉ hoặc các ứng dụng khác nhau.

Chứng chỉ có thể được cấp cho nhiều mục đích khác nhau. Chúng bao gồm
việc cung cấp sự đảm bảo cho các khóa công khai của

Máy tính/máy móc

Người dùng cá nhân

Địa chỉ email

Nhà phát triển (chứng chỉ ký mã)

Chủ đề của chứng chỉ có thể bao gồm ký tự đại diện trong tên chứng chỉ, cho
biết rằng chứng chỉ đó cũng phù hợp với tên miền phụ.
Ký tự đại diện được chỉ định bằng ký tự dấu hoa thị. Ví dụ: chứng chỉ ký
tự đại diện được cấp cho *. certmike.com sẽ hợp lệ cho tất cả các tên miền

sau:

certmike.com

www.certmike.com

thư.certmike.com

an toàn.certmike.com
Machine Translated by Google

Chứng chỉ ký tự đại diện chỉ phù hợp với một cấp tên miền phụ.
Vì vậy, tệp *. certmike.com chứng chỉ sẽ không hợp lệ cho
www.cissp.certmike.com tên miền phụ.

Cơ quan cấp chứng chỉ

Cơ quan cấp chứng chỉ (CA) là chất keo gắn kết cơ sở hạ tầng khóa công khai
với nhau. Các tổ chức trung lập này cung cấp dịch vụ công chứng cho
chứng chỉ số. Để có được chứng chỉ kỹ thuật số từ một CA có uy tín, bạn
phải chứng minh danh tính của mình với sự hài lòng của CA. Danh sách sau đây
bao gồm một số CA chính cung cấp chứng chỉ kỹ thuật số được chấp nhận rộng rãi:

Symantec

IdenTrust

Dịch vụ web của Amazon

Dấu hiệu toàn cầu

Comodo

Chứng chỉ

Cố lên bố

Chứng chỉ số

Secom

Ủy thác

Actalis

Sóng tin cậy


Machine Translated by Google

Không có gì ngăn cản bất kỳ tổ chức nào chỉ cần thiết lập cửa hàng với
tư cách là CA. Tuy nhiên, các chứng chỉ do CA cấp chỉ có giá trị khi
có sự tin cậy đặt vào CA đã cấp chúng. Đây là mục quan trọng cần
cân nhắc khi nhận chứng chỉ số từ bên thứ ba. Nếu bạn không nhận
ra và tin cậy tên của CA đã cấp chứng chỉ thì bạn không nên đặt
bất kỳ sự tin cậy nào vào chứng chỉ đó. PKI dựa trên hệ thống phân cấp
các mối quan hệ tin cậy. Nếu bạn định cấu hình trình duyệt
của mình để tin cậy một CA, nó sẽ tự động tin cậy tất cả các chứng
chỉ kỹ thuật số do CA đó cấp. Các nhà phát triển trình duyệt cấu
hình sẵn các trình duyệt để tin cậy các CA chính nhằm tránh đặt gánh
nặng này lên người dùng.

Cơ quan đăng ký (RA) hỗ trợ CA gánh nặng xác minh danh tính
của người dùng trước khi cấp chứng chỉ kỹ thuật số. Họ không trực
tiếp tự cấp chứng chỉ nhưng đóng vai trò quan trọng trong quy
trình chứng nhận, cho phép CA xác thực danh tính người dùng từ xa.

Cơ quan cấp chứng chỉ phải bảo vệ cẩn thận khóa riêng của họ để duy
trì mối quan hệ tin cậy của họ. Để làm điều này, họ thường sử dụng
CA ngoại tuyến để bảo vệ chứng chỉ gốc, chứng chỉ cấp cao nhất cho
toàn bộ PKI của họ. CA ngoại tuyến này bị ngắt kết nối khỏi mạng và
tắt nguồn cho đến khi cần. CA ngoại tuyến sử dụng chứng chỉ gốc để
tạo các CA trung gian cấp dưới đóng vai trò là CA trực tuyến dùng để
cấp chứng chỉ một cách thường xuyên.

Trong mô hình tin cậy CA, việc sử dụng một loạt CA trung gian
được gọi là chuỗi chứng chỉ. Để xác thực chứng chỉ, trước tiên,
trình duyệt sẽ xác minh danh tính của (các) CA trung gian, sau đó
theo dõi đường dẫn tin cậy trở lại CA gốc đã biết, xác minh danh
tính của từng liên kết trong chuỗi tin cậy.

Cơ quan cấp chứng chỉ không cần phải là nhà cung cấp dịch
vụ bên thứ ba. Nhiều tổ chức vận hành CA nội bộ cung cấp chứng chỉ
tự ký để sử dụng trong tổ chức. Các chứng chỉ này sẽ không
được trình duyệt của người dùng bên ngoài tin cậy nhưng hệ thống
nội bộ có thể được định cấu hình để tin cậy CA nội bộ, tiết kiệm chi
phí lấy chứng chỉ từ CA bên thứ ba.
Machine Translated by Google

Tạo và hủy chứng chỉ

Các khái niệm kỹ thuật đằng sau cơ sở hạ tầng khóa công khai tương
đối đơn giản. Trong các phần sau, chúng tôi sẽ đề cập đến các quy trình
được cơ quan cấp chứng chỉ sử dụng để tạo, xác thực và thu hồi chứng
chỉ ứng dụng khách.

Ghi danh

Khi muốn có được chứng chỉ số, trước tiên bạn phải chứng minh danh
tính của mình với CA theo cách nào đó; quá trình này được gọi
là ghi danh. Như đã đề cập ở phần trước, điều này đôi khi liên
quan đến việc phải xuất hiện trước đại diện của cơ quan chứng
nhận với các giấy tờ nhận dạng phù hợp. Một số cơ quan cấp
chứng chỉ cung cấp các phương tiện xác minh khác, bao gồm việc sử
dụng dữ liệu báo cáo tín dụng và xác minh danh tính của các nhà
lãnh đạo cộng đồng đáng tin cậy.

Sau khi đã làm hài lòng cơ quan cấp chứng chỉ về danh tính
của mình, bạn sẽ cung cấp cho họ khóa công khai của mình dưới
dạng Yêu cầu ký chứng chỉ (CSR). Tiếp theo, CA tạo chứng chỉ kỹ
thuật số X.509 chứa thông tin nhận dạng của bạn và bản sao khóa chung
của bạn. CA sau đó ký điện tử vào chứng chỉ bằng khóa riêng của CA
và cung cấp cho bạn bản sao chứng chỉ kỹ thuật số đã ký của bạn.
Sau đó, bạn có thể phân phối chứng chỉ này một cách an toàn cho bất
kỳ ai mà bạn muốn liên lạc một cách an toàn.

Cơ quan cấp chứng chỉ cấp các loại chứng chỉ khác nhau tùy thuộc vào
mức độ xác minh danh tính mà họ thực hiện. Chứng chỉ đơn giản
và phổ biến nhất là chứng chỉ Xác thực miền (DV), trong đó CA chỉ
xác minh rằng chủ thể chứng chỉ có quyền kiểm soát tên miền. Chứng
chỉ Xác thực Mở rộng (EV) cung cấp mức độ đảm bảo cao hơn và CA
thực hiện các bước để xác minh rằng chủ sở hữu chứng chỉ là
doanh nghiệp hợp pháp trước khi cấp chứng chỉ.

xác minh
Machine Translated by Google

Khi bạn nhận được chứng chỉ số từ người mà bạn muốn liên lạc, bạn xác
minh chứng chỉ bằng cách kiểm tra chữ ký số của CA bằng khóa chung
của CA. Tiếp theo, bạn phải kiểm tra và đảm bảo rằng chứng chỉ
không bị thu hồi bằng danh sách thu hồi chứng chỉ (CRL) hoặc
Giao thức trạng thái chứng chỉ trực tuyến (OCSP). Tại thời điểm
này, bạn có thể cho rằng khóa chung được liệt kê trong chứng chỉ là
xác thực, miễn là nó đáp ứng các yêu cầu sau:

Chữ ký số của CA là xác thực.

Bạn tin tưởng CA.

Chứng chỉ không được liệt kê trên CRL.

Chứng chỉ thực sự chứa dữ liệu bạn đang tin cậy.

Điểm cuối cùng là một mục tinh tế nhưng cực kỳ quan trọng. Trước
khi bạn tin cậy một phần thông tin nhận dạng về ai đó, hãy đảm bảo
rằng thông tin đó thực sự có trong chứng chỉ. Nếu chứng chỉ chứa
địa chỉ email (billjones@foo.com) chứ không phải tên của cá
nhân, bạn chỉ có thể chắc chắn rằng khóa chung có trong đó được
liên kết với địa chỉ email đó. CA không đưa ra bất kỳ xác nhận nào
về danh tính thực sự của billjones@foo.com Tài khoản email.
Tuy nhiên, nếu chứng chỉ có tên Bill Jones cùng với địa chỉ và
số điện thoại thì CA cũng sẽ xác nhận thông tin đó.

Các thuật toán xác minh chứng chỉ kỹ thuật số được tích hợp sẵn trong
một số ứng dụng duyệt web và ứng dụng email phổ biến, do đó, bạn
thường không cần phải tham gia vào các chi tiết cụ thể của
quy trình. Tuy nhiên, điều quan trọng là phải hiểu rõ về các chi
tiết kỹ thuật diễn ra ở hậu trường để đưa ra các đánh giá
bảo mật phù hợp cho tổ chức của bạn. Đó cũng là lý do khi mua
chứng chỉ, bạn chọn một CA được nhiều người tin cậy. Nếu một CA
không được đưa vào hoặc sau đó được lấy ra khỏi danh sách các CA
được trình duyệt chính tin cậy, điều đó sẽ hạn chế đáng kể tính
hữu ích của chứng chỉ của bạn.
Machine Translated by Google

Năm 2017, một lỗi bảo mật nghiêm trọng đã xảy ra trong ngành
chứng chỉ số. Symantec, thông qua hàng loạt công ty liên kết,
đã cấp một số chứng chỉ số không đáp ứng các tiêu chuẩn bảo mật
của ngành. Đáp lại, Google thông báo rằng trình duyệt Chrome sẽ không
còn tin cậy các chứng chỉ của Symantec nữa. Do đó, Symantec đã phải
bán doanh nghiệp phát hành chứng chỉ của họ cho DigiCert, công
ty đã đồng ý xác thực hợp lệ các chứng chỉ trước khi phát hành.
Điều này chứng tỏ tầm quan trọng của việc xác nhận hợp lệ các yêu
cầu chứng chỉ. Một loạt sai sót nhỏ trong quy trình có thể làm suy
giảm hoạt động kinh doanh của CA!

Phương pháp ghim chứng chỉ hướng dẫn trình duyệt đính kèm chứng
chỉ cho một chủ đề trong một khoảng thời gian dài. Khi các trang web sử
dụng tính năng ghim chứng chỉ, trình duyệt sẽ liên kết trang web đó với
khóa chung của chúng. Điều này cho phép người dùng hoặc quản trị
viên nhận thấy và can thiệp nếu chứng chỉ thay đổi bất ngờ.

Thu hồi

Đôi khi, cơ quan cấp chứng chỉ cần thu hồi chứng chỉ.
Điều này có thể xảy ra vì một trong những lý do sau:

Chứng chỉ đã bị xâm phạm (ví dụ: chủ sở hữu chứng chỉ đã vô
tình để lộ khóa riêng).

Chứng chỉ đã được cấp sai (ví dụ: CA cấp nhầm chứng chỉ mà
không có xác minh thích hợp).

Các chi tiết của chứng chỉ đã thay đổi (ví dụ: tên đối tượng đã
thay đổi).

Hiệp hội bảo mật đã thay đổi (ví dụ: đối tượng không còn được tổ
chức tài trợ chứng chỉ tuyển dụng nữa).
Machine Translated by Google

Thời gian gia hạn yêu cầu thu hồi là thời gian phản hồi tối đa
trong đó CA sẽ thực hiện mọi yêu cầu thu hồi.
Điều này được xác định trong tuyên bố thực hành chứng chỉ (CPS).
CPS nêu rõ các phương pháp mà CA sử dụng khi cấp hoặc quản lý chứng
chỉ.

Bạn có thể sử dụng ba kỹ thuật để xác minh tính xác thực của
chứng chỉ và xác định chứng chỉ bị thu hồi:

Danh sách thu hồi chứng chỉ Danh sách thu hồi chứng chỉ (CRL)

được duy trì bởi các cơ quan cấp chứng chỉ khác nhau và chứa số sê-
ri chứng chỉ đã được CA cấp và đã bị thu hồi cùng với ngày và giờ

việc thu hồi có hiệu lực. Bất lợi lớn nhất đối với danh sách thu hồi
chứng chỉ là chúng phải được tải xuống và tham chiếu chéo
định kỳ, tạo ra một khoảng thời gian chờ giữa thời điểm chứng chỉ
bị thu hồi và thời điểm người dùng cuối được thông báo về việc
thu hồi.

Giao thức trạng thái chứng chỉ trực tuyến (OCSP) Giao thức này loại
bỏ độ trễ vốn có trong việc sử dụng danh sách thu hồi chứng
chỉ bằng cách cung cấp phương tiện để xác minh chứng chỉ theo
thời gian thực. Khi máy khách nhận được chứng chỉ, nó sẽ gửi
yêu cầu OCSP đến máy chủ OCSP của CA. Sau đó, máy chủ sẽ
phản hồi với trạng thái hợp lệ, không hợp lệ hoặc không xác
định. Trình duyệt sử dụng thông tin này để xác định xem
chứng chỉ có hợp lệ hay không.

Ghim chứng chỉ Vấn đề chính với OCSP là nó đặt gánh nặng đáng kể
lên các máy chủ OCSP do cơ quan cấp chứng chỉ vận hành. Các máy
chủ này phải xử lý yêu cầu từ mọi khách truy cập vào trang web
hoặc người dùng chứng chỉ kỹ thuật số khác, xác minh rằng chứng
chỉ hợp lệ và không bị thu hồi.
Machine Translated by Google

Ghim chứng chỉ là một phần mở rộng của Giao thức trạng thái chứng
chỉ trực tuyến nhằm giảm bớt một số gánh nặng mà giao thức gốc đặt
lên cơ quan cấp chứng chỉ. Khi người dùng truy cập một trang web
và bắt đầu kết nối an toàn, trang web sẽ gửi chứng chỉ của nó cho
người dùng cuối, người thường sẽ chịu trách nhiệm liên hệ với máy
chủ OCSP để xác minh tính hợp lệ của chứng chỉ. Trong quá trình
ghim chứng chỉ, máy chủ web sẽ liên hệ với chính máy chủ OCSP và
nhận được phản hồi có chữ ký và dấu thời gian từ máy chủ OCSP,
sau đó máy chủ này sẽ đính kèm hoặc ghim vào chứng chỉ kỹ thuật
số. Sau đó, khi người dùng yêu cầu kết nối web an toàn, máy chủ web
sẽ gửi chứng chỉ kèm theo phản hồi OCSP được ghim cho người dùng.
Sau đó, trình duyệt của người dùng sẽ xác minh rằng chứng chỉ là
xác thực và cũng xác nhận rằng phản hồi OCSP được ghim là chính hãng

và mới nhất. Vì CA đã ký phản hồi OCSP nên người dùng biết rằng đó
là từ cơ quan cấp chứng chỉ và dấu thời gian cung cấp cho người
dùng sự đảm bảo rằng CA gần đây đã xác thực chứng chỉ. Từ
đó, việc liên lạc có thể tiếp tục như bình thường.

Tiết kiệm thời gian đến khi người dùng tiếp theo truy cập trang web.
Máy chủ web có thể chỉ cần sử dụng lại chứng chỉ được ghim
mà không cần liên hệ lại với máy chủ OCSP. Miễn là dấu thời
gian đủ gần đây, người dùng sẽ chấp nhận chứng chỉ được ghim mà
không cần liên hệ lại với máy chủ OCSP của CA. Thông thường, các
chứng chỉ được ghim có thời hạn hiệu lực là 24 giờ là điều bình
thường. Điều đó giúp giảm gánh nặng cho máy chủ OCSP từ việc xử lý
một yêu cầu cho mỗi người dùng trong suốt một ngày, có thể là hàng
triệu yêu cầu, đến việc xử lý một yêu cầu cho mỗi chứng chỉ mỗi
ngày. Đó là một mức giảm đáng kể.

Định dạng chứng chỉ

Chứng chỉ kỹ thuật số được lưu trữ trong các tệp và các tệp đó có
nhiều định dạng khác nhau, cả nhị phân và dựa trên văn bản:
Machine Translated by Google

Định dạng nhị phân phổ biến nhất là định dạng Quy tắc mã hóa phân
biệt (DER). Chứng chỉ DER thường được lưu trữ trong các tệp
có phần mở rộng .DER, .CRT hoặc .CER.

Định dạng chứng chỉ Thư nâng cao quyền riêng tư (PEM) là
phiên bản văn bản ASCII của định dạng DER. Chứng chỉ PEM
thường được lưu trữ trong các tệp có phần mở rộng .PEM hoặc .CRT.

Bạn có thể đã nhận ra thực tế là phần mở rộng tệp CRT


được sử dụng cho cả tệp DER nhị phân và tệp PEM văn bản.
Điều đó rất khó hiểu! Bạn nên nhớ rằng bạn không thể biết
chứng chỉ CRT là nhị phân hay văn bản nếu không thực sự xem
nội dung của tệp.

Định dạng Trao đổi thông tin cá nhân (PFX) thường được các hệ
thống Windows sử dụng. Chứng chỉ PFX có thể được lưu trữ ở
dạng nhị phân, sử dụng phần mở rộng tệp .PFX hoặc .P12.

Hệ thống Windows cũng sử dụng chứng chỉ P7B, được lưu trữ ở định
dạng văn bản ASCII.

Bảng 7.2 cung cấp bản tóm tắt các định dạng chứng chỉ.

BẢNG 7.2 Các định dạng chứng chỉ số

Tiêu chuẩn Định dạng (Các) phần mở rộng tệp

Quy tắc mã hóa phân biệt (DER) Nhị phân .DER, .CRT, .CER Thư nâng

cao quyền riêng tư (PEM) Chữ .PEM, .CRT

Trao đổi thông tin cá nhân nhị phân .PFX, .P12 (PFX)

P7B Chữ .P7B

Quản lý khóa bất đối xứng


Machine Translated by Google

Khi làm việc trong cơ sở hạ tầng khóa công khai, điều quan trọng là bạn phải
tuân thủ một số yêu cầu thực hành tốt nhất để duy trì tính bảo mật cho thông
tin liên lạc của mình.

Đầu tiên, hãy chọn hệ thống mã hóa của bạn một cách khôn ngoan. Như bạn đã
biết trước đó, “bảo mật thông qua sự tối tăm” không phải là một cách tiếp cận
thích hợp. Chọn một hệ thống mã hóa có thuật toán thuộc phạm vi công cộng đã
được các chuyên gia trong ngành xem xét kỹ lưỡng. Hãy cảnh giác với các hệ
thống sử dụng cách tiếp cận “hộp đen” và duy trì rằng tính bí mật của thuật
toán của chúng là rất quan trọng đối với tính toàn vẹn của hệ thống mật mã.

Bạn cũng phải chọn chìa khóa của mình một cách thích hợp. Sử dụng độ dài khóa
cân bằng các yêu cầu bảo mật của bạn với các cân nhắc về hiệu suất. Ngoài ra,
hãy đảm bảo rằng khóa của bạn thực sự ngẫu nhiên hoặc theo thuật ngữ mật
mã, nó có đủ entropy. Bất kỳ khả năng dự đoán nào trong khóa
đều làm tăng khả năng kẻ tấn công có thể phá vỡ mã hóa của bạn và làm
suy giảm tính bảo mật của hệ thống mật mã của bạn. Bạn cũng nên hiểu
những hạn chế của thuật toán mã hóa của mình và tránh sử dụng bất kỳ
khóa yếu nào đã biết.

Khi sử dụng mã hóa khóa chung, hãy giữ bí mật khóa riêng của bạn! Trong mọi
trường hợp, không cho phép người khác truy cập vào khóa riêng của bạn. Hãy
nhớ rằng, việc cho phép ai đó truy cập dù chỉ một lần sẽ làm tổn hại vĩnh
viễn tất cả các thông tin liên lạc diễn ra (trong quá khứ, hiện tại hoặc
tương lai) bằng cách sử dụng khóa đó và cho phép bên thứ ba mạo danh bạn thành
công.

Hãy rút lại chìa khóa khi chúng đã sử dụng được một thời gian hữu ích.
Nhiều tổ chức có các yêu cầu bắt buộc về luân chuyển khóa để bảo vệ
khỏi sự xâm phạm khóa không bị phát hiện. Nếu bạn không có chính sách chính
thức mà bạn phải tuân theo, hãy chọn khoảng thời gian thích hợp dựa
trên tần suất bạn sử dụng khóa của mình. Việc tiếp tục sử dụng lại khóa sẽ
tạo ra nhiều tài liệu được mã hóa hơn có thể được sử dụng trong các cuộc
tấn công mật mã. Bạn có thể muốn thay đổi cặp khóa của mình vài tháng một
lần, nếu thực tế.
Machine Translated by Google

Sao lưu chìa khóa của bạn! Nếu bạn mất tệp chứa khóa riêng của mình do hỏng
dữ liệu, thảm họa hoặc các trường hợp khác, chắc chắn bạn sẽ muốn có sẵn một
bản sao lưu. Bạn có thể muốn tạo bản sao lưu của riêng mình hoặc sử dụng dịch
vụ ký quỹ chính để duy trì bản sao lưu cho bạn. Trong cả hai trường hợp, hãy
đảm bảo rằng bản sao lưu được xử lý một cách an toàn.

Các mô-đun bảo mật phần cứng (HSM) cũng cung cấp một cách hiệu quả để quản lý
khóa mã hóa. Các thiết bị phần cứng này lưu trữ và quản lý khóa mã hóa
theo cách an toàn giúp con người không cần phải làm việc trực tiếp với khóa.
HSM có phạm vi và độ phức tạp từ các thiết bị rất đơn giản, chẳng hạn như
YubiKey, lưu trữ khóa được mã hóa trên ổ USB để sử dụng cá nhân, cho
đến các sản phẩm doanh nghiệp phức tạp hơn nằm trong trung tâm dữ liệu.

Các nhà cung cấp đám mây, chẳng hạn như Amazon và Microsoft, cũng cung cấp
HSM dựa trên đám mây để cung cấp khả năng quản lý khóa an toàn cho các dịch vụ IaaS.

Tấn công mật mã


Nếu thời gian dạy chúng ta điều gì thì đó là con người thường xuyên làm những
việc mà người khác cho là không thể. Mỗi khi một mã hoặc quy trình mới được
phát minh được cho là không thể phá vỡ được thì sẽ có người nghĩ ra phương
pháp phá vỡ nó.

Hãy xem xét một số kỹ thuật phá mã phổ biến.

Lực lượng vũ phu

Phương pháp này chỉ đơn giản là thử mọi chìa khóa có thể. Nó được
đảm bảo sẽ hoạt động, nhưng có thể sẽ mất nhiều thời gian đến mức không thể sử
dụng được. Ví dụ: để phá mật mã Caesar, chỉ có 26 khóa khả thi mà bạn có thể thử
trong thời gian rất ngắn. Nhưng ngay cả DES, 56 lần thử khác nhau. có khóa khá

72.057.594.037.927.936 khóa DES có thể. Nói cách yếu sẽ lấy 2 Đó là


khác, nếu bạn thử 1 triệu phím mỗi giây, bạn sẽ chỉ mất hơn 46.190.765 năm
một chút để thử tất cả.
Machine Translated by Google

Phân tích tần số Phân tích

tần số liên quan đến việc xem xét các khối của tin nhắn được mã hóa để xác định xem có

tồn tại bất kỳ mẫu chung nào không. Ban đầu, nhà phân tích không cố gắng giải mã mà xem

xét các mẫu trong thông báo. Trong tiếng Anh, các chữ cái e và t và các từ như the, and,

that, it, và is rất phổ biến. Các chữ cái đơn lẻ đứng một mình trong câu thường được giới

hạn ở a và I.

Một nhà giải mã quyết tâm sẽ tìm kiếm các kiểu mẫu này và theo thời gian, có thể suy

ra phương pháp được sử dụng để mã hóa dữ liệu. Quá trình này đôi khi có thể đơn giản

hoặc có thể tốn rất nhiều công sức. Phương pháp này chỉ hoạt động trên các mật mã lịch

sử mà chúng ta đã thảo luận ở đầu chương này. Nó không hoạt động trên các thuật toán

hiện đại.

Văn bản thuần túy đã biết

Cuộc tấn công này dựa vào việc kẻ tấn công có các cặp văn bản đơn giản đã biết cùng với

văn bản mã hóa tương ứng. Điều này cung cấp cho kẻ tấn công một nơi để bắt đầu cố gắng

lấy khóa. Với các mật mã hiện đại, vẫn phải mất hàng tỷ kết hợp như vậy mới có cơ hội

giải được mật mã. Tuy nhiên, phương pháp này đã thành công trong việc giải mã Bí

ẩn Hải quân Đức. Những người phá mã ở Bletchley Park ở Anh nhận ra rằng tất cả các thông

điệp của Hải quân Đức đều kết thúc bằng Heil Hitler. Họ đã sử dụng cuộc tấn công

bằng văn bản đơn giản đã biết này để bẻ khóa.

Văn bản thuần túy được chọn

Trong cuộc tấn công này, kẻ tấn công có được các bản mã tương ứng với một tập hợp các văn

bản đơn giản mà chúng chọn. Điều này cho phép kẻ tấn công cố gắng lấy khóa được sử dụng và

do đó giải mã các tin nhắn khác được mã hóa bằng khóa đó. Điều này có thể khó khăn,

nhưng không phải là không thể. Các phương pháp nâng cao như phân tích mật

mã vi sai là các loại tấn công bằng văn bản thuần túy được chọn.

Tấn công khóa liên quan


Machine Translated by Google

Điều này giống như một cuộc tấn công bằng văn bản thuần túy được chọn, ngoại trừ kẻ tấn

công có thể lấy được văn bản mật mã được mã hóa bằng hai khóa khác nhau. Đây thực sự

là một cuộc tấn công hữu ích nếu bạn có thể thu được văn bản thuần túy và văn

bản mã hóa phù hợp.

Tấn công sinh

nhật Đây là một cuộc tấn công vào các hàm băm mật mã, dựa trên một
thứ gọi là định lý sinh nhật. Ý tưởng cơ bản là thế này:

Bạn cần có bao nhiêu người trong một phòng để có khả năng cao là
hai người sẽ có cùng ngày sinh (tháng và ngày chứ không
phải năm)?

Rõ ràng, nếu bạn đặt 367 người vào một phòng thì ít nhất hai người
trong số họ phải có cùng ngày sinh, vì một năm chỉ có 365 ngày,
cộng thêm một ngày nữa vào năm nhuận. Điều nghịch lý không phải là
bạn cần bao nhiêu người để đảm bảo một trận đấu – mà là bạn cần bao
nhiêu người để có xác suất cao.

Ngay cả khi có 23 người trong phòng, bạn vẫn có 50% khả năng hai người
có cùng ngày sinh. Xác suất để người đầu tiên không có cùng ngày
sinh với bất kỳ người nào trước đó là 100%, vì không có người nào
trước đó trong tập hợp. Điều đó có thể được viết là 365/365.

Người thứ hai chỉ có một người đứng trước và khả năng người thứ hai
có ngày sinh khác với người thứ nhất là 364/365. Người thứ ba
có thể có cùng ngày sinh nhật với hai người đi trước nên khả
năng có ngày sinh của một trong hai người trước là 363/365. Vì mỗi giá
trị này độc lập nên chúng ta có thể tính xác suất như sau:

(342 là xác suất người thứ 23 có cùng ngày sinh với người đứng trước.)
Khi chúng ta chuyển đổi những giá trị này thành giá trị thập phân,
kết quả sẽ là (cắt ngắn ở dấu thập phân thứ ba):
Machine Translated by Google

49 phần trăm này là xác suất để 23 người không có ngày sinh chung; do đó,
có 51% (tốt hơn tỷ lệ cược chẵn) rằng hai trong số 23 người sẽ có ngày
sinh chung.

Phép toán tính ra khoảng 1,7 √ n thì sẽ xảy ra va chạm. Hãy nhớ rằng, xung
đột là khi hai đầu vào tạo ra cùng một đầu ra. Vì vậy, đối với hàm băm
128
MD5, bạn có thể nghĩ rằng bạn cần 2 lần xảy ra +1 đầu vào khác nhau cho
xung đột—và đối với một xung đột được đảm bảo thì bạn sẽ làm như vậy.
Đó là một con số cực kỳ lớn:
3,4028236692093846346337460743177e+38.

Nhưng nghịch lý Sinh nhật cho chúng ta biết rằng để có 51% khả năng
xảy ra xung đột với hàm băm, bạn chỉ cần 1,7 √ n (n là 2
128
) đầu vào. Con số đó vẫn còn rất lớn:
31.359.464.925.306.237.747.2. Nhưng nó nhỏ hơn nhiều so với cách tiếp cận
bạo lực là thử mọi đầu vào có thể .

Hạ cấp tấn công

Một cuộc tấn công hạ cấp đôi khi được sử dụng để chống lại
các liên lạc an toàn như TLS nhằm cố gắng khiến người dùng hoặc hệ
thống vô tình chuyển sang chế độ mật mã kém an toàn hơn.
Ý tưởng là lừa người dùng chuyển sang một phiên bản giao thức kém an toàn
hơn, một phiên bản có thể dễ bị phá vỡ hơn.

Các cuộc tấn công bảng Rainbow, Hashing và

Salting Rainbow cố gắng đảo ngược giá trị mật khẩu đã băm bằng cách tính
toán trước các giá trị băm của các mật khẩu phổ biến. Kẻ tấn công lấy danh
sách các mật khẩu phổ biến và chạy chúng thông qua hàm băm để tạo
bảng Rainbow. Sau đó, họ tìm kiếm trong danh sách các giá trị băm, tìm
kiếm kết quả khớp với bảng Rainbow. Cách tiếp cận phổ biến nhất để ngăn chặn
các cuộc tấn công này là tạo muối, thêm giá trị được tạo ngẫu nhiên
cho mỗi mật khẩu trước khi băm.
Machine Translated by Google

Kéo dài khóa được sử dụng để tạo khóa mã hóa từ mật khẩu một cách mạnh mẽ.
Các thuật toán kéo dài khóa, chẳng hạn như Hàm dẫn xuất khóa dựa trên
mật khẩu v2 (PBKDF2), sử dụng hàng nghìn lần lặp lại việc tạo muối và
băm để tạo ra các khóa mã hóa có khả năng phục hồi trước sự tấn công.

Khai thác khóa yếu Cũng

có những tình huống trong đó ai đó đang sử dụng thuật toán mã


hóa tốt (như AES) nhưng lại triển khai thuật toán đó theo cách yếu—
ví dụ: sử dụng cách tạo khóa yếu. Một ví dụ kinh điển là giao thức Bảo
mật tương đương không dây (WEP). Giao thức này sử dụng thuật toán mã
hóa RC4 triển khai không đúng cách và có lỗ hổng bảo mật nghiêm trọng.

Khai thác lỗi của con người

Lỗi của con người là một trong những nguyên nhân chính gây
ra lỗ hổng mã hóa. Nếu một email được gửi bằng sơ đồ mã hóa, người
khác có thể gửi email đó ở dạng rõ ràng (không được mã hóa).
Nếu nhà giải mã nắm được cả hai thông điệp thì quá trình giải mã các
thông điệp trong tương lai sẽ được đơn giản hóa đáng kể. Khóa mã có
thể rơi vào tay kẻ xấu, cung cấp thông tin chi tiết về nội dung của
khóa. Nhiều hệ thống đã bị hỏng do những tai nạn kiểu này.

Một ví dụ kinh điển liên quan đến việc truyền một thông điệp nhạy cảm liên
quan đến quân sự bằng hệ thống mã hóa. Hầu hết các tin nhắn đều có phần mở
đầu cho người nhận biết tin nhắn đó dành cho ai, ai đã gửi nó, có bao
nhiêu ký tự trong tin nhắn, ngày giờ gửi và các thông tin thích hợp khác.
Trong trường hợp này, lời mở đầu được gửi ở dạng văn bản rõ ràng
và thông tin này cũng được mã hóa và đưa vào tin nhắn. Kết quả là
các nhà giải mã đã có được cái nhìn sâu sắc quan trọng về nội dung tin
nhắn. Họ được cung cấp khoảng 50 ký tự được lặp lại trong tin nhắn
bằng mã. Lỗi này khiến một hệ thống tương đối an toàn bị xâm phạm.
Machine Translated by Google

Một lỗi khác là sử dụng các thuật toán yếu hoặc không được dùng nữa. Theo
thời gian, một số thuật toán không còn được coi là phù hợp nữa. Điều này có
thể là do một số lỗ hổng được tìm thấy trong thuật toán. Nó cũng có
thể là do sức mạnh tính toán ngày càng tăng. Ví dụ, năm 1976 DES
được coi là rất mạnh. Nhưng những tiến bộ về sức mạnh máy tính đã khiến cho
độ dài khóa của nó trở nên quá ngắn. Mặc dù thuật toán này khá ổn nhưng
kích thước khóa khiến DES trở thành một lựa chọn kém cho mật mã hiện đại
và thuật toán đó đã không còn được dùng nữa.

Các vấn đề mới nổi trong mật mã


Khi chuẩn bị cho kỳ thi Bảo mật+, bạn sẽ cần nắm bắt được một số vấn đề mới
nổi trong mật mã và các ứng dụng mật mã. Hãy xem lại một số chủ
đề có trong mục tiêu của kỳ thi Bảo mật+.

Tor và Dark Web

Tor, trước đây gọi là The Onion Router, cung cấp cơ chế định tuyến ẩn
danh lưu lượng truy cập trên Internet bằng cách sử dụng mã hóa
và một tập hợp các nút chuyển tiếp. Nó dựa trên một công nghệ được gọi
là bí mật chuyển tiếp hoàn hảo, trong đó các lớp mã hóa ngăn các nút
trong chuỗi chuyển tiếp đọc bất cứ thứ gì ngoài thông tin cụ thể mà chúng
cần để chấp nhận và chuyển tiếp lưu lượng.
Bằng cách sử dụng tính bảo mật hoàn hảo về phía trước kết hợp với một bộ
gồm ba nút chuyển tiếp trở lên, Tor cho phép duyệt web ẩn danh trên
Internet tiêu chuẩn cũng như lưu trữ các trang web ẩn danh hoàn
toàn trên Dark Web.

Chuỗi khối

Blockchain , theo cách mô tả đơn giản nhất, là một sổ cái công khai
phân tán và bất biến . Điều này có nghĩa là nó có thể lưu trữ các hồ sơ
theo cách phân phối các hồ sơ đó giữa nhiều hệ thống khác nhau trên khắp
thế giới và làm như vậy theo cách ngăn cản bất kỳ ai
Machine Translated by Google

khỏi việc giả mạo những hồ sơ đó. Chuỗi khối tạo ra một kho lưu trữ
dữ liệu mà không ai có thể giả mạo hoặc phá hủy.

Ứng dụng chính đầu tiên của blockchain là tiền điện tử. Blockchain ban
đầu được phát minh như một công nghệ nền tảng cho Bitcoin, cho phép
theo dõi các giao dịch Bitcoin mà không cần sử dụng cơ quan tập
trung. Theo cách này, blockchain cho phép tồn tại một loại tiền tệ
không có cơ quan quản lý trung tâm. Quyền đối với các giao dịch
Bitcoin được phân phối giữa tất cả những người tham gia chuỗi
khối Bitcoin.

Mặc dù tiền điện tử là ứng dụng blockchain nhận được nhiều sự chú
ý nhất, nhưng sổ cái phân tán bất biến vẫn có nhiều cách sử
dụng khác. Nhiều đến mức các ứng dụng mới của công nghệ blockchain
dường như đang xuất hiện hàng ngày. Ví dụ: hồ sơ quyền sở hữu tài sản
có thể được hưởng lợi rất nhiều từ ứng dụng blockchain. Cách
tiếp cận này sẽ đặt những hồ sơ đó vào một kho lưu trữ công khai,
minh bạch, được bảo vệ khỏi những thiệt hại do cố ý hoặc vô tình. Công
nghệ chuỗi khối cũng có thể được sử dụng để theo dõi chuỗi cung ứng,
giúp người tiêu dùng tin tưởng rằng sản phẩm của họ đến từ các nguồn
uy tín và cho phép cơ quan quản lý dễ dàng truy tìm nguồn gốc của
sản phẩm bị thu hồi.

Mật mã nhẹ Có nhiều trường hợp sử

dụng chuyên biệt cho mật mã mà bạn có thể gặp phải trong sự nghiệp của
mình khi sức mạnh và năng lượng tính toán có thể bị hạn chế.

Một số thiết bị hoạt động ở mức năng lượng cực thấp và đặt ưu
tiên vào việc tiết kiệm năng lượng. Ví dụ, hãy tưởng tượng việc
gửi một vệ tinh vào không gian với nguồn năng lượng hạn chế. Hàng nghìn
giờ kỹ thuật được sử dụng để nâng cao tuổi thọ của nguồn năng lượng
đó. Các trường hợp tương tự cũng xảy ra trên Trái đất, nơi các
cảm biến từ xa phải truyền thông tin bằng năng lượng mặt trời,
pin nhỏ hoặc các trường hợp khác.
Machine Translated by Google

Thẻ thông minh là một ví dụ khác về môi trường năng lượng thấp. Họ
phải có khả năng giao tiếp an toàn với đầu đọc thẻ thông minh nhưng
chỉ sử dụng năng lượng được lưu trữ trên thẻ hoặc được truyền tới
thẻ bằng từ trường.

Trong những trường hợp này, các nhà mật mã học thường thiết kế
phần cứng chuyên dụng được xây dựng nhằm mục đích thực hiện
các thuật toán mật mã nhẹ với mức tiêu thụ điện năng ít nhất có
thể. Bạn sẽ không cần biết chi tiết về cách các thuật toán này
hoạt động nhưng bạn nên làm quen với khái niệm phần cứng chuyên
dụng có thể giảm thiểu mức tiêu thụ điện năng.

Một trường hợp sử dụng chuyên dụng khác cho mật mã là những trường
hợp bạn cần độ trễ rất thấp. Điều đó đơn giản có nghĩa là quá trình
mã hóa và giải mã sẽ không mất nhiều thời gian. Mã hóa các liên kết
mạng là một ví dụ phổ biến về mật mã có độ trễ thấp. Dữ liệu đang di
chuyển nhanh chóng trên mạng và việc mã hóa phải được thực hiện
càng nhanh càng tốt để tránh trở thành nút cổ chai.

Phần cứng mã hóa chuyên dụng còn giải quyết được nhiều yêu cầu
về độ trễ thấp. Ví dụ: một thiết bị phần cứng VPN chuyên dụng có thể
chứa phần cứng mật mã thực hiện các hoạt động mã hóa và giải mã ở
dạng hiệu quả cao để tối đa hóa tốc độ.

Yêu cầu về khả năng phục hồi cao tồn tại khi điều cực kỳ quan trọng
là dữ liệu phải được bảo tồn và không bị phá hủy do vô tình trong
quá trình mã hóa. Trong trường hợp khả năng phục hồi cực kỳ
quan trọng, cách dễ nhất để giải quyết vấn đề là người gửi dữ liệu
giữ lại một bản sao cho đến khi người nhận xác nhận việc nhận và
giải mã dữ liệu thành công.

Mối quan tâm về quyền riêng tư

của Mã hóa đồng cấu cũng đưa ra một số trường hợp sử dụng
chuyên biệt cho mã hóa. Đặc biệt, đôi khi chúng tôi có những ứng dụng
mà chúng tôi muốn bảo vệ quyền riêng tư của các cá nhân nhưng vẫn
muốn thực hiện các phép tính trên dữ liệu của họ. Công nghệ mã hóa
đồng cấu cho phép điều này, mã hóa dữ liệu theo cách duy trì khả năng
Machine Translated by Google

thực hiện tính toán trên dữ liệu đó. Khi bạn mã hóa dữ liệu bằng thuật
toán đồng hình và sau đó thực hiện tính toán trên dữ liệu đó, bạn sẽ
nhận được kết quả mà khi được giải mã sẽ khớp với kết quả mà bạn sẽ nhận
được nếu bạn thực hiện tính toán trên dữ liệu văn bản gốc ngay từ đầu.

Điện toán lượng tử Điện toán

lượng tử là một lĩnh vực mới nổi cố gắng sử dụng cơ học lượng tử để
thực hiện các nhiệm vụ tính toán và truyền thông. Nó chủ yếu vẫn là một
lĩnh vực lý thuyết, nhưng nếu nó tiến triển đến mức lý thuyết đó trở
nên thực tế để thực hiện, thì mật mã lượng tử có thể đánh bại các thuật
toán mật mã phụ thuộc vào việc phân tích các số nguyên tố lớn.

Đồng thời, điện toán lượng tử có thể được sử dụng để phát triển các thuật
toán mã hóa thậm chí còn mạnh hơn và an toàn hơn nhiều so với các
phương pháp hiện đại. Chúng ta sẽ phải chờ xem những thứ đó phát triển
như thế nào để cung cấp cho chúng ta khả năng liên lạc lượng tử mạnh mẽ
trong kỷ nguyên hậu lượng tử.

Bản tóm tắt


Mật mã học là một trong những biện pháp kiểm soát bảo mật quan trọng nhất
được sử dụng ngày nay và nó liên quan đến hầu hết mọi lĩnh vực bảo mật
khác, từ kết nối mạng đến phát triển phần mềm. Việc sử dụng mật mã hỗ trợ
các mục tiêu cung cấp tính bảo mật, tính toàn vẹn, xác thực và
chống chối bỏ trong nhiều ứng dụng.

Công nghệ mã hóa đối xứng sử dụng các khóa bí mật được chia sẻ để cung cấp
tính bảo mật cho dữ liệu ở trạng thái nghỉ và dữ liệu đang chuyển động. Miễn
là người dùng có thể khắc phục được các vấn đề về trao đổi và bảo trì
khóa thì mã hóa đối xứng sẽ nhanh chóng và hiệu quả. Mật mã bất đối xứng
và cơ sở hạ tầng khóa công khai (PKI) cung cấp một phương thức có thể
mở rộng để giao tiếp an toàn, đặc biệt khi các bên giao tiếp không có mối
quan hệ trước đó.
Machine Translated by Google

Kiến thức cơ bản về kỳ thi

Hiểu mục tiêu của mật mã. Bốn mục tiêu của mật mã là tính bảo mật,
tính toàn vẹn, tính xác thực và tính chống chối bỏ. Bảo mật là việc sử
dụng mã hóa để bảo vệ thông tin nhạy cảm khỏi con mắt tò mò. Tính
toàn vẹn là việc sử dụng mật mã để đảm bảo rằng dữ liệu không bị
thay đổi một cách cố ý hoặc vô ý. Xác thực đề cập đến
việc sử dụng mã hóa để xác thực danh tính của các cá nhân. Tính không
chối bỏ đảm bảo rằng các cá nhân có thể chứng minh cho bên thứ ba rằng
tin nhắn đến từ người gửi có mục đích.

Giải thích sự khác biệt giữa mã hóa đối xứng và bất đối xứng. Mã hóa đối
xứng sử dụng cùng một khóa bí mật chung để mã hóa và giải mã thông
tin. Người dùng phải có một số cơ chế để trao đổi các khóa bí mật
được chia sẻ này. Thuật toán Diffie–Hellman cung cấp một cách
tiếp cận. Mã hóa bất đối xứng cung cấp cho mỗi người dùng một cặp khóa:
khóa chung được chia sẻ tự do và khóa riêng được giữ bí mật. Mọi thứ
được mã hóa bằng một khóa từ cặp có thể được giải mã bằng khóa còn
lại từ cùng một cặp.

Giải thích cách chữ ký số cung cấp khả năng chống chối bỏ.
Chữ ký số cung cấp khả năng chống chối bỏ bằng cách cho phép bên thứ ba
xác minh tính xác thực của tin nhắn. Người gửi tạo chữ ký số
bằng cách sử dụng hàm băm để tạo thông báo tóm tắt và sau đó mã hóa
thông báo đó bằng khóa riêng của họ. Những người khác có thể xác minh
chữ ký số bằng cách giải mã nó bằng khóa chung của người gửi và so
sánh bản tóm tắt tin nhắn được giải mã này với chữ ký mà họ tự tính
toán bằng cách sử dụng hàm băm trên tin nhắn.

Hiểu mục đích và cách sử dụng chứng thư số.


Chứng chỉ số cung cấp một cơ chế đáng tin cậy để chia sẻ khóa công
khai với các cá nhân khác. Người dùng và tổ chức nhận được chứng chỉ
kỹ thuật số từ cơ quan cấp chứng chỉ (CA), những người thể hiện sự
tin tưởng của họ đối với chứng chỉ bằng cách áp dụng chữ ký số của họ.
Người nhận chứng chỉ số có thể dựa vào khóa công khai
Machine Translated by Google

chứa nếu họ tin cậy CA phát hành và xác minh chữ ký số của CA.

Thể hiện sự quen thuộc với các vấn đề mới nổi trong mật mã.
Tor sử dụng tính bảo mật hoàn hảo về phía trước để cho phép liên
lạc ẩn danh qua Internet. Chuỗi khối là một sổ cái công khai phân tán bất
biến được thực hiện thông qua việc sử dụng mật mã. Mã hóa đồng cấu cho
phép bảo vệ dữ liệu nhạy cảm trong khi vẫn tạo điều kiện thuận lợi cho
việc tính toán trên dữ liệu đó theo cách bảo vệ quyền riêng tư. Điện
toán lượng tử thách thức các phương pháp tiếp cận hiện đại đối với
mật mã và có thể là một lực lượng đột phá trong tương lai.

Câu hỏi ôn tập

1. Mike đang gửi cho David một tin nhắn được mã hóa bằng thuật toán mã
hóa đối xứng. Anh ta nên sử dụng khóa nào để mã hóa tin nhắn?

A. Khóa chung của Mike

B. Khóa riêng của Mike

C. Khóa chung của

David D. Khóa bí mật chung

2. Nhóm của Alan cần thực hiện tính toán trên thông tin cá nhân
nhạy cảm nhưng không cần quyền truy cập vào dữ liệu cơ
bản. Nhóm có thể sử dụng công nghệ nào để thực hiện các phép tính này
mà không cần truy cập dữ liệu?

A. Điện toán lượng tử

B. Chuỗi khối

C. Mã hóa đồng cấu D. Ghim

chứng chỉ
Machine Translated by Google

3. Norm đang sử dụng công nghệ mã hóa toàn bộ đĩa để bảo vệ


nội dung của máy tính xách tay chống trộm. Mục tiêu nào của mật mã mà
anh ấy đang cố gắng đạt được?

A. Tính toàn

vẹn B. Không chối bỏ

C. Xác thực

D. Tính bảo mật

4. Brian phát hiện ra rằng một người dùng bị nghi ngờ ăn cắp thông tin nhạy cảm

thông tin đang đăng nhiều file hình ảnh lên bảng tin.
Cá nhân có thể sử dụng kỹ thuật nào để che giấu thông tin nhạy cảm
trong những hình ảnh đó?

A. Steganography B.

Mã hóa đồng cấu C. Tấn công phát

lại D. Tấn công

sinh nhật

5. Phát biểu nào sau đây về khóa mật mã là sai?

A. Tất cả các khóa mật mã phải được giữ bí mật.

B. Các khóa dài hơn sẽ tốt hơn các khóa ngắn hơn khi sử dụng
cùng một thuật toán.

C. Thuật toán bất đối xứng thường sử dụng khóa dài hơn thuật
toán đối xứng.

D. Chứng chỉ kỹ thuật số được thiết kế để chia sẻ khóa chung.

6. Loại mật mã nào hoạt động trên một ký tự của văn bản tại một thời điểm?

A. Mật mã khối

B. Mật mã bit

C. Mật mã dòng D.

Mật mã cân bằng


Machine Translated by Google

7. Vince đang chọn một thuật toán mã hóa đối xứng để sử dụng trong tổ
chức của mình. Anh ấy muốn chọn thuật toán mạnh nhất trong
số các lựa chọn bên dưới. Anh ta nên chọn thuật toán nào?

A. DES

B. 3DES

C. RSA

D. AES

8. Kevin đang cấu hình máy chủ web để sử dụng chứng chỉ số.
Anh ta có thể sử dụng công nghệ gì để cho phép khách hàng nhanh chóng
xác minh trạng thái của chứng chỉ số đó mà không cần liên hệ với máy
chủ từ xa?

A.CRL

B. OCSP

C. Dập ghim chứng chỉ

D. Ghim chứng chỉ

9. Acme Widgets có 10 nhân viên và tất cả họ đều cần khả năng giao tiếp
với nhau bằng hệ thống mã hóa đối xứng. Hệ thống sẽ cho phép hai
nhân viên bất kỳ liên lạc an toàn mà không bị nhân viên khác
nghe lén.
Nếu thêm nhân viên thứ 11 vào tổ chức thì phải thêm bao nhiêu
khóa mới vào hệ thống?

A. 1

B. 2

C. 10

D. 11

10. Tham khảo tình huống ở câu 9, nếu Acme Widgets


chuyển sang thuật toán mã hóa bất đối xứng, cần bao nhiêu khóa để
thêm nhân viên thứ 11?
Machine Translated by Google

A. 1

B. 2

C. 10

D. 11

11. Loại chứng chỉ số nào cung cấp mức độ đảm bảo cao nhất rằng chủ sở
hữu chứng chỉ chính là người mà họ tuyên bố?

A.DV

B. OV

C. Tia cực tím

D. EV

12. Glenn gần đây đã nhận được chứng chỉ ký tự đại diện cho *.
mydomain.com. Tên miền nào sau đây sẽ không được cấp chứng chỉ này?

A. mydomain.com

B. core.mydomain.com

C. phát triển. www.mydomain.com

D. mail.mydomain.com

13. Máy chủ nào sau đây hầu như luôn là CA ngoại tuyến khi triển khai PKI
lớn?

A. CA gốc

B. CA trung gian

C. RA

D. CA nội bộ

14. Định dạng chứng chỉ nào sau đây có liên quan chặt chẽ với tệp
chứng chỉ nhị phân của Windows?

A. DER

B. PEM
Machine Translated by Google

C. PFX

D. P7B

15. Loại giải pháp bảo mật nào cung cấp nền tảng phần cứng cho
việc lưu trữ và quản lý khóa mã hóa?
A. HSM

B. IPS

C. SIÊM

D. TĂNG CAO

16. Loại tấn công mật mã nào cố gắng buộc người dùng giảm mức
độ mã hóa mà họ sử dụng để liên lạc với máy chủ từ xa?

Sinh nhật

B. Tần số

C. Hạ cấp

D. Bàn cầu vồng

17. David muốn gửi cho Mike một tin nhắn bằng thuật toán mã hóa
bất đối xứng. Anh ta nên sử dụng khóa nào để mã hóa tin nhắn?

A. Khóa chung của David

B. Khóa riêng của David

C. Khóa chung của Mike

D. Khóa riêng của Mike

18. Khi Mike nhận được tin nhắn mà David đã mã hóa cho anh ấy,
anh ấy nên dùng chìa khóa nào để giải mã tin nhắn?

A. Khóa chung của David

B. Khóa riêng của David

C. Khóa chung của Mike


Machine Translated by Google

D. Khóa riêng của Mike

19. Nếu David muốn ký điện tử vào tin nhắn mà anh ấy gửi cho Mike, anh ấy
sẽ sử dụng phím nào để tạo chữ ký điện tử?

A. Khóa chung của David

B. Khóa riêng của David

C. Khóa chung của Mike

D. Khóa riêng của Mike

20. Khi Mike nhận được tin nhắn được ký điện tử từ David, anh ấy nên sử
dụng phím nào để xác minh chữ ký điện tử?

A. Khóa chung của David

B. Khóa riêng của David

C. Khóa chung của Mike

D. Khóa riêng của Mike

You might also like