CHƯƠNG 1. TỔNG QUAN VỀ MÃ HÓA – Tài liệu text
6
1.2. Sơ lược lịch sử của mã hóa thông tin
Mật mã có lịch sử lâu dài và đầy màu sắc. Nói chung, những dạng sớm nhất
của cách viết bí mật (ngày nay gọi chung là mật mã cổ điển) chỉ cần có bút và
giấy. Hai phạm trù chính của mật mã cổ điển là mật mã hoán vị, trong đó người
ta sắp xếp lại trật tự các chữ cái của thông điệp, và mật mã thay thế, trong đó
người ta thay thế có hệ thống các chữ cái hay các nhóm chữ cái bằng các chữ cái
hay các nhóm chữ cái khác. Văn bản được mật mã hóa bằng mật mã cổ điển có
xu hướng lộ ra các thông tin thống kê nhất định về văn bản thường. Bằng cách
sử dụng các thông tin này, mật mã cổ điển rất dễ bị dò ra (ví dụ bằng phân tích
tần suất). Mật mã cổ điển vẫn còn được phổ biến tới ngày nay, chủ yếu thông
qua việc giải các ô đố chữ.
Các thiết bị và các kỹ thuật khác nhau đã được sử dụng để mật mã hóa. Một
trong những thiết bị sớm nhất có lẽ là gậy mật mã. Trong nửa đầu thế kỷ 20, một
số thiết bị cơ khí đã được phát minh để thực hiện mật mã hóa, bao gồm rotor
machines nổi tiếng nhất là máy Enigma được người Đức sử dụng trong thứ hai.
Mật mã thực hiện bằng các máy móc này đã tăng độ phức tạp lên đáng kể đối
với công việc phân tích mã.
Với sự ra đời của máy tính kỹ thuật số và điện tử học thì các mật mã cực kỳ
phức tạp đã có thể được thực hiện. Đặc trưng của mật mã máy tính là chúng
thực hiện trên các chuỗi nhị phân, không giống như trong các mô hình mật mã
hóa cổ điển và cơ học (chỉ sử dụng bảng chữ cái với khoảng 26 ký tự-phụ thuộc
vào từng ngôn ngữ). Mật mã máy tính cũng có khả năng chịu đựng việc phân
tích mật mã tốt hơn; rất ít các mật mã như thế dễ bị tổn thương chỉ bởi kiểu tấn
công biết bản mã.
Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện đại là tương
đối gần đây nó chỉ được bắt đầu trong cộng đồng mở kể từ những năm thập niên
1970 với các chi tiết kỹ thuật của DES (viết tắt trong tiếng Anh của Data
Encryption Standard tức Tiêu chuẩn Mật mã hóa Dữ liệu) và sự phát minh
7
ra RSA. Kể từ đó, mật mã hóa đã trở thành công cụ được sử dụng rộng rãi trong
liên lạc và bảo mật máy tính.
Cũng giống như các bài học thu được từ trong lịch sử của nó, các nhà mật
mã hóa cũng rất thận trọng khi nhắc đến tương lai. Định luật Moore thông
thường được nhắc đến khi nói về độ lớn khóa, và các hiệu ứng tiềm năng
của máy tính lượng tử.
1.3. Hệ thống mã hóa
Hệ thống mã hóa là một bộ năm thành phần (P, C, K, E, D) thỏa mãn điều
kiện sau:
– Tập nguồn P là tập hữu hạn tất cả các mẫu tin nguồn cần mã hóa có thể
có.
– Tập đích C là tập hữu hạn tất cả các mẫu tin có sau khi mã hóa.
– Tập khóa K là tập hữu hạn các khóa có thể được sử dụng.
–
E và D lần lượt là tập luật mã hóa và giải mã. Với mỗi khóa k thuộc K,
tồn tại luật mã hóa ek thuộc E và luật giải mã dk thuộc D tương ứng.
Luật mã hóa ek : P → C và luật giải mã d k : C → P là hai ánh xạ thỏa mãn
dk(ek(x)) = x, trong đó mọi x đều thuộc P.
Hình 1. 1. Hệ thống mã hóa
Bên cạnh việc làm thế nào để che dấu nội dung thì mã hóa cần phải đảm bảo
được các yếu tố sau:
8
• Tính bí mật (Confidentiality): Đảm bảo dữ liệu được truyền đi một cách
an toàn và không bị lộ thông tin nếu như có ai đó cố tình muốn có được
nội dung của dữ liệu gốc ban đầu. Và chỉ những người được phép mới có
khả năng đọc được nội dung của dữ liệu ban đầu.
• Tính xác thưc (Authentication): Giúp cho người nhận dữ liệu xác định
được chắc chắn rằng dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Kẻ giả
mạo không thể có khả năng để giả dạng một người khác hay nói cách
khác không thể mạo danh để gửi dữ liệu. Người nhận có khả năng kiểm
tra nguồn gốc của thông tin mà họ nhận được.
• Tính toàn vẹn (Integrity): Giúp cho người nhận dữ liệu kiểm tra được rằng
dữ liệu không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể
có khả năng thay thế dữ liệu ban đầu bằng dữ liệu khác.
• Tính không thể chối bỏ (Non-repudation): Người gửi hay người nhận
không thể chối bỏ sau khi đã gửi hoặc nhận thông tin.
1.4. Phân loại các thuật toán mã hóa
Có rất nhiều các thuật toán mã hóa khác nhau. Từ những thuật toán được
công khai cho tất cả mọi người sử dụng và áp dụng như là một chuẩn chung cho
việc mã hóa dữ liệu đến nhưng thuật toán mã hóa không được công bố. Có thể
phân loại các thuật toán mã hóa như sau:
Phân loại theo phương pháp:
– Mã hóa cổ điển (Classical cryptography).
– Mã hóa đối xứng (Symetric cryptography).
– Mã hóa bất đối xứng (Asymetric cryptography).
– Hàm băm (Hash function).
Phân loại theo số lượng khóa:
– Mã hóa khóa bí mật (Private-key Cryptography).
– Mã hóa khóa công khai (Public-key Cryptography).
Dưới đây chúng ta tìm hiểu khái quát về các phương pháp mã hóa:
9
1.4.1. Mã hóa cổ điển
Xuất hiện trong lịch sử, thuật toán không dùng khóa, đơn giản và dễ hiểu. Là
phương pháp mà từng kí tự (hay từng nhóm kí tự) trong bản rõ được thay thế
bằng một kí tự (hay một nhóm kí tự) khác tạo ra bản mã. Bên nhận chỉ việc đảo
ngược lại trình tự thay thế trên bản mã để có được bản rõ ban đầu.
Nhưng từ chính các phương pháp mã hóa này đã giúp ta tiếp cận với các
thuật toán mã hóa đối xứng được sử dụng ngày nay. Trong mã hóa cổ điển có
hai phương pháp nổi bật đó là:
– Mã hóa thay thế (Substitution Cipher): Là phương pháp mà từng kí tự
(hay từng nhóm kí tự) trong bản rõ được thay thế bằng một kí tự (hay
một nhóm kí tự) khác để tạo ra bản mờ. Bên nhận chỉ cần đảo ngược
trình tự thay thế trên bản mờ để có được bản rõ ban đầu.
Hình 1. 2. Bảng thay thế ký tự
Ví dụ: Giả sử xây dựng một bảng thay thế các kí tự như trên và bạn
cũng có bảng thay thế này. Khi muốn truyền thông tin cho bạn, chẳng
hạn tôi gửi cho bạn một dòng văn bản như sau: CABBAC, thì dựa vào
bảng thay thế kí tự mà tôi và bạn đã xây dựng tôi chuyển thành như
sau: FEDDEF. Sau đó tôi gửi tới cho bạn, khi bạn nhận được thông tin
như trên, vì bạn đã có bảng thay thế bạn chỉ việc thay thế ngược lạo và
bạn sẽ có được thông tin ban đầu mà tôi muốn gửi cho bạn.
– Mã hóa hoán vị (Transposition Cipher) hay còn gọi là mã hóa dịch
chuyển: Nếu như trong phương pháp mã hóa thay thế các kí tự trong
bản rõ được thay thế hoàn toàn bằng các kí tự trong bản mờ, thì trong
phương pháp mã hóa hoán vị, các kí tự trong bản rõ vẫn được giữ
10
nguyên, chúng chỉ được sắp xếp lại vị trí để tạo ra bản mờ. Tức là các
kí tự trong bản rõ hoàn toàn không bị thay đổi bằng kí tự khác.
Ngoài ra còn có một số phương pháp khác: Phương pháp Affine, Vigenere,
Hill, …
1.4.2. Mã hóa đối xứng
Ở phần trên, chúng ta đã tìm hiểu về mã hoá cổ điển, trong đó có nói rằng
mã hoá cổ điển không dùng khoá. Nhưng trên thực nếu chúng ta phân tích một
cách tổng quát, chúng ta sẽ thấy được như sau:
– Mã hoá cổ điển có sử dụng khoá. Bằng chứng là trong phương pháp
thay thế thì khoá chính là phép dịch ký tự. Trong phương pháp mã hoá
hoán vị thì khóa nằm ở số hàng hay số cột mà chúng ta qui định. Khoá
này có thể được thay đổi tuỳ theo mục đích mã hoá của chúng ta,
nhưng nó phải nằm trong một phạm vi cho phép nào đó.
– Để dùng được mã hoá cổ điển thì bên mã hoá và bên giải mã phải
thống nhất với nhau về cơ chế mã hoá cũng như giải mã. Nếu như
không có công việc này thì hai bên sẽ không thể làm việc được với
nhau.
Mã hoá đối xứng còn có một số tên gọi khác như Secret Key Cryptography
(hay Private Key Cryptography), sử dụng cùng một khoá cho cả hai quá trình
mã hoá và giải mã.
Quá trình thực hiện như sau:
Trong hệ thống mã hoá đối xứng, trước khi truyền dữ liệu, hai bên gửi và
nhận phải thoả thuận về khoá dùng chung cho quá trình mã hoá và giải mã. Sau
đó, bên gửi sẽ mã hoá bản rõ (Plaintext) bằng cách sử dụng khoá bí mật này và
gửi thông điệp đã mã hoá cho bên nhận. Bên nhận sau khi nhận được thông điệp
đã mã hoá sẽ sử dụng chính khoá bí mật mà hai bên đã thoả thuận để giải mã và
lấy lại bản rõ (Plaintext).
11
Hình 1. 3. Mô hình mã hóa sử dụng khóa đối xứng
Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí
mật chính là khoá. Việc trao đổi, thoả thuận về thuật toán được sử dụng trong
việc mã hoá có thế tiến hành một cách công khai, nhưng bước thoả thuận về
khoá trong việc mã hoá và giải mã phải tiến hành bí mật
Mã hoá đối xứng có thế được phân thành 02 loại:
– Loại thứ nhất tác động trên bản rõ theo từng nhóm bits. Từng nhóm
bits này được gọi với một cái tên khác là khối (Block) và thuật toán
được áp dụng gọi là Block Cipher. Theo đó, từng khối dữ liệu trong
văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ
dài. Đối với các thuật toán ngày nay thì kích thước chung của một
Block là 64 bits.
– Loại thứ hai tác động lên bản rõ theo từng bit một. Các thuật toán áp
dụng được gọi là Stream Cipher. Theo đó, dữ liệu của văn bản được
mã hoá từng bit một. Các thuật toán mã hoá dòng này có tốc độ nhanh
hơn các thuật toán mã hoá khối và nó thường được áp dụng khi lượng
dữ liệu cần mã hoá chưa biết trước.
12
Hình 1. 4. Một số thuật toán mã hóa đối xứng
Phương thức mật mã đối xứng thực hiện nhanh hơn rất nhiều so với quá
trình sử dụng mật mã bất đối xứng. Với tốc độ nhanh nên thuật toán này được
thiết kế chỉ một khóa trong quá trình mã hoá và giải mã dữ liệu.
Tuy nhiên bạn có thể sử dụng một giải pháp thông minh hơn đó là Public
Key Infrastructure (PKI), giải pháp được sử dụng kết hợp với mật mã đối xứng
trong quá trình truyền thông tin khóa. Việc truyền thông tin khóa bằng việc sử
dụng một mã hoá để truyền với sử dụng một phiên truyền thông tin duy nhất.
Hiểu, sử dụng và triển khai sử dụng PKI không đơn giản và có nhiều giải pháp
của nhiều nhà sản xuất khác nhau.
1.4.3. Mã hóa bất đối xứng
Ý tưởng về hệ thống mã hóa khóa công khai được Martin Heilman, Ralph
Merkle và Whitfield Diffie tại Đại Học Stanford giới thiệu vào năm 1976. Sau
đó, phương pháp Diffie- Hellman của Martin Hellman và Whitfield Diffie được
13
công bố. Năm 1977 nhóm tác giả Ronald Rivest, Adi Shamir và Leonard
Adleman đã công bố phương pháp RSA, phương pháp mã hóa khóa công khai
nổi tiếng và được sử dụng trong các ứng dụng mã hóa và bảo vệ thông tin.
Khóa công khai ra đời hỗ trợ thêm để giải quyết một số bài toán an toàn, chứ
không phải thay thế khóa riêng (đối xứng). Cả 2 cùng tồn tại, phát triển và bổ
sung cho nhau.
Khóa công khai ( khóa bất đối xứng) bao gồm việc sử dụng 2 khóa : Khóa
công khai và khóa riêng:
– Bên gửi tạo ra một khoá bí mật dùng để mã hoá dữ liệu. Khoá này còn
được gọi là Session Key.
– Sau đó, Session Key này lại được mã hoá bằng khoá công khai của bên
nhận dữ liệu.
– Tiếp theo dữ liệu mã hoá cùng với Session Key đã mã hoá được gửi đi tới
bên nhận.
– Lúc này bên nhận dùng khoá riêng để giải mã Session Key và có được
Session Key ban đầu.
– Dùng Session Key sau khi giải mã để giải mã dữ liệu.
14
Hình 1. 5. Sơ đồ mã hóa công khai
Mật mã bất đối xứng hoạt động chậm hơn phương thức mật mã đối xứng,
không phải nó mã hoá một khối lượng dữ liệu lớn. Nó thường được sử dụng để
bảo mật quá trình truyền khóa của mật mã đối xứng. Nó cung cấp bảo mật cho
quá trình truyền thông tin bằng các dịch vụ: Authentication, Integrity,
Protection, và nonrepudiation.
Phương thức mật mã bất đối xứng sử dụng: RSA, Diffie-Hellman, ECC, …
1.4.4. Hàm băm – Hashing
Hashing là một phương thức mật mã nhưng nó không phải là một thuật toán
mã hoá. Đúng như vậy, hàm băm chỉ sử dụng một chứng chỉ số duy nhất được
biết đến với tên như “hash value – giá trị hash”, “hash – băm”, Message
Authentication Code (MAC), fingerprint – vân tay, hay một đoạn thông điệp. Dữ
liệu đầu vào của bạn có thể là một tệp tin, một ổ đĩa một quá trình truyền thông
tin trên mạng, hay một bức thư điện tử. Thông số giá trị băm được sử dụng để
phát hiện khi có sự thay đổi của tài nguyên. Nói cách khác, hằm băm sử dụng nó
15
để phát hiện ra dữ liệu có toàn vẹn trong quá trình lưu trữ hoặc trong khi truyền
hay không.
Ví dụ, giá trị băm được tính toán để so sánh với các giá trị băm được tạo ra
trước đó một tuần. Nếu hai giá trị này giống nhau thì dữ liệu chưa có sự thay
đổi. Nếu hai giá trị này có sự khác nhau thì tất nhiên là dữ liệu đã bị thay đổi.
Thông số MAC được tính toán bởi người gửi và người nhận với cùng một thuật
toán.
Không như các phương thức mật mã khác, chúng sẽ làm thay đổi dữ liệu
thành một dạng mật mã, quá trình băm sử dụng một giá trị băm và không thay
đổi dữ liệu ban đầu. Bởi vì các tính năng đặc biệt, hàm băm có thể sử dụng để
bảo vệ và kiểm tra tính toàn vẹn của dữ liệu. Nó cũng có khả năng sử dụng để
kiểm tra khi có một tiến trình sao chép được thực hiện và đảm bảo tính chính
xác của dữ liệu khi chúng được sao chép.
Ví dụ, khi một ổ cứng tạo ra một bản sao, một quá trình băm được thực hiện
trên ổ đĩa trước khi quá trình nhân đôi được thực hiện. Nếu hai thông số băm
của ổ cứng mới được tạo ra và thông số băm của ổ đĩa ban đầu giống nhau thì
quá trình nhân đôi dữ liệu được thực hiện chính xác và đảm bảo dữ liệu không
có sự thay đổi mất mát trong quá trình nhân bản. Việc băm sử dụng để đảm bảo
dữ liệu được nguyên bản giúp dữ liệu lưu ở dạng kỹ thuật số sẽ luôn giữ được
nguyên bản sau vô số lần sao chép và điều này không thể thực hiện khi lưu dữ
liệu các dạng khác – ví như bạn lưu thông tin âm thanh bằng băng từ sẽ bị biến
dạng sau nhiều lần sao chép.
Ví dụ, Message Digest 5 (MD5) là một thuật toán băm với 128-bit. Điều này
có nghĩa không có vấn đề với dữ liệu đầu vào và dữ liệu đầu ra sau quá trình
băm bởi nó luôn luôn thêm vào 128 bits. Sức mạnh của quá trình băm là nó
được thực hiện một chiều và không thể có phương thức nào có thể thực hiện
ngược lại được để chuyển thông số băm thành dữ liệu ban đầu. Nếu một vài
người có được các thông số băm của bạn, họ không thể lấy được dữ liệu ban
đầu. Tuy nhiên đó không phải là phương thức mật mã không thế tấn công. Hàm
16
băm không thể thực hiện ngược lại, bởi đó là một giải pháp bảo mật, có nghĩa
không có công cụ nào có thể chuyển ngược lại một mật khẩu được băm thành
một mật khẩu nguyên bản chưa được băm. Tuy nhiên một thuật toán nào cũng
có những bất cập riêng, bằng việc sử dụng các phần mềm, password crackers
chúng có thể phát hiện ra đoạn mã thêm vào dữ liệu ban đầu và chỉ cần xoá đoạn
giá trị băm đi là có thể truy cập bình thường. Dữ liệu tài khoản thường không
được mã hoá, và dữ liệu mật khẩu thường được băm do đó hầu hết các công cụ
crack mật khẩu chỉ có thể xoá mật khẩu đã được đặt cho người dùng đó mà
không thể xem mật khẩu đó.
Thuật toán băm thường được sử dụng: SHA-1, MD5, MD4, …
1.5.Ứng dụng mã hóa
Với sự phát triển nhanh chóng của công nghệ thông tin thì các nguy cơ về
mất an toàn thông tin cũng tang lên, vì thế mà mã hóa được ứng dụng phổ biến
trong các hoạt động bảo mật, thương mại điện tử, chính phủ điện tử,… Sau đây
là một số ứng dụng của mã hóa trong thực tế.
1.5.1. Giao thức SSL
SSL là từ viết tắt của Secure Socket Layer là một giao thức (protocol) cho
phép bạn truyền đạt thông tin một cách bảo mật và an toàn qua mạng.
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet
đi qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các
thông tin trên đường truyền. Không một ai kể cả người sử dụng lẫn
Web server có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể
kiểm soát được liệu có ai đó thâm nhập vào thông tin trên đường truyền.
Để bảo vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP
nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn:
– Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia
của kết nối. Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác
thực của người sử dụng.
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…