1
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
STT
Ký hiệu
Nghĩa tiếng anh
1
MD5
Message Digest 5
2
ECC
Elliptic Curve Cryptography
3
MAC
Message Authentication Code
4
2
DANH MỤC HÌNH VẼ
Như chúng ta đã biết, ngày nay với sự xuất hiện của máy tính, các tài liệu
văn bản giấy tờ và các thông tin quan trọng đều được số hóa và xử lý trên máy
tính, được truyền đi trong một môi trường mà mặc định là không an toàn. Do đó
yêu cầu về việc có một cơ chế, giải pháp để bảo vệ sự an toàn và bí mật của các
thông tin nhạy cảm, quan trọng ngày càng trở nên cấp thiết. Mật mã học chính là
ngành khoa học đảm bảo cho mục đích này. Khó có thể thấy một ứng dụng Tin
học có ích nào lại không sử dụng các thuật toán mã hóa thông tin. Với sự phát
triển nhanh chóng của công nghệ thông tin giúp ích rất nhiều cho các cơ quan, tổ
chức,… Bên cạnh đó cũng tồn tại rất nhiều yếu tố cần phải giải quyết như đánh
cắp thông tin hay giả mạo thông tin… Làm ảnh hưởng và tổn hại nghiêm trọng
đến tình hình an ninh mạng. Do đó bảo mật và xác thực thông tin luôn là vấn đề
cấp thiết được đặt ra cho các cơ quan chức năng... Đặc biệt là trong nền kinh tế
thị trường hiện nay, thông tin luôn đóng vai trò quan trọng trong các chiến lược
kinh doanh của đơn vị.
Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng
giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và
ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quan trọng.
Các kết quả của khoa học mật mã ngày càng được triển khai trong nhiều lĩnh
vực khác nhau của đời sống, xã hội, trong đó phải kể đến rất nhiều những ứng
3
dụng đa dạng trong lĩnh vực dân sự, thương mại...Các ứng dụng mã hóa
thông tin cá nhân, trao đổi thông tin kinh doanh, thực hiện các giao dịch điện
tử qua mạng... đã trở nên gần gũi và quen thuộc với mọi người.
toàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩ đến
các biện pháp nhằm đảm bảo cho thông tin được trao đổi hay cất giữ một cách
an toàn và bí mật. Chẳng hạn là các biện pháp như:
•
Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư có được
chuyển nguyên vẹn đến người nhận hay không.
•
Dùng mật mã mã hóa thông điệp để chỉ có người gửi và người nhận hiểu
được thông điệp. Phương pháp này thường được sử dụng trong chính trị
và quân sự.
•
Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo vệ
nghiêm ngặt, chỉ có những người được cấp quyền mới có thể xem tài liệu.
Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triển
của mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính
và gửi đi trên mạng Internet. Và do đó xuất hiện nhu cầu về an toàn và bảo mật
thông tin trên máy tính. Có thể phân loại mô hình an toàn bảo mật thông tin trên
máy tính theo hai hướng chính như sau:
Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network Security).
Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại
6
Hình 1.1. Hacker nghe trộm nội dung
Hai loại tấn công thụ động ở đây gồm: Giải phóng nội dung thông điệp và
phân tích lưu lượng.
Giải phóng nội dung thông điệp: Một cuộc nói chuyện qua điện
thoại, một thông điệp e-mail, một tập tin được truyền đi,… đều có
thể chứa những thông tin mật và nhạy cảm. Chúng ta luôn muốn
ngăn chặn kẻ xấu biết được nội dung của những thông tin này.
Phân tích lưu lượng: Giả sử rằng ta đã có một cách nào đó để che
giấu nội dung của thông điệp để kẻ xấu dù có lấy được thông điệp
cũng không thể trích xuất thông tin từ thông điệp đó. Kỹ thuật phổ
biến để che giấu nội dung là mã hóa. Nếu ta đã có phương thức bảo
vệ bằng mã hóa thích hợp nhưng kẻ xấu vẫn có thể nhìn thấy kiểu
mẫu của những thông điệp được mã hóa này. Kẻ xấu có thể xác định
được vị trí và đặc điểm nhận dạng của các chủ thể đang tham gia
vào quá trình truyền thông và có thể biết được tần suất xuất hiện và
độ dài của các thông điệp đang được trao đổi. Thông tin này có thể
hữu ích trong việc đoán ra bản chất của việc truyền thông đang xảy
ra.
7
Đối với các loại tấn công bị động, chúng ta rất rất khó để phát hiện ra bởi
chúng không hề dính líu tới việc thay đổi dữ liệu. Tuy nhiên, việc ngăn chặn sự
thành công của các cuộc tấn công dạng này là có khả thi. Vì vậy, cần nhấn
bị sửa thành “Cho phép Em đọc tập tin mật có tên Passwork".
Hình 1.4. Hacker thay đổi thông điệp
Từ chối dịch vụ: Ngăn chặn hoặc hạn chế việc sử dụng hoặc quản lý
thông thường của các hệ thống thông tin và truyền thông. Loại tấn
công này có một mục đích cụ thể; ví dụ, tin tặc có thể ngăn cấm tất
cả các thông điệp được gửi thẳng tới một đích đến nào đó (ví dụ,
dịch vụ giám sát bảo mật (security audit)).
Thực tế hiện nay thì không có một biện pháp bảo vệ an toàn thông tin dữ
liệu nào là an toàn tuyệt đối. Một hệ thống dù được bảo vệ chắc chắn đến đâu
cũng không thể đảm bảo là tuyệt đối an toàn.
10
1.2. Tổng quan về mật ma
1.2.1. Một số khái niệm cơ bản về mật ma
Mật mã học (khoa học mật mã) là ngành khoa học ứng dụng toán học vào
việc biến đổi thông tin thành một dạng khác với mục đích che dấu nội dung, ý
nghĩa thông tin cần mã hóa. Đây là một ngành quan trọng và có nhiều ứng dụng
trong đời sống xã hội. Ngày nay, các ứng dụng mã hóa và bảo mật thông tin
đang được sử dụng ngày càng phổ biến hơn trong các lĩnh vực khác nhau trên
thế giới, từ các lĩnh vực an ninh, quân sự, quốc phòng,… cho đến các lĩnh vực
dân sự như thương mại điện tử, ngân hàng, …
Cùng với sự phát triển của khoa học máy tính và Internet, các nghiên cứu
và ứng dụng của khoa học mật mã ngày càng trở nên đa dạng hơn, mở ra nhiều
hướng nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những
đặc trưng riêng. Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hóa
và giải mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiên
cứu và giải quyết: Chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký
trữ cũng như khi truyền đi trên mạng. Cho dù sự trao đổi này diễn ra
trên môi trường truyền thông không an toàn.
• Mã hóa (Encryption): là quá trình chuyển đổi thông tin từ dạng có thể
hiểu được, sang dạng không hiểu được để đảm bảo tính bí mật thông
tin.
• Giải mã (Decryption): là quá trình khôi phục lại thông tin ban đầu, từ
dạng thông tin đã được mã hóa.
• Khóa mã (Key): là dãy các ký tự và số dùng làm biến cho các quá
trình mã hóa hay giải mã thông tin.
Quá trình mã hóa và giải mã
12
Hình 1.5. Sơ đồ quá trình thực hiện
•
Thám mã (Cryptanalysis): là những người phân tích các bản mã.
Hình 1.6. Sơ đồ quá trình viết bí mật thông tin
Các đặc tính của ma hóa
Đảm bảo tính bảo mật (secrecy hoặc confidentiality) – Ngăn
chặn được vấn đề xem trộm thông tin. Giải quyết vấn đề bảo
vệ thông tin chống lại sự tìm hiểu nội dung thông tin từ các
đối tượng không có quyền truy nhập chúng.
Đảm bảo tính toàn vẹn dữ liệu (data integrity) – Chức năng
này đảm bảo khả năng phát hiện sửa đổi trái phép thông tin.
Để đảm bảo toàn vẹn dữ liệu, cần có các phương pháp đơn
biến đổi giải mã tương xứng Dk∈D. Trong đó Ek: P C và: Dk: C P
là các hàm thoả mãn Dk(Ek(x)) = x với bất kỳ thông điệp x ∈ P.
Ở đây mỗi phép biến đổi mã hóa Ek được xác định bởi thuật toán mã hóa E
chung cho mọi phép biến đổi và một khóa k riêng để phân biệt với các phép biến
14
đổi khác. Tương tự, mỗi phép biến đổi giải mã Dk được xác định bởi thuật toán
giải mã D chung và một khóa k phân biệt. Yêu cầu đặt ra cho quá trình giải mã
là: Ek(x1) ≠ Ek(x2) nếu x1≠ x2. Mặt khác nếu Ek(x1) = Ek(x2) mà x1≠ x2 là giải mã
không duy nhất, và người nhận sẽ không thể quyết định thông điệp giải mã được
là x1 hay x2.
Khóa
Độ dài khóa: Độ an toàn của thuật toán mã hoá cổ điển phụ thuộc vào hai điều
đó là độ dài của thuật toán và độ dài của khoá. Nhưng độ dài của khoá dễ bị lộ
hơn. Giả sử rằng độ dài của thuật toán là lý tưởng, khó khăn lớn lao này có thể
đạt được trong thực hành. Hoàn toàn có nghĩa là không có cách nào bẻ gãy được
hệ thống mã hoá trừ khi cố gắng thử với mỗi khoá. Nếu khoá dài 8 bits thì có 2 8
= 256 khoá có thể. Nếu khoá dài 56 bits thì có 2
56
khoá có thể. Giả sử rằng siêu
máy tính có thể thực hiện 1 triệu phép tính một giây thì nó cũng sẽ cần tới 2000
năm để tìm ra khoá thích hợp. Nếu khoá dài 64 bits, thì với máy tính tương tự
cũng cần tới xấp xỉ 600,000 năm để tìm ra khoá trong số 2
tạo và lưu trữ khoá bí mật là một điều khó hơn. Kẻ thám mã thường tấn công cả
hai hệ mã hoá đối xứng và công khai thông qua hệ quản lý khoá của chúng.
Đối với hệ mã hoá công khai việc quản lý khoá dễ hơn đối với hệ mã hoá đối
xứng, nhưng nó có một vấn đề riêng duy nhất Mỗi người chỉ có một khoá công
khai, bất kể số người ở trên mạng là bao nhiêu.
Chứng
nhận khoá công khai
Chứng nhận khoá công khai là xác định khoá thuộc về một ai đó, được quản
lý bởi một người đáng tin cậy. Chứng nhận để sử dụng vào việc cản trở sự cố
gắng thay thế một khoá này bằng một khoá khác.
Quản
lý khóa phân phối
Trong một vài trường hợp, trung tâm quản lý khoá có thể không làm việc.
Quản lý khoá phân phối, sử dụng trong những chương trình miền công khai, giải
quyết vấn đề này với người giới thiệu (introducers). Người giới thiệu là một
trong những người dùng khác của hệ thống anh ta là người nhận ra khoá công
khai của bạn anh ta.
1.3. Một số yêu cầu với một hệ mật ma
Quá trình mật mã che giấu dữ liệu có thể thực hiện bằng chương trình trên
máy tính hoặc máy mật mã. Thực hiện trên máy thì tốn kém chi phí cho việc xây
dựng máy, thế nhưng nó có ưu điểm là năng suất cao, đơn giản, bảo mật… Việc
thực hiện trên chương trình thì thực tế hơn, và cho phép mềm dẻo trong sử dụng.
Không phụ thuộc vào cách thực hiện đối với một hệ mật hiện đại bảo mật
thông tin cần đảm bảo các yêu cầu sau:
1. Độ an toàn của hệ mật chống lại thám mã cần phải thỏa mãn điều kiện: Sự
phá mã chỉ thực hiện bằng cách giải bài toán vét cạn khóa, hoặc sự phá
mã cho người nhận đầu cuối. Người nhận là người thu nhận bản mã và có khóa
hợp lệ để khôi phục lại bản rõ. Một người nào đó cố gắng tiếp cận giữa người gửi
và người nhận để thu nhận được khóa mã cũng như thông tin đã trao đổi được xem
là người tấn công (còn gọi là thám mã, hay kẻ nghe lén). Kênh an toàn được hiểu
như là tổ hợp của các biện pháp về mặt tổ chức cũng như kỹ thuật để bảo đảm
18
truyền tin an toàn (ở đây để truyền khóa bí mật).
Hình 1.7. Mô hình chung của hệ mật đối xứng
Trái ngược với việc thiết kế và ứng dụng mật mã, công việc tấn công hệ
mật để tìm ra khóa K, cũng như các thông tin đã gửi được gọi là thám mã
(cryptanalysis). Thám mã cũng là công việc tìm cách phá vỡ các thuật toán mật
mã nhằm thu được các thông tin bí mật khi không có khóa. Xây dựng hệ mật an
toàn và thám mã là hai công việc trái ngược nhau, nhưng trong suốt chiều dài
lịch sử mật mã, chúng đã cùng thúc đẩy nhau làm cho khoa học mật mã không
ngừng phát triển. Như vậy, mật mã học bao gồm hai lĩnh vực là mật mã và thám
mã.
Người gửi sử dụng khóa mã hóa bản bản rõ P và tạo ra bản mã C. Bản mã
được gửi qua một kênh không an toàn. Người nhận có khóa giống với người
gửi, nhận được bản mã C và sử dụng khóa này giải mã để thu được bản rõ P.
Trước đó, khóa phải được chia sẻ (dùng chung) bằng việc sử dụng một kênh an
toàn.
Ưu điểm:
•
Tốc độ thực hiện rất nhanh do quá trình mã hóa và giải mã đều sử dụng
các phép toán trên dãy bits nhị phân đơn giản, như: AND, OR, XOR,
thông tin, do đó khó có thể ứng dụng vào các lĩnh vực có nhu cầu cần
xác định nguồn gốc của thông tin như chữ ký điện tử (digital signature)
…
•
Đối với một hệ thống lớn có nhiều đối tác giao tiếp với nhau, tạo nên sự
khó khăn trong việc quản lý khóa vì một người sử dụng phải giữ quá
nhiều khóa bí mật của các đối tác muốn trao đổi thông tin với họ.
•
Hệ mã hoá đối xứng không bảo vệ được sự an toàn nếu có xác suất cao
khoá nguời gửi bị lộ. Trong hệ khoá phải được gửi đi trên kênh an toàn
nếu kẻ địch tấn công trên kênh này có thể phát hiện ra khoá.
•
Vấn đề quản lý và phân phối khoá là khó khăn và phức tạp khi sử
dụng hệ mã hoá cổ điển. Người gửi và người nhận luôn luôn thông
nhất với nhau về vấn đề khoá. Việc thay đổi khoá là rất khó và dễ bị
20
lộ.
•
Khuynh hướng cung cấp khoá dài mà nó phải được thay đổi thường
xuyên cho mọi người trong khi vẫn duy trì cả tính an to àn lẫn hiệu
quả chi phí sẽ cản trở rất nhiều tới việc phát ừiển hệ mật mã cổ điển.
phải giữ bí mật. Vì vậy bất cứ ai đều có thể mã hóa dữ liệu bằng cách sử dụng
khóa công khai, nhưng chỉ chủ sở hữu mới có khóa riêng để thực hiện quá trình
giải mã. Nếu như vấn đề khó khăn đặt ra đối với hệ mật đối xứng chính là bài
toán trao đổi khóa thì ngược lại, hệ mật bất đối xứng giúp cho việc trao đổi khóa
trở nên dễ dàng hơn. Nội dung của khóa công khai không cần phải giữ bí mật
như đối với khóa bí mật trong các hệ mật đối xứng.
Với việc sử dụng khóa công khai, chúng ta có thể thiết lập một quy trình
an toàn để trao đổi khóa bí mật được sử dụng trong hệ thống mã hóa đối xứng.
Trong những năm gần đây, các phương pháp mã hóa khóa công khai, đặc biệt là
phương pháp RSA, được sử dụng ngày càng nhiều trong các ứng dụng mã hóa
trên thế giới và có thể xem như đây là phương pháp chuẩn được sử dụng phổ
biến nhất trên Internet, ứng dụng trong việc bảo mật thông tin liên lạc cũng như
trong lĩnh vực thương mại điện tử.
22
Hình 1.8. Chức năng bảo mật của hệ mật bất đối xứng
Hình 1.9. Chức năng xác thực của hệ mật bất đối xứng
Khi làm việc với hệ mật bất đối xứng yêu cầu mỗi người sử dụng phải
được phân phát tối thiểu hai khóa. Một khóa, được gọi là khóa riêng, ký hiệu
KRi (trong đó chỉ số i để chỉ người sử dụng), cũng còn gọi là khóa mật vì khóa
này sẽ được chủ sở hữu giữ bí mật, còn khóa kia được gọi là khóa công khai, ký
hiệu KUi, được công khai để cho các đối tác sử dụng. Hai khóa này có mối liên
23
hệ chặt chẽ với nhau, và mối quan hệ của chúng cũng thỏa mãn đặc tính “một
Trong hệ mật đối xứng, bước mã hóa và giải mã đều sử dụng chung một
khóa bí mật K, và với các giá trị của K khác nhau ta thu được các bản mã khác
nhau. Tính an toàn của hệ mật phụ thuộc vào hai yếu tố: Thuật toán phải đủ
mạnh để không thể giải mã được văn bản nếu đơn thuần chỉ dựa vào bản mã, và
tính an toàn của khóa, chứ không phải là an toàn thuật toán, tức là nếu biết bản
mã và thuật toán mã hóa nhưng không biết khóa vẫn không thể tìm được bản rõ.
Nói cách khác, ta không cần giữ bí mật thuật toán mà chỉ cần giữ bí mật khóa.
Việc giữ bí mật khóa trở thành điểm mấu chốt của hệ mật loại này, nếu vì lý do
nào đó mà khóa bị lộ thì tất cả những văn bản hai bên trao đổi với nhau cũng sẽ
bị lộ.
1.5.1.2. Vai trò của khóa trong hệ mật bất đối xứng
Để sử dụng hệ mật khóa đối xứng yêu cầu hai bên trước khi truyền tin phải
có chung một giá trị khóa, giá trị này cần phải giữ bí mật và điều này không
thuận tiện trong môi trường truyền thông công cộng như hiện nay. Vì thế người
ta đã đưa ra cách mã hóa khác, cho phép các bên trong hệ thống có thể truyền
tin cho nhau bằng cách công bố công khai thông tin cần cho việc lập mã, khiến
cho người gửi và người nhận không cần quy ước trước với nhau, và cũng không
có những bí mật chung. Bên nhận được bản mã sử dụng khóa bí mật của mình
giải mã để thu được văn bản gốc.
Mã hóa được thực hiện rất dễ dàng, bất kỳ người nào cũng có thể làm
được, còn việc giải mã rất khó khăn nếu như không có khóa riêng, còn nếu có
nó thì việc giải mã cũng dễ như việc mã hóa. Việc giữ bí mật khóa trong hệ mã
khóa công khai không còn là vấn đề lớn nữa, vì mỗi người có một khóa riêng
chỉ có chính anh ta biết mà thôi nên khả năng anh ta làm lộ gần như là không
có. Vì vậy đối với những hệ mã loại này tính an toàn của chúng nằm trong khả
năng không bị lộ của chìa khóa bí mật từ những thông tin công khai tất cả mọi
người đều có, mà điều này thì lại phụ thuộc vào độ khó của bài toán nào đó.
25