Các kết quả của khoa học mật mã ngày càng được triển khai ật thông tin ược quan tâm và có ý nghĩa hết sứcc tri n khaiển ngày càng nhanh chóng của Internet và các ứngtrong nhi u lĩnh v c
Trang 1M C L C ỤC LỤC ỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT 3
DANH MỤC HÌNH VẼ 4
LỜI MỞ ĐẦU 5
Chương 1: TỔNG QUAN VỀ LÝ THUYẾT MẬT MÃ 7
1.1 Gi i thi u chung v an toàn b o m t thông tinới thiệu chung về an toàn bảo mật thông tin ệu chung về an toàn bảo mật thông tin ề an toàn bảo mật thông tin ảo mật thông tin ật thông tin 7
1.2 Tổng quan về mật mã 12
1.2.1 Một số khái niệm cơ bản về mật mã 12
1.2.2 Biểu diễn dưới dạng toán học 15
1.3 Một số yêu cầu với một hệ mật mã 17
1.4 Giới thiệu và phân loại các hệ mật mã 19
1.4.1 Hệ mật mã đối xứng 19
1.4.2 Hệ mật bất đối xứng 22
1.5 Sự cần thiết của khóa trong các hệ mật mã 25
1.5.1 Vai trò của khóa 25
1.5.2 Vấn đề an toàn khóa trong các hệ mật mã 28
1.5.3 Quản lý khóa trong các hệ mật mã 30
Chương 2: CƠ SỞ LÝ THUYẾT VỀ THUẬT TOÁN 32
2.1 Cơ sở lý thuyết toán học 32
2.1.1 Định nghĩa số nguyên tố 32
2.1.2 Phép chia modulo 32
2.1.3 Không gian Zn và Z*n 34
2.1.4 Khái niệm phần tử nghịch đảo trong Zn 34
2.1.5 Nhóm nhân Z*n 35
2.1.6 Các phép tính cơ bản trong không gian modulo 36
2.1.7 Thuật toán tính nghịch đảo nhân trong Zn 36
2.1.8 Thuật toán tính số mũ modulo trong Zn 37
2.2 Hàm băm 39
2.2.1 Khái niệm 39
2.2.2 Yêu cầu của một hàm băm 42
2.2.3 Cấu trúc của hàm băm 42
Trang 22.2.4 Hàm băm MD5 44
2.2.5 Hàm băm SHA-1 51
2.3 Lý thuyết hệ mật mã MTA 11.15-02 55
2.4 Xây dựng thuật toán mật mã hóa công khai MTA 11.15-02 56
2.4.1 Thuật toán hình thành tham số và khóa 56
2.4.2 Thuật toán mã hóa 56
2.4.3 Thuật toán giải mã 57
2.4.4 Mức độ an toàn của thuật toán 57
2.4.5 Nhận xét về thuật toán 57
Chương 3: CÀI ĐẶT MÔ PHỎNG THUẬT TOÁN 58
3.1 Khởi tạo tham số đầu vào 58
3.1.1 Sinh số nguyên tố lớn p và phần tử sinh g 58
3.1.2 Khởi tạo cặp khóa cho bên A và bên B 59
3.1.3 Khởi tạo số ngẫu nhiên K 61
3.2 Mã hóa dữ liệu 62
3.2.1 Nhập dữ liệu cần mã hóa 62
3.2.2 Chọn file lưu dữ liệu và tính hàm băm 63
3.2.3 Mã hóa dữ liệu 63
3.3 Giải mã dữ liệu 65
3.3.1 Chọn file lưu kết quả và giải mã dữ liệu 65
3.3.2 Tính hàm băm sau khi giải mã 66
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
Trang 3DANH MỤC CÁC TỪ VIẾT TẮT
Trang 4Hình 1.3 Hacker sao chép và gửi lại 11
Hình 1.4 Hacker thay đổi thông điệp 11
Hình 1.5 Sơ đồ quá trình thực hiện 14
Hình 1.6 Sơ đồ quá trình viết bí mật thông tin 14
Hình 1.7 Mô hình chung của hệ mật đối xứng 20
Hình 1.8 Chức năng bảo mật của hệ mật bất đối xứng 23
Hình 1.9 Chức năng xác thực của hệ mật bất đối xứng 24
YHình 2.1 Sơ đồ minh họa hàm băm (HASH) ………
……40
Hình 2.2 Sơ đồ quá trình sau khi băm 41
Hình 2.3 Sơ đồ thực hiện tổng quát của thuật toán MD5 45
Hình 2.4 Minh họa thuật toán MD5 50
YHình 3.1 Sinh số nguyên tố p……… 59
Hình 3.2 Sinh phần tử sinh của thuật toán 59
Hình 3.3 Sinh khóa riêng bên gửi A 60
Hình 3.4 Sinh khóa công khai bên gửi A 60
Hình 3.5 Sinh khóa riêng bên nhận B 61
Hình 3.6 Sinh khóa công khai bên nhận B 61
Hình 3.7 Sinh số ngẫu nhiên K 62
Hình 3.8 Dữ liệu mã hóa 62
Trang 5Hình 3.9 Lưu dữ liệu và tính hàm băm 63
Hình 3.10 Mã hóa dữ liệu 64
Hình 3.11 Kiểm tra kết quả mã hóa 64
Hình 3.12 Giải mã dữ liệu 65
Hình 3.13 Kết quả mã hóa 66
Hình 3.14 Băm văn bản giải mã 66
Hình 3.15 Kiểm tra tính toàn vẹn 67
LỜI MỞ ĐẦU
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ới thiệu chung về an toàn bảo mật thông tin ự phát triển ngày càng nhanh chóng của Internet và các ứng ển ngày càng nhanh chóng của Internet và các ứng ủa Internet và các ứng ứ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ịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ệu chung về an toàn bảo mật thông tin ử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ạng, nhu cầu bảo vệ thông tin trong các hệ ầu bảo vệ thông tin trong các hệ ảo mật thông tin ệu chung về an toàn bảo mật thông tin ệu chung về an toàn bảo mật thông tin
th ng và ng d ng đi n t ngày càng đứng ệu chung về an toàn bảo mật thông tin ử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ược quan tâm và có ý nghĩa hết sứcc quan tâm và có ý nghĩa h t s cết sức ứng
Trang 6quan tr ng Các k t qu c a khoa h c m t mã ngày càng đọng Các kết quả của khoa học mật mã ngày càng được triển khai ết sức ảo mật thông tin ủa Internet và các ứng ọng Các kết quả của khoa học mật mã ngày càng được triển khai ật thông tin ược quan tâm và có ý nghĩa hết sứcc tri n khaiển ngày càng nhanh chóng của Internet và các ứngtrong nhi u lĩnh v c khác nhau c a đ i s ng, xã h i, trong đó ph i k đ nề an toàn bảo mật thông tin ự phát triển ngày càng nhanh chóng của Internet và các ứng ủa Internet và các ứng ời sống, xã hội, trong đó phải kể đến ội, trong đó phải kể đến ảo mật thông tin ển ngày càng nhanh chóng của Internet và các ứng ết sức
r t nhi u nh ng ng d ng đa d ng trong lĩnh v c dân s , thề an toàn bảo mật thông tin ững ứng dụng đa dạng trong lĩnh vực dân sự, thương mại Các ứng ạng, nhu cầu bảo vệ thông tin trong các hệ ự phát triển ngày càng nhanh chóng của Internet và các ứng ự phát triển ngày càng nhanh chóng của Internet và các ứng ương mại Cácng m i Cácạng, nhu cầu bảo vệ thông tin trong các hệ
ng d ng mã hóa thông tin cá nhân, trao đ i thông tin kinh doanh, th cứng ổi thông tin kinh doanh, thực ự phát triển ngày càng nhanh chóng của Internet và các ứng
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ệu chung về an toàn bảo mật thông tin ịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ệu chung về an toàn bảo mật thông tin ử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ạng, nhu cầu bảo vệ thông tin trong các hệ ở nên gần gũi và quen thuộc với ầu bảo vệ thông tin trong các hệ ội, trong đó phải kể đến ới thiệu chung về an toàn bảo mật thông tin
m i ngọng Các kết quả của khoa học mật mã ngày càng được triển khai ười sống, xã hội, trong đó phải kể đếni
Cùng v i s phát tri n c a khoa h c máy tính và Internet, các nghiênới thiệu chung về an toàn bảo mật thông tin ự phát triển ngày càng nhanh chóng của Internet và các ứng ển ngày càng nhanh chóng của Internet và các ứng ủa Internet và các ứng ọng Các kết quả của khoa học mật mã ngày càng được triển khai
c u và ng d ng c a m t mã h c ngày càng tr nên đa d ng h n, m raứng ứng ủa Internet và các ứng ật thông tin ọng Các kết quả của khoa học mật mã ngày càng được triển khai ở nên gần gũi và quen thuộc với ạng, nhu cầu bảo vệ thông tin trong các hệ ơng mại Các ở nên gần gũi và quen thuộc vớinhi u hề an toàn bảo mật thông tin ưới thiệu chung về an toàn bảo mật thông tinng nghiên c u chuyên sâu vào t ng lĩnh v c ng d ng đ c thùứng ừng lĩnh vực ứng dụng đặc thù ự phát triển ngày càng nhanh chóng của Internet và các ứng ứ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ới thiệu chung về an toàn bảo mật thông tin ững ứng dụng đa dạng trong lĩnh vực dân sự, thương mại Các ặc thù ư Ứng dụng của khoa học mật mã không chỉ đơn ủa Internet và các ứng ọng Các kết quả của khoa học mật mã ngày càng được triển khai ật thông tin ỉ đơn ơng mại Cácthu n là mã hóa và gi i mã thông tin mà còn bao g m nhi u v n đ khácầu bảo vệ thông tin trong các hệ ảo mật thông tin ồm nhiều vấn đề khác ề an toàn bảo mật thông tin ề an toàn bảo mật thông tinnhau c n đầu bảo vệ thông tin trong các hệ ược quan tâm và có ý nghĩa hết sứcc nghiên c u và gi i quy t, ví d nh ch ng th c ngu n g cứng ảo mật thông tin ết sức ư ứng ự phát triển ngày càng nhanh chóng của Internet và các ứng ồm nhiều vấn đề khác
n i dung thông tin (kỹ thu t ch ký đi n t ), ch ng nh n tính xác th c vội, trong đó phải kể đến ật thông tin ững ứng dụng đa dạng trong lĩnh vực dân sự, thương mại Các ệu chung về an toàn bảo mật thông tin ử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ứng ật thông tin ự phát triển ngày càng nhanh chóng của Internet và các ứng ề an toàn bảo mật thông tin
người sống, xã hội, trong đó phải kể đến ở nên gần gũi và quen thuộc với ững ứng dụng đa dạng trong lĩnh vực dân sự, thương mại Cáci s h u mã khóa (ch ng nh n khóa công c ng), các quy trình giúpứng ật thông tin ội, trong đó phải kể đếntrao đ i thông tin và th c hi n giao d ch đi n t an toàn trên m ng.ổi thông tin kinh doanh, thực ự phát triển ngày càng nhanh chóng của Internet và các ứng ệu chung về an toàn bảo mật thông tin ịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ệu chung về an toàn bảo mật thông tin ử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ạng, nhu cầu bảo vệ thông tin trong các hệ
Ngoài những lợi ích to lớn Internet đem lại cho xã hội Internet còn tạođiều kiện cho các hacker có thể xâm nhập vào hệ thống các máy chủ, để tìmkiếm và đánh cắp thông tin nhằm phục vụ cho lợi ích riêng của mình Hơn nữa,khi thực hiện trao đổi qua mạng Internet, người nhận không thể xác thực đượcnguồn gốc của thông tin, dẫn đến tình trạng thông tin dễ bị giả mạo bởi ngườikhác
Vì vậy trước những yêu cầu cấp thiết đó, vấn đề đặt ra ở đây là làm thếnào để bảo vệ được các thông tin quan trọng, ngăn chặn được những hình thứctấn công, truy xuất dữ liệu bất hợp pháp vào mạng nội bộ Bên cạnh đó làm thếnào để khi trao đổi thông tin qua mạng phải bảo đảm thông tin dữ liệu không bịlàm sai lệch và không bị lộ do sự xâm nhập của kẻ tấn công Việc nghiên cứu vàứng dụng giải pháp mật mã là cách tốt nhất có thể đáp ứng đầy đủ những vấn đềđặt ra theo yêu cầu
Trang 7Chương 1 TỔNG QUAN VỀ LÝ THUYẾT MẬT MÃ 1.1 Gi i thi u chung v an toàn b o m t thông tin ới thiệu chung về an toàn bảo mật thông tin ệu chung về an toàn bảo mật thông tin ề an toàn bảo mật thông tin ảo mật thông tin ật thông tin
Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn đề antoàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩ đếncá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ó đượcchuyể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àiliệ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ểncủ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
Trang 8và 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ậtthô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ênmá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 (NetworkSecurity)
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 từ bên ngoài (System Security)
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến
bộ về điện tử viễn thông và công nghệ thông tin không ngừng được phát triểnứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm, ýtưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới Bảo vệ an toànthông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trongthực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thôngtin dữ liệu Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy
tụ vào ba nhóm sau:
- Bảo vệ thông tin bằng các biện pháp hành chính
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng)
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp với nhau.Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương
dễ xâm nhập nhất đó là môi trường mạng và truyền tin Biện pháp hiệu quả nhấtvà kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện phápthuật toán Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trênmạng máy tính có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoántrước các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thểxảy ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin
Trang 9cũng như trên mạng Xác định càng chính xác các nguy cơ nói trên thì càngquyết định được tốt các giải pháp để giảm thiểu các thiệt hại
Có hai loại hình thức tấn công xâm phạm thông tin dữ liệu đó là: Tấn côngthụ động và tấn công chủ động
theo dõi việc truyền tải các thông điệp nhằm có được thông tin nào đó
Hình 1.1 Hacker nghe trộm nội dungHai 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ấunội dung của thông điệp để kẻ xấu dù có lấy được thông điệp cũngkhô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
Trang 10mã hóa thích hợp nhưng kẻ xấu vẫn có thể nhìn thấy kiểu mẫu củanhữ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ìnhtruyền thông và có thể biết được tần suất xuất hiện và độ dài của cácthô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.
Đố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ởichú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
mạnh rằng việc đối phó với các loại tấn công bị động thì ngăn chặn tốt hơn là phát hiện.
dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm
đó hoặc sau đó một thời gian Chúng có thể được phân chia thành bốn loại:Giả mạo, truyền lại thông điệp, thay đổi thông điệp, và từ chối dịch vụ
Giả mạo: Xảy ra khi một thực thể đóng giả làm một thực thể khác Trongmột cuộc tấn công kiểu này thường có luôn một trong các dạng còn lại củatấn công chủ động
Trang 11Hình 1.2 Hacker giả mạo người gửi
Trang 12 Truyền lại thông điệp: Liên quan tới việc bắt lấy các dữ liệu và sau đótruyền lại chúng để tạo ra các kết quả mà hệ thống mục tiêu không hềmong đợi và cho phép Trong trường hợp này cũng gây tác hại không kém
so với việc giả mạo thông điệp
Hình 1.3 Hacker sao chép và gửi lại
Trang 13 Thay đổi thông điệp: Một số phần của một thông điệp hợp lệ bị thay đổi,hoặc thông điệp đó bị cản trở hoặc bị ghi nhận lại (và sau đó bị thay đổi)
để nhằm tạo ra một kết quả trái phép Ví dụ, một thông điệp có nội dung là
“Cho phép Anh đọc tập tin mật có tên Passwork” 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ôngthườ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 đâucũng không thể đảm bảo là tuyệt đối an toàn
Trang 141.2 Tổng quan về mật mã
1.2.1 Một số khái niệm cơ bản về mật mã
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àoviệ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ụngtrong đờ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ênthế 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ựcdâ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ứuvà ứ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ềuhướ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óavà giải mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiêncứ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ýđiện tử), chứng nhận tính xác thực về người sở hữu khóa mã (chứng thực khóacông khai), các quy trình giúp trao đổi thông tin và thực hiện giao dịch điện tử
an toàn trên mạng, Những kết quả nghiên cứu về mật mã cũng đã được đưavào trong các hệ thống phức tạp hơn, kết hợp với những kỹ thuật khác để đápứng yêu cầu đa dạng của các hệ thống ứng dụng khác nhau trong thực tế, ví dụnhư hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản
lý an ninh của các đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấpdịch vụ multimedia trên mạng với yêu cầu cung cấp dịch vụ và bảo vệ bảnquyền sở hữu trí tuệ đối với thông tin số…
Trang 15Trong m t mã h c, mã hóa là phật thông tin ọng Các kết quả của khoa học mật mã ngày càng được triển khai ương mại Cácng pháp đ bi n thông tin (phimển ngày càng nhanh chóng của Internet và các ứng ết sức
nh, văn b n, hình nh ) t đ nh d ng bình th ng sang d ng thông tinảo mật thông tin ảo mật thông tin ảo mật thông tin ừng lĩnh vực ứng dụng đặc thù ịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ạng, nhu cầu bảo vệ thông tin trong các hệ ười sống, xã hội, trong đó phải kể đến ạng, nhu cầu bảo vệ thông tin trong các hệ
không th hi u đển ngày càng nhanh chóng của Internet và các ứng ển ngày càng nhanh chóng của Internet và các ứng ược quan tâm và có ý nghĩa hết sứcc n u không có phết sức ương mại Cácng ti n gi i mã.ệu chung về an toàn bảo mật thông tin ảo mật thông tin Có th khái quátển ngày càng nhanh chóng của Internet và các ứng
m t s khái ni m và ch c năng c b n c a m t mã h c hi n đ i:ội, trong đó phải kể đến ệu chung về an toàn bảo mật thông tin ứng ơng mại Các ảo mật thông tin ủa Internet và các ứng ật thông tin ọng Các kết quả của khoa học mật mã ngày càng được triển khai ệu chung về an toàn bảo mật thông tin ạng, nhu cầu bảo vệ thông tin trong các hệ
Bản rõ (plaintext or cleartext): chứa các xâu kí tự gốc, lưu thông tin
chưa mã hóa (có thể đọc được) thông tin trong bản rõ là thông tin cầnmã hóa để giữ bí mật
Bản mã (Ciphertext): Chứa các ký tự sau khi đã được mã hoá, mà nội
dung được giữ bí mật
Mật mã học (Cryptography): là một môn khoa học nghiên cứu cách
viết bí mật Là ngành khoa học nghiên cứu việc ứng dụng toán họcvào biến đổi thông tin nhằm mục đích bảo vệ thông tin khỏi sự truycập của những người không có thẩm quyền Có thể hiểu một cách kháiquát, đó là phương thức đảm bảo sự bí mật cho thông tin tại nơi lưutrữ cũng như khi truyền đi trên mạng Cho dù sự trao đổi này diễn ratrê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ôngtin
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ã
Trang 16Hì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 vấn đề xem trộm thông tin Giải quyết vấn đề bảo vệ thông tin chốnglại sự tìm hiểu nội dung thông tin từ các đối tượng không có quyền truynhập chúng
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 giản và tin cậy phát hiện bất kỳ sựcan thiệp không mong muốn vào dữ liệu (các can thiệp như chèn, xóa vàthay thế trong bản tin)
Trang 17 Đảm bảo tính xác thực (authentication) – Tính xác thực ngăn chặn
các hình thức tấn công thay đổi thông điệp, giả mạo và truyền lại thôngđiệp, chức năng này có liên hệ với sự định danh Vì thế nó được thực hiệnxác thực trên cả thực thể (hai đối tượng trong một phiên liên lạc sẽ địnhdanh lẫn nhau) và bản thân thông tin (thông tin được truyền trên kênhtruyền sẽ được xác thực về nguồn gốc, nội dung, thời gian gửi, ) Vì thếvấn đề xác thực trong mật mã được chia thành hai lớp chính – xác thựcthực thể và xác thực nguồn gốc dữ liệu
Đảm bảo chống chối từ (non-repudiation) – chức năng này ngăn ngừa
một thực thể từ chối (phủ nhận) một cam kết hoặc hành động trước đó Khixuất hiện tranh chấp vì một thực thể từ chối một hành động chắc chắn đãxảy ra, một biện pháp giải quyết là cần thiết
1.2.2 Biểu diễn dưới dạng toán học
Định nghĩa: Hệ thống mật mã, là một bộ bao gồm năm thành phần ( P, C,
K, E, D ) thỏa mãn các điều kiện sau:
Với mỗi khóa k K, có một phép biến đổi mã hóa E k E và một phép
biến đổi giải mã tương xứng D kD Trong đó Ek: P C và: Dk: C Plà 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 E k đượ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 đổi khác Tương tự, mỗi phép biến đổi giải mã D k đượ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ã
Trang 18là: 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ã đượclà x1 hay x2.
Khóa
Đ dài 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 bitsthì có 28 = 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ầntớ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ínhtương tự cũng cần tới xấp xỉ 600,000 năm để tìm ra khoá trong số 2 64 khoá cóthể Nếu khoá dài 128 bits, nó cần tới 10 25 năm , trong khi vũ trụ của chúng tachỉ tồn tại cỡ 1010 năm Như vậy với 10 25 năm có thể là đủ dài Trước khi bạngửi đi phát minh hệ mã hoá với 8 Kbyte độ dài khoá, bạn nên nhớ rằng một nửakhác cũng không kém phần quan trọng đó là thuật toán phải an toàn nghĩa làkhông có cách nào bẻ gãy trừ khi tìm được khóa thích hợp
Giả sử rằng một vài kẻ thám mã có thể biết hết tất cả chi tiết về thuật toáncủa bạn Giả sử rằng họ có rất nhiều bản mã, như họ mong muốn Giả sử họ cómột khối lượng bản rõ tấn công với rất nhiều dữ liệu cần thiết Thậm chí giả sửrằng họ có thể lựa chọn bản rõ tấn công Nếu như hệ thống mã hoá của có thể
dư thừa độ an toàn trong tất cả mọi mặt, thì bạn đã có đủ độ an toàn bạn cần
Quản lý khóa công khai
Trong thực tế, quản lý khoá là vấn đề khó nhất của an toàn hệ mã hoá Đểthiết kế an toàn thuật toán mã hoá là một việc là không phải dễ dàng nhưng để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
Trang 19Đối với hệ mã hoá công khai việc quản lý khoá dễ hơn đối với hệ mã hoá đốixứng, nhưng nó có một vấn đề riêng duy nhất Mỗi người chỉ có một khoá côngkhai, 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ảiquyết vấn đề này với người giới thiệu (introducers) Người giới thiệu là mộttrong những người dùng khác của hệ thống anh ta là người nhận ra khoá côngkhai của bạn anh ta
1.3 Một số yêu cầu với một hệ mật mã
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ênmá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âydự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ệcthự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ậtthô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à đòi hỏi những tham số vượt quá giới hạn cho phép của máy tính hiệnđại hoặc cần tạo ra thiết bị tính toán đắc tiền
2 Độ an toàn của hệ mật cần được đảm bảo không phải là bí mật về thuậttoán mà là bí mật về khóa
3 Bản mã chỉ đọc được khi có khóa mật
Trang 204 Hệ mật phải vững chắc ngay cả khi tội phạm biết được số lượng đủ lớnbản rõ và bản mã tương ứng.
5 Khi thay đổi lượng nhỏ thông tin khóa hoặc bản rõ thì cần phải dẫnđến sự thay đổi bản mã
6 Cấu trúc thành phần thuật toán mật mã cần phải không đổi
7 Kích thước bản mã không được vượt so với kích thước bản rõ, Các bitthêm vào bản tin trong quá trình mã hóa cần phải hoàn toàn và chắc chắndấu kín trong bản mã
8 Lỗi xuất hiện khi mã hóa không được dẫn đến thay đổi và đánh mấtthông tin
9 Sự phụ thuộc giữa các khóa con được dùng tuần tự trong quá trình mãhóa không được thiết lập dễ dàng và đơn giản
10 Đảm bảo tính tuyến tính của không gian khóa
11 Thời gian mã không được lớn
12 Chi phí khi mã cần phải phù hợp với giá trị của thông tin cần bảo vệ
Ví dụ: Quy tắc Kerckhoffs
Trong tác phẩm "Mật mã quân sự" (xuất bản năm 1833), Kerckhoffs đề racác yêu cầu bắt buộc cho một hệ mật Sau đây là 6 yêu cầu chính trong số đó:
1 Nếu hệ mật không phải "tuyệt đối an toàn" thì phải là "thực sự an toàn
2 Không cần thiết phải giữ bí mật bản thân hệ mật Việc đối phương cóđược hệ mật không ảnh hưởng đến hoạt động của hệ thống
3 Khóa có thể dễ dàng truyền đi, ghi nhớ mà không cần phải ghi chép.Các đối tác có thể thay đổi khóa theo nguyện vọng của họ
4 Có thể áp dụng hệ mật cho điện tín
5 Hệ mật phải có tính lưu động Để đảm bảo hoạt động của nó chỉ cần 1người là đủ
Trang 216 Hệ mật phải đơn giản về mặt vận hành: việc vận hành hề mật khôngđòi hỏi sự tuân thủ số lượng lớn các quy tắc, không gây ra căng thẳngcho đầu óc
Trong 6 yêu cầu trên đây, yêu cầu thứ 2 được biết đến dưới cái tên "quytắc Kerckhoffs" (Kerckhoffs' principle) Nói cách khác thì quy tắc Kerckhoffs là
"Độ an toàn của một hệ mật chỉ được phép phụ thuộc vào sự bí mật của khóa"
1.4 Giới thiệu và phân loại các hệ mật mã
1.4.1 Hệ mật mã đối xứng
Hệ mật đối xứng còn được gọi là hệ mật thông thường (hệ mật truyềnthống) hay hệ mật khóa bí mật hoặc mật mã khóa bí mật Trong hệ thống mãhóa đối xứng, quá trình mã hóa và giải mã một thông điệp sử dụng cùng một mã
khóa gọi là khóa bí mật (secret key) hay khóa đối xứng (symmetric key) Do đó,
vấn đề bảo mật thông tin đã mã hóa hoàn toàn phụ thuộc vào việc giữ bí mật nộidung của khóa được sử dụng
Đặc tính quan trọng của một hệ mã hóa đối xứng là tính an toàn của hệ mã.Như đã thấy ở phần mã hóa Ceasar, từ một bản mã có thể dễ dàng suy ra đượcbản rõ ban đầu mà không cần biết khóa bí mật Hành động đi tìm bản rõ từ bản
mã mà không cần khóa như vậy được gọi là hành động phá mã (cryptanalysis).
Do đó một hệ mã hóa đối xứng được gọi là an toàn khi và chỉ khi nó không thể
bị phá mã (điều kiện lý tưởng) hoặc thời gian phá mã là bất khả thi
Người gửi là người sử dụng thực hiện mã hóa bản rõ thành bản mã và gửi bảnmã cho người nhận đầu cuối Người nhận là người thu nhận bản mã và có khóahợ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ửivà người nhận để thu nhận được khóa mã cũng như thông tin đã trao đổi được xemlà 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ểunhư 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 đảmtruyền tin an toàn (ở đây để truyền khóa bí mật)
Trang 22Hình 1.7 Mô hình chung của hệ mật đối xứngTrá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 antoàn và thám mã là hai công việc trái ngược nhau, nhưng trong suốt chiều dàilịch sử mật mã, chúng đã cùng thúc đẩy nhau làm cho khoa học mật mã khôngngừ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ámmã
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ườigử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 antoàn
Tốc độ thực hiện rất nhanh do quá trình mã hóa và giải mã đều sử dụngcác phép toán trên dãy bits nhị phân đơn giản, như: AND, OR, XOR,SHIFT (phép dịch), ROTATE (phép quay), || (phép nối),… gần với lệnhmã máy
Trang 23 Dễ dàng thực hiện trên các ứng dụng cho cả phần cứng, lẫn phần mềm.
Do tính chất đơn giản của các phép toán trên dãy bits nhị phân
Chiều dài của bản mã (ciphertext) bằng với chiều dài bản rõ (plaintext)
vì không sinh thêm những thông tin phụ trong quá trình mã hóa và giảimã
Nhược điểm chính của các hệ này, là khóa bí mật được truyền đi trênmôi trường mạng Cho nên vẫn tồn tại nguy cơ khóa bí mật có thể bịđánh cắp Vì vậy đòi hỏi công việc quản lý khóa là rất phức tạp, phảidùng thêm các cơ chế và giải thuật khác trong việc quản lý, trao đổi khóagiữa các đối tác
Không có tính chất xác định được chủ nhân của thông tin đã mã hóa,cũng như không có tính chất không thể phủ nhận (non-repudiation)thông tin, do đó khó có thể ứng dụng vào các lĩnh vực có nhu cầu cầnxá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 caokhoá nguời gửi bị lộ Trong hệ khoá phải được gửi đi trên kênh an toànnế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ớinhau về vấn đề khoá Việc thay đổi khoá là rất khó và dễ bị lộ
Khuynh hướng cung cấp khoá dài mà nó phải được thay đổi thườngxuyê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
Trang 24 Sự bảo mật của một hệ mật đối xứng là một hàm với hai tham số:Chiều dài của khóa và sức mạnh của thuật toán Do đó, chiều dài khóa được
chọn phải đủ lớn để chống lại các cuộc tấn công vét cạn (brute-force).
Trang 251.4.2 Hệ mật bất đối xứng
Hệ mật bất đối xứng (Asymmetrical Cryptosystems), còn được gọi là hệ mật
khóa công khai hay mật mã khóa công khai, là hệ mật sử dụng hai khóa khácnhau nhưng liên quan về mặt toán học với nhau: Một khoá để giải mã còn gọi là
khóa riêng (private key) sau đó dùng một khoá khác để mã hóa còn gọi là khóa công khai (public key), nghĩa là khoá để mã hoá và giải mã là khác nhau Các
khoá này tạo nên từng cặp chuyển đổi ngược nhau và thỏa mãn đặc tính "mộtchiều" Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để giải mã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ụngkhóa công khai, nhưng chỉ chủ sở hữu mới có khóa riêng để thực hiện quá trìnhgiả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àitoá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óatrở 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ậtnhư đố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óatrê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ử
Trang 26Hì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ứngKhi 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
KR i (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 KU i, được công khai để cho các đối tác sử dụng Hai khóa này có mối liên
Trang 27hệ 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ộtchiều” Các hệ mật với khóa công khai có hai chức năng chính: Bảo mật và xácthực, tùy thuộc vào việc sử dụng các khóa như thế nào, như được biểu diễn trênhình 1.2 và 1.3.
Các hệ mật thông dụng nhất sử dụng khóa công khai là:
Hệ mật bất đối xứng được đưa ra bởi Diffie - Hellman vào năm 1976 vớimục đích dùng để trao đổi khóa trong hệ mật đối xứng, do đó nó còn biếtđến với tên giao thức trao đổi khóa Diffie - Hellman (Diffie - HellmanKey Exchange - DHKE)
RSA, phát minh bởi Ronald Rivest, Adi Shamir và Len Adleman vào năm1978
Thuật toán MTA 11.15-02, được tìm hiểu, xây dựng và mô tả dựa trên giaothức DHKE
Mật mã đường cong Elliptic (Elliptic curve cryptography - ECC) dựa trêncấu trúc đại số của các đường cong elliptic trên các trường hữu hạn, đượcđề xuất bởi Neal Koblitz và Victor S Miller vào năm 1985
1.5 Sự cần thiết của khóa trong các hệ mật mã
1.5.1 Vai trò của khóa
1.5.1.1 Vai trò của khóa trong hệ mật đối xứng
Một đặc tính quan trọng của mã hóa đối xứng là khóa phải được giữ bí mậtgiữa người gởi và người nhận, hay nói cách khác khóa phải được chuyển mộtcách an toàn từ người gửi đến người nhận Có thể đặt ra câu hỏi là nếu đã cómột kênh an toàn để chuyển khóa như vậy thì tại sao không dùng kênh đó đểchuyển bản tin, tại sao cần đến chuyện mã hóa? Câu trả lời là nội dung bản tinthì có thể rất dài, còn khóa thì thường là ngắn Ngoài ra một khóa còn có thể ápdụng để truyền tin nhiều lần Do đó nếu chỉ chuyển khóa trên kênh an toàn thì
đỡ tốn kém chi phí
Trang 28Trong hệ mật đối xứng, bước mã hóa và giải mã đều sử dụng chung mộtkhó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ácnhau 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ảnmã 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ý donà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ôngthuậ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ềntin cho nhau bằng cách công bố công khai thông tin cần cho việc lập mã, khiếncho 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ìnhgiả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êngchỉ 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 đó
Trang 29Ví dụ: Tính tích hai số nguyên tố lớn n = pq; dễ dàng nhân hai số nguyên
tố lớn p, q để thu được tích n của chúng, nhưng bài toán sẽ là khó nếu cho giá trị tích n, xác định các nhân tử nguyên tố p, q của nó
Hay như bài toán nếu có số nguyên tố p, nhóm nhân Z*p theo modulo p và
một phần tử sinh α của nhóm nhân này, ta dễ dàng tính được β = α x mod p Z *p
, với x là giá trị bất kỳ Nhưng nếu ngược lại biết β, α , p khó tìm được số nguyên x (0 ≤ x ≤ p - 2) sao cho α x = βmod p.
Tuy nhiên, đến nay chưa có chứng minh bằng toán học nào chỉ ra rằngđây thực sự là các bài toán khó, hoặc không thể giải trong thời gian chấp nhậnđược
1.5.1.3 Vai trò của khóa trong sơ đồ định danh và xác nhận danh tính
Xưng danh và xác nhận danh tính là thuật ngữ ngày nay đang được nhắcđến rất nhiều, nó đảm bảo rằng bên nhận văn bản đúng là bên ta định nhằm tới,hay chắc chắn rằng các thao tác trên văn bản là do bên được phép thực hiện.Cho đến giữa những năm 1970 người ta vẫn còn cho rằng xưng danh và xácnhận danh tính với mã hóa thực chất là cùng một mục tiêu an toàn thông tin.Nhưng cùng với sự khám phá ra hàm băm, chữ ký điện tử, người ta nhận ra rằng
đó là hai mục tiêu an toàn thông tin hoàn toàn độc lập Xưng danh và xác nhậndanh tính rất cần thiết trong các hoạt động thông tin, đặc biệt là khi các hoạtđộng này thông qua mạng
Trang 30Mục tiêu an toàn của việc xưng danh là bảo đảm sao cho khi “nghe” mộtchủ thể A nào đó xưng danh với chủ thể B, bất kỳ ai khác A cũng không thể sau
đó mạo nhận mình là A, kể cả chính B Nói cách khác, A muốn chứng minh đểbên kia B xác nhận danh tính của mình mà không để lộ bất kỳ thông tin gì vềmình Việc xưng danh thường phải thông qua một giao thức hỏi - đáp nào đó,nhờ đó B có thể xác nhận danh tính của A: B hỏi A, A trả lời để chứng tỏ cho Bbiết là A có sở hữu một bí mật riêng nào đó Vấn đề an toàn của sơ đồ xưngdanh là phải đảm bảo để sau khi A xưng danh với B, thì bất kỳ người nào kháckhông thể mạo nhận mình là A kể cả B Nói cách khác, A không để lộ mộtthông tin gì về bí mật mà A có ngoài thông tin duy nhất là A sở hữu bí mật đó
Sự an toàn của sơ đồ xưng danh cũng nằm trong tính khó giải của các bàitoán nào đó, hay dựa trên hàm một chiều nào đó
1.5.1.4 Vai trò của khóa trong hệ xác nhận và chữ ký điện tử
Như ta đã nói ở trên bài toán bảo mật được đáp ứng bằng các giải pháp mậtmã Tuy nhiên giờ đây người nhận còn muốn kiểm thử tính xác thực nguồn gốccủa thông tin, cũng như chắc chắn là thông tin đã không bị thay đổi trong quátrình truyền đi, và nhất là cần ràng buộc danh tính của bên đã gửi thông tin đi đểsau đó anh ta không thể thoái thác là mình không gửi văn bản đó Những yêucầu này được đáp ứng bằng cách sử dụng chữ ký điện tử
Chữ ký điện tử có cùng mục đích như chữ ký viết tay, tuy nhiên nếu chữ
ký viết tay dễ dàng giả mạo được thì chữ ký điện tử lại rất khó giả mạo, cộngthêm nó chứng nhận nội dung của thông tin cũng như là danh tính của ngườigửi
Sơ đồ chữ ký điện tử cơ bản được mô tả như dưới đây:
1 Người gửi (chủ nhân của văn bản) tạo chữ ký trên văn bản bằng khóariêng của mình
2 Người gửi chuyển văn bản cùng chữ ký cho người nhận
Trang 313 Người nhận văn bản sử dụng khóa công khai của người gửi kiểm thửchữ ký trên văn bản nhận được
Chữ ký không thể làm giả được vì chỉ có duy nhất người gửi có khóa bímật để ký, và cũng không ai giả mạo được vì không có khóa bí mật Văn bản đã
ký không thể thay đổi nội dung được nữa Người đã ký thì không thể thoái thác
“chữ ký” của mình
Bài toán xác nhận với chữ ký điện tử, theo nghĩa nào đó, có thể xem là
“đối ngẫu” với bài toán mã hóa bằng hệ mã công khai Và vì thế nên sự an toàncủa các sơ đồ ký cũng giống như thuật toán mã hóa khóa công khai phụ thuộcvào độ khó của bài toán nào đó
1.5.2 Vấn đề an toàn khóa trong các hệ mật mã
1.5.2.1 Vấn đề an toàn của khóa trong hệ mật đối xứng
Quá trình truyền tin của hai bên A và B sử dụng hệ mật khóa đối xứng cóthể được mô tả như sau:
1 A và B thỏa thuận về hệ mã
2 A và B thỏa thuận khóa dùng chung
3 A sử dụng thuật toán và khóa đã thỏa thuận mã hóa văn bản M muốn gửi
cho B
4 A gửi cho B bản mã hóa đó
5 B giải mã văn bản nhận được từ A bằng thuật toán và khóa đã thỏa
thuận với A để thu được bản rõ M.
Đối phương O nào đó trên đường truyền muốn có được văn bản M, nếu anh
ta nghe đường truyền ở bước 4, anh ta sẽ phải có gắng phân tích bản mã để thuđược bản rõ Tuy nhiên giờ đây chúng ta có rất nhiều thuật toán để không chophép O thực hiện mong muốn của mình Nhưng O không chịu lùi bước, anh ta cốgắng nghe đường truyền từ bước 2, và nếu như hai người không có một biệnpháp bảo vệ nào cho khóa thì những gì mà B có được thì O cũng có
Trang 32Việc mã hóa thông tin bằng hệ mã đối xứng sử dụng khóa dùng chung cho
cả hai công việc lập mã và giải mã, đặt ra yêu cầu là làm thế nào để hai bên cóthể có chung một giá trị bí mật mà không có bên nào khác có thể biết được Tavừa nói rằng với những hệ mật đối xứng thì giai đoạn A và B thống nhất vớinhau về khóa chung sẽ sử dụng là khâu yếu nhất Nếu khóa này mà bị lộ khôngnhững kẻ gian biết được thông tin hai bên trao đổi với nhau mà còn có thể đónggiả “bên này” để đánh lừa “bên kia” Giải pháp đơn giản nhất là sử dụng khóaphiên chỉ có hiệu lực trong khoảng thời gian nhất định Tuy nhiên đó khôngphải là cách làm hay, và không khắc phục tận gốc vấn đề Giải quyết bài toánnày càng khó khăn hơn khi ta biết rằng việc trao đổi khóa một cách tuyệt mật(có giá trị hơn dữ liệu) trong môi trường công cộng là vô cùng khó
1.5.2.2 Vấn đề an toàn của khóa trong hệ mật bất đối xứng.
Việc tính toán lập mã được công bố công khai (để mọi người trong mạng
có thể thực hiện được) Việc giải mã thì chỉ có người có chìa khóa riêng, bí mậtmới có thể thực hiện được Quá trình để A gửi thông tin cho B sử dụng hệ mậtbất đối xứng như sau:
1 A và B thống nhất với nhau về hệ mật bất đối xứng sẽ sử dụng
2 B gửi khóa công khai của mình cho A (hoặc A lấy được khóa công khaicủa B từ cơ sở dữ liệu công khai đặt ở một nơi nào đó)
3 A sử dụng khóa công khai của B để mã hóa văn bản rồi gửi cho B
4 B dùng khóa bí mật của mình để giải mã văn bản nhận được từ A
Trang 33Với những hệ mã khóa loại này phải đảm bảo dù kẻ tấn công có biết thuậttoán và khóa công khai nhưng không biết khóa bí mật vẫn khó tìm được cáchgiải mã
Trong trường hợp dữ liệu khóa công khai được các bên lấy từ một máy chủnào đó ở xa, giao thức chỉ an toàn nếu giải quyết được kiểu tấn công kẻ đứnggiữa Nếu O có khả năng trao đổi khóa trên cơ sở dữ liệu (CSDL) khóa côngkhai thì người đó dễ dàng thu được toàn bộ thông tin mà A gửi cho B Muốnlàm được việc này, anh ta chỉ việc lấy khóa công khai của mình tráo vào khóacông khai của B; khi A lấy chìa này để mã hóa thông tin gửi cho B, sẽ bị O thuđược và giải mã; sau khi đọc xong thông tin anh ta sẽ mã hóa bằng khóa côngkhai của B rồi gửi cho B; B vẫn nhận thông tin mà A gửi nhưng không biết là Ođã nghe trộm toàn bộ thông tin này Vẫn bằng cách này O cũng nghe được toàn
bộ thông tin mà B gửi cho A
Điểm yếu của hệ thống là khi A lấy khóa công khai của B để mã hóa thôngtin mà không biết khóa đó có thực sự là của B hay không? Đặt ra yêu cầu ở đâylà phải khắc phục được tình trạng này Thêm nữa, nếu giả thiết rằng không một
kẻ tấn công nào có thể truy nhập được vào CSDL trên máy chủ, thì khả năng Anhận được một khóa “giả mạo” từ trung tâm vẫn có thể xảy ra nếu như O thuđược các văn bản trên đường chuyển về cho A
1.5.3 Quản lý khóa trong các hệ mật mã
Việc thiết kế và thực hiện một hệ mật mã an toàn không phải là một quitrình dễ dàng Nó đòi hỏi phải có kiến thức toán học và kỹ thuật sâu rộng Nhưtrên đã phân tích, sự bảo mật của khóa (hoặc cặp khóa) mang tính quyết địnhhơn, nó biểu thị sự bảo mật của hệ mật đối xứng và hệ mật bất đối xứng Do đó,các hoạt động của khóa phải được quản lý riêng biệt
Quản lý khóa đối phó với các hoạt động khác nhau trên khóa như tạo, hủy,lưu trữ, trao đổi và công bố
Trang 34 Việc tạo, hủy và lưu trữ các khóa là các xử lý chung cho cả hai
hệ mật đối xứng và bất đối xứng
Việc công bố (khóa công khai) là vấn đề chỉ dành cho hệ mật bất đốixứng (phân phối khóa công khai)
Việc trao đổi khóa chỉ được yêu cầu bởi hệ mật đối xứng (phân phốikhóa bí mật)
Công bố khóa không gây ra một bài toán bí mật bởi vì khóa được công bố
có sẵn cho tất cả mọi người Nhưng nó gây ra các bài toán xác thực Người công
bố khóa phải là người xác định rõ ràng Mặt khác, trao đổi khóa gây ra cả bàitoán bí mật và xác thực Khóa phải có thể tính toán bởi cả hai bên của giao thứcnhưng cũng có thể không bên nào Và giống như người công bố khóa, nhữngngười trao đổi phải là những người xác định rõ ràng
Chương 2
CƠ SỞ LÝ THUYẾT VỀ THUẬT TOÁN 2.1 Cơ sở lý thuyết toán học
2.1.1 Định nghĩa số nguyên tố
Trang 35Một số p được gọi là số nguyên tố nếu p chỉ chia hết cho 1 và chính nó, ngoài ra không chia hết cho số nào khác từ 2 đến p-1 Hay nói cách khác không
còn số nào nó có thể chia hết nữa
Số 2 là một số nguyên tố đầu tiên và là số nguyên tố chẵn duy nhất Do vậy
7, 17, 53, 73,…cũng là số nguyên tố Số lượng số nguyên tố là vô tận Hệ mậtmã thường sử dụng số nguyên tố lớn cỡ 512 bits và thậm chí lớn hơn như vậy
Số nguyên tố cùng nhau
Hai số nguyên a và b được gọi là hai số nguyên tố cùng nhau nếu USCLN của a và b là 1, hay nói cách khác chúng không chứa thừa số chung nào khác 1.
Ký hiệu GCD (a, b) = 1 Ta có thể dễ dàng thấy rằng một số nguyên tố sẽ là số
nguyên tố cùng nhau với tất cả các số nguyên khác trừ các bội số của nó
Ví dụ: 8 và 15 là nguyên tố cùng nhau, vì ước của 8 là 1, 2, 4, 8, còn ước
của 15 là 1, 3, 5, 15 Chỉ có 1 là ước chung của 8 và 15 Tương tự 3 và 8, 7 và 9,
4 và 15 là những cặp số nguyên tố cùng nhau Còn 20 và 15 không nguyên tốcùng nhau vì có USCLN là 5
Ngược lại có thể xác định ước chung lớn nhất bằng cách trong các phântích ra thừa số của chúng, tìm các thừa số nguyên tố chung và lấy bậc lũy thừanhỏ nhất trong hai phân tích của hai số đó
2.1.2 Phép chia modulo
Nếu hai số a, b có cùng số dư trong phép chia cho n thì ta nói rằng a và blà đồng dư trong phép chia modulo cho n, phép so sánh đồng dư được kí hiệubằng dấu ≡
a ≡ b (mod n) hay viết tắt là a ≡ b mod n Phép chia modulo là phép chia lấy phần dư Ví dụ: 27 mod 8 = 3, 35 mod
9 = 8.
Một cách tổng quát:
Trang 36a mod n = r với a ≥ 0; n > 0; 0 ≤ r ≤ n – 1
Có th th y, phép toán modulo phân ho ch t p s t nhiên N thànhển ngày càng nhanh chóng của Internet và các ứng ạng, nhu cầu bảo vệ thông tin trong các hệ ật thông tin ự phát triển ngày càng nhanh chóng của Internet và các ứng
l p tới thiệu chung về an toàn bảo mật thông tin ương mại Cácng đương mại Cácng đ ng d ng v i các giá tr c a r trong t p {0, 1, 2, 3 , n-ồm nhiều vấn đề khác ư ứng ới thiệu chung về an toàn bảo mật thông tin ịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ ủa Internet và các ứng ật thông tin1} Ví d v i n = 4 ta có 4 l p tới thiệu chung về an toàn bảo mật thông tin ới thiệu chung về an toàn bảo mật thông tin ương mại Cácng đương mại Cácng sau:
{0, 4, 8, 12, 16 }{1, 5, 9, 13, 17 }{2, 6, 10, 14, 18 }
Cho a, b và n là các số nguyên, phép chia modulo có các tính chất sau:
(a + b) mod n = [(a mod n) + (b mod n)] mod n
(a - b) mod n = [(a mod n) - (b mod n)] mod n
(a × b) mod n = [(a mod n) × (b mod n)] mod n
Tính chất của đồng dư thức
Cho a, a 1 , b, b 1 , c ∈ Z Ta có các tính chất sau:
1 a ≡ b (mod n) nếu và chỉ nếu a và b có cùng số dư khi chia cho n
2 Tính phản xạ: a ≡ a (mod n)
3 Tính đối xứng: Nếu a ≡ b (mod n) thì b ≡ a (mod n)
4 Tính giao hoán: Nếu a ≡ b (mod n) và b ≡ c (mod n) thì a ≡ c (mod n)
5 Nếu a ≡ a 1 (mod n), b ≡ b 1 (mod n) thì a+b ≡ a 1 +b 1 (mod n) và
ab ≡ a 1 b 1 (mod n)