Trong đó có bảo vệ an toàn thông tin bằng mật mã Mật mã là một nghành khoa học chuyên nghiên cứu các phương pháp truyền tin bí mật.. Các đe dọa đối với một hệ thống thông tin có thể đến
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: AN TOÀN BẢO MẬT
TÊN BÀI TẬP LỚN:
ỨNG DỤNG MÃ HÓA VÀ GIẢI MÃ AFFINE
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
BÀI TẬP LỚN HỌC PHẦN: AN TOÀN BẢO MẬT
TÊN (BÀI TẬP LỚN): ỨNG DỤNG MÃ HÓA VÀ GIẢI
MÃ AFFINE
SV
CÁN BỘ CHẤM 1
(Ký và ghi rõ họ tên)
CÁN BỘ CHẤM 2 (Ký và ghi rõ họ tên)
Bắc Ninh, tháng 6 Năm 2022
Trang 3Mục lục
Chương 1 Tổng quan về an toàn thông tin 6
1.1 Tại sao cần bào đảm an toàn thông tin 6
1.2 Khái niệm hệ thống và tài sản hệ thống 6
1.3 Các mối đe dọa đối với hệ thống và các biện pháp ngăn chặn 7
1.4 Mục tiêu chung của an toàn bảo mật thông tin 8
1.5 Các chiến lước an toàn hệ thống 8
1.6 Các mức bảo vệ trên mạng 9
Chương 2 Phương pháp mã hóa cổ điển Affine 11
2.1 Khái niệm về mã hóa dữ liệu 11
2.2 Hệ mã hóa: Affine 11
Chương 3 Chương trình thử nghiệm hệ mã Affine trên c# 16
3.1 Giao diện chương trình 16
3.2 Kiểm thử 17
Chương 4 Kết luận 18
4.1 Kết quả đạt được 18
4.2 Hạn chế 18
4.3 Hướng phát triển 18
Trang 4Mục lục hình ảnh
Hình 1.1 Mục tiêu chính an toàn bảo mật 7 Hình 1.2 Sơ đồ mức bảo vệ trên mạng 8 Hình 3.1 Giao diện chương trình 15 Hình 3.2 Hình ảnh chạy kiểm thử chương trình 1
Trang 5Mở đầu Ngày nay việc ứng dụng công nghệ thông tin vào các nghành nghề đã mang lại rất nhiều lợi ích cho mọi mặt của cuộc sống Bên cạnh đó cũng đưa ra những thách thức khi hòa nhập toàn cầu về mặt đảm ảo an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có rất nhiều phương pháp được thực hiện để bảo
vệ an toàn thông tin dữ liệu Trong đó có bảo vệ an toàn thông tin bằng mật mã
Mật mã là một nghành khoa học chuyên nghiên cứu các phương pháp truyền tin bí mật Mật mã bao gồm: Lập mã và phá mã Lập mã bao gồm hai quá trình: mã hóa và giải mã
Hiện nay có rất nhiều hệ mật mã Nếu dựa vào cách truyền khóa có thể phân các hệ mật mã thành hai loại: hệ mật mã đối xứng và hệ mật mã bất đối xứng Ngoài ra nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia làm hai loại là mã dòng và mã khối Còn nếu dự vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại: Mật mã
cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại ( ra đời sau năm 1970) Trong bài tiểu luận này, em xin trình bày vê một loại hệ mã hóa cổ điển là Affine
Trang 6Chương 1 Tổng quan về an toàn thông tin
1.1 Tại sao cần bào đảm an toàn thông tin
Ngày nay, sự xuất hiện Internet và mạng máy tính _đã gi`p cho việc trao đổi thông tin tra nên nhanh gọn, db dàng E-mail cho phep người ta nhân _ hay gửi thư ngay trên máy tính của mình, E-business cho phep thưc _ hiên _ các giao dic _h buôn bán trên man _g, Tuy nhiên laf phát sinh những vấn đề mới Thông tin quan tron _g nằm a kho dữ liêụ hay đang trên đường truyền có thể bi trộm cgp, có thể bi làm sai lệch, có thể bi giả mạo Điều đó có thể ảnh hưang tới các tổ chức, các công ty hay cả môt quốc gia Những bí mật kinh doanh, tài chính là mục tiêu của các đối thủ cạnh tranh Những tin tức về an ninh quốc gia là mục tiêu của các tổ chức tinih báo trong và ngoài nước Để giải quyết tình hình trên, vấn đề bảo đảm an toàn thông tin (ATTT)
đã được đặt ra trong lý luận cũng như trong thực tibn
Thông tin là một bộ phần quan trọng và là tài sản thuộc quyền sa hữu của các
tổ chức
Sự thiệt hại và lạm dụng thông tin không chỉ ảnh hưang đến người sử dụng hoặc các ứng dụng mà nó còn gây ra các hậu quả tai hại cho toàn bộ tổ chức đó Thêm vào đó sự ra đời của Internet đã gi`p cho việc truy cập thông tin ngày càng tra nên db dàng hơn
1.2 Khái niệm hệ thống và tài sản hệ thống
Khái niệm hệ thống: Hệ thống là một tập hợp các máy tính bao gồm các
thành phần, phần cứng, phần mềm và dữ liệu làm việc được tích luỹ qua thời gian
Tài sản của hệ thống bao gồm:
- Phần cứng
- Phần mềm
- Dữ liệu
- Các truyền thông giữa các máy tính của hệ thống
- Môi trường làm việc
Trang 7- Con người.
1.3 Các mối đe dọa đối với hệ thống và các biện pháp ngăn chặn
Có 3 hình thức chủ yếu đe dọa đối với hệ thống:
Phá hoại: kẻ thù phá hỏng thiết bf phần cứng hoặc phần mềm hoạt động trên hệ thống
Sửa đổi: Tài sản của hệ thống bf sửa đổi trái phep Điều này thường làm cho hệ thống không làm đ`ng chức năng của nó Chẳng hạn như thay đổi mật khẩu, quyền người dùng trong hệ thống làm họ không thể truy cập vào hệ thống để làm việc Can thiệp: Tài sản bf truy cập bai những người không có thẩm quyền Các truyền thông thực hiện trên hệ thống bf ngăn chặn, sửa đổi
Các đe dọa đối với một hệ thống thông tin có thể đến từ ba loại đối tượng như sau:
Các đối tượng từ ngay bên trong hệ thống (insider), đây là những người có quyền truy cập hợp pháp đối với hệ thống
Những đối tượng bên ngoài hệ thống (hacker, cracker), thường các đối tượng này tấn công qua những đường kết nối với hệ thống như Internet chẳng hạn Các phần mềm (chẳng hạn như spyware, adware ) chạy trên hệ thống Các biện pháp ngăn chặn:
Điều khiển thông qua phần mềm: dựa vào các cơ chế an toàn bảo mật của hệ thống nền (hệ điều hành), các thuật toán mật mã học
Điều khiển thông qua phần cứng: các cơ chế bảo mật, các thuật toán mật mã học được cứng hóa để sử dụng
Điều khiển thông qua các chính sách của tổ chức: ban hành các qui đfnh của tổ chức nhằm đảm bảo tính an toàn bảo mật của hệ thống
Trang 81.4 Mục tiêu chung của an toàn bảo mật thông tin
Có 3 mục tiêu chính bao gồm
Hình 1.1 Mục tiêu chính an toàn bảo mật Tính bí mật (Confidentiality): Đảm bảo rằng thông tin không bf truy cập bất hợp pháp
Thuật ngữ privacy thường được sử dụng khi dữ liệu được bảo vệ có liên quan tới các thông tin mang tính cá nhân
Tính toàn vẹn (Integrity): Đảm bảo rằng thông tin không bf sửa đổi bất hợp pháp
Tính sẵn sàng (availability): Tài sản luôn sẵn sàng được sử dụng bai nhưng người có thẩm quyền
1.5 Các chiến lước an toàn hệ thống
Điểm nối yếu nhất (Weakest Link):Chiến lược này dựa trên nguyên tgc: “ Một dây xích chỉ chgc tại mgt duy nhất, một bức tường chỉ cứng tại điểm yếu nhất”
Trang 9Tính toàn cục: Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ
Tính đa dạng bảo vệ: Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho
hệ thống khác nhau, nếu không có kẻ tấn công vào được một hệ thống thì ch`ng cũng db dàng tấn công vào các hệ thống khác
1.6 Các mức bảo vệ trên mạng
Quyền truy nhập: Là lớp bảo vệ trong cùng nhằm kiểm soát các tài nguyên của mạng và quyền hạn trên tài nguyên đó
Đăng ký tên /mật khẩu: Thực ra đây cũng là kiểm soát quyền truy nhập, nhưng không phải truy nhập a mức thông tin mà a mức hệ thống
Mã hoá dữ liệu: Dữ liệu bf biến đổi từ dạng nhận thức được sang dạng không nhận thức được theo một thuật toán nào đó và sẽ được biến đổi ngược lại a trạm nhận (giải mã)
Bảo vệ vật lý: Ngăn cản các truy nhập vật lý vào hệ thống
Tường lửa: Ngăn chặn thâm nhập trái phep và lọc bỏ các gói tin không muốn gửi hoặc nhận vì các lý do nào đó để bảo vệ một máy tính hoặc cả mạng nội bộ (intranet)
Trang 10Hình 1.2 Sơ đồ mức bảo vệ trên mạng Quản trị mạng: Công tác quản trf mạng máy tính phải được thực hiện một cách khoa học đảm bảo các yêu cầu sau :
- Toàn bộ hệ thống hoạt động bình thường trong giờ làm việc
- Có hệ thống dự phòng khi có sự cố về phần cứng hoặc phần mềm xảy ra
- Backup dữ liệu quan trọng theo đfnh kỳ
- Bảo dưỡng mạng theo đfnh kỳ
- Bảo mật dữ liệu, phân quyền truy cập, tổ chức nhóm làm việc trên mạng
Trang 11Chương 2 Phương pháp mã hóa cổ điển Affine
2.1 Khái niệm về mã hóa dữ liệu
Mã hóa dữ liệu (Data Encryption) là một phương pháp bảo vệ thông tin một cách hiệu quả và an toàn Hình thức này thông qua việc chuyển đổi thông tin từ các dạng có thể hiểu và đọc được theo cách thông thường sang dạng không thể hiểu hay đọc được theo cách thông thường như thế
Mã hóa (Encryption): là hành động xáo trộn bản rõ để chuyển thành bản mã Giải mã (Decryption): là hành động giải xáo trộn bản mã để chuyển thành bản rõ
Vai trò của mã hóa Mã hoá thông tin có thể được sử dụng để đảm bảo an toàn thông tin trên đường truyền với các thuộc tính: Bí mật (confidentiality) Toàn vẹn (integrity) Xác thực (authentication) Không thể chối bỏ (non-repudiation) 2.2 Hệ mã hóa: Affine
Mật mã affine là một dạng mật mã thay thế dùng một bảng chữ cái, trong đó mỗi chữ cái được ánh xạ tới một số sau đó mã hóa qua một hàm số toán học đơn giản Mã Affine là một trường hợp đặc biệt của mã Caesar, trong đó các chữ cái được mã hóa với hàm
MDV là một trường hợp đặc biệt của MTT chỉ gồm 26 trong số 26! các hoán vf
có thể của 26 phần tử Một trường hợp đặc biệt khác của MTT là mã Affine được mô
tả dưới đây trong mã Affine, ta giới hạn chỉ xet các hàm mã có dạng:
e(x) = ax + b mod 26, a,b Z Các hàm này được gọi là các hàm Affine (ch` ý rằng khi a = 1, ta có26
MDV)
Để việc giải mã có thể thực hiện được, yêu cầu cần thiết là hàm Affine phải là
Trang 12Vì y thay đổi trên Z nên y-b cũng thay đổi trên Z Bai vậy, ta chỉ cần26 26
nghiên cứu phương trình đồng dư:
ax y (mod 26) (y Z26 )
Ta biết rằng, phương tfình này có một nghiệm duy nhất đối với mỗi y khi và chỉ khi UCLN(a,26) = 1 (a đây hàm UCLN là ước chung lớn nhất của các biến của nó) Trước tiên ta giả sử rằng, UCLN(a,26) = d 1 Khi đó, đồng dư thức ax 0 (mod 26) sẽ có ít nhất hai nghiệm phân biệt trong Z là x = 0 và x = 26/d Trong26
trường hợp này, e(x) = ax + b mod 26 không phải là một hàm đơn ánh và bai vậy nó không thể là hàm mã hoá hợp lệ
Ví dụ, do UCLN(4,26) = 2 nên 4x +7 không là hàm mã hoá hợp lệ: x và x+13
sẽ mã hoá thành cùng một giá trf đối với bất kì x Z 26
Ta giả thiết UCLN(a,26) = 1 Giả sử với x và x nào đó thảo mãn:1 2
ax1 ax (mod 26)2
Khi đó:
a(x1- x ) 0(mod 26)2
Bai vậy:s
26 | a(x - x )1 2
Bây giờ ta sẽ sử dụng một tính chất của phep chia sau: Nếu USLN(a,b)=1 và a
bc thì a c Vì 26 a(x - x ) và USLN(a,26) = 1 nên ta có:1 2
26 (x1- x )2
Tức là
x1 x (mod 26)2
Tới đây ta chứng tỏ rằng, nếu UCLN(a,26) = 1 thì một đồng dư thức dạng ax
y (mod 26) chỉ có (nhiều nhất) một nghiệm trong Z Do đó , nếu ta cho x thay đổi26
trên Z thì ax mod 26 sẽ nhận được 26 giá trf khác nhau theo modulo 26 và đồng dư26
thức ax y (mod 26) chỉ có một nghiệm y duy nhất
Không có gì đặc biệt đối vơí số 26 trong khẳng đfnh này Bai vậy, bằng cách tương tự ta có thể chứng minh được kết quả sau:
Trang 13Định lí:
Đồng dư thức ax b mod m chỉ có một nghiệm duy nhất x Z với mọi b m
Zm khi và chỉ khi UCLN(a,m) = 1
Vì 26 = 2 13 nên các giá trf a Z thoả mãn UCLN(a,26) = 1 là a = 1, 3, 5,26
7, 9, 11, 13, 15, 17, 19, 21, 23 và 25 Tham số b có thể là một phần tử bất kỳ trong
Z26 Như vậy, mã Affine có 12 26 = 312 khoá có thể ( dĩ nhiên con số này quá nhỉ để bảo đảm an toàn)
Bây giờ ta sẽ xet bài toán chung với modulo m Ta cần một đfnh nghĩa khác trong lý thuyết số
Định nghĩa:
Giả sử a 1 và m 2 là các số nguyên UCLN(a,m) = 1 thì ta nói rằng a và m
là nguyên tố cùng nhau Số các số nguyên trong Z nguyên tố cùng nhau với mm
thường được ký hiệu là (m) ( hàm này được gọi là hàm Euler)
Một kết quả quan trọng trong lý thuyết số cho ta giá trf của (m) theo các thừa
số trong phep phân tích theo luỹ thừa các số nguyên tố của m ( Một số nguyên p 1
là số nguyên tố nếu nó không có ước dương nào khác ngoài 1 và p Mọi số nguyên
m 1 có thể phân tích được thành tích của các luỹ thừa các số nguyên tố theo cách duy nhất Ví dụ 60 = 2 3 5 và 98 = 2 7 3 2 )
Định lí:
Giả sử m = pi
Trong đó các số nguyên tố p khác nhau và >0 ,1i ei
Đfnh lý này cho thấy rằng, số khoá trong mã Affine trên Z bằng m (m), trongm
đó (m) được cho theo công thức trên ( Số các phep chọn của b là m và số các phep
Trang 14(mod 26) theo x Từ thảo luận trên thấy rằng, phương trình này có một nghiệm duy nhất trong Z Tuy nhiên ta vẫn chưa biết một phương pháp hữu hiệu để tìm26
nghiệm Điều cần thiết a đây là có một thuật toán hữu hiệu để làm việc đó Rất may
là một số kết quả tiếp sau về số học modulo sẽ cung cấp một thuật toán giải mã hữu hiệu cần tìm
Định nghĩa:
Giả sử a Z Phần tử nghfch đảo (theo phep nhân) của a là phần tử am -1 Zm
sao cho aa a a 1 (mod m).-1 -1
Bằng các lý luận tương tự như trên, có thể chứng tỏ rằng a có nghfch đảo theo modulo m khi và chỉ khi UCLN(a,m) =1, và nếu nghfch đảo này tồn tại thì nó phải
là duy nhất Ta cũng thấy rằng, nếu b = a thì a = b Nếu p là số nguyên tố thì mọi-1 -1
phần tử khác không của Z đều có nghfch đảo Một vành trong đó mọi phần tử đềuP
có nghfch đảo được gọi là một trường
Trong phần sau sẽ mô tả một thuật toán hữu hiệu để tính các nghfch đảo của Zm
với m tuỳ ý Tuy nhiên, trong Z , chỉ bằng phương pháp thử và sai cũng có thể tìm26
được các nghfch đảo của các phần tử nguyên tố cùng nhau với 26: 1 = 1, 3 = 9, 5-1 -1
-1 = 21, 7-1 = 15, 11 = 19, 17 =23, 25 = 25 (Có thể db dàng kiểm chứng lại điều-1 -1 -1
này, ví dụ: 7 5 = 105 1 mod 26, bai vậy 7 = 15).-1
Xet phương trình đồng dư y ax+b (mod 26) Phương trình này tương đương với
ax y-b ( mod 26)
Vì UCLN(a,26) =1 nên a có nghfch đảo theo modulo 26 Nhân cả hai vế của đồng dư thức với a ta có: -1
a-1(ax) a (y-b) (mod 26) -1
Áp dụng tính kết hợp của phep nhân modulo:
a-1(ax) (a a)x 1x x.-1
Kết quả là x a (y-b) (mod 26) Đây là một công thức tường minh cho x Như-1
vậy hàm giải mã là:
d(y) = a (y-b) mod 26-1
Trang 15Sơ đồ
Đặt Bản mã y và bản rõ
Tập khóa K= {(a,b), với , UCLN(a, 26) = 1}
Với khóa , ta đfnh nghĩa:
Phep mã hóa mod 26
Phep giải mã mod 26
Ví dụ 1:
Bản rõ chữ: CHIEUNAYOVUONHOA
Chọn khóa k = (a, b) = (3, 6)
Bản rõ số: x = 2 7 8 4 20 13 0 24 14 21 20 14 13 7 14 0
Mã hóa theo công thức y = (x) = (a x + b) mod26 = (3x + 6) mod 26 Bản mã số: y = 12 1 4 18 14 19 6 0 22 17 14 19 1 22 6
Bản mã chữ: MBESOTGAWROWTBWG
Giải mã theo công thức x= (y) = (y-b) mod26
= (y-6) mod26 = 9*(y-6) mod26
Độ an toàn: Độ an toàn của hệ mã hóa Affine: rất thấp
Trang 16Chương 3 Chương trình thử nghiệm hệ mã Affine trên c# 3.1 Giao diện chương trình
Hình 3.1 Giao diện chương trình
Giao diện chương trình được chia làm 2 phần:
Phần 1: Mã hóa:
Bản rõ
Khóa a, khóa b
N`t mã hóa
Bản mã
Phần 2: Giải mã:
Bản mã
Khóa a, khóa b
N`t giải mã
Bản rõ
Trang 173.2 Kiểm thử
Hình 3.2 Hình ảnh chạy kiểm thử chương trình Thực hiện kiểm thử mã hóa:
Bước 1: Nhập bản rõ: CHIEUNAYOVUONHOA
Bước 2: Nhập khóa a = 3, khóa b = 6
Bước 3: Ta thực hiện nhấn n`t mã hóa: chương trình trả về cho ta 1 bản mã MBESOTGAWROWRBWG
Thực hiện kiểm thử giải mã:
Bước 1: Nhập bản mã: MBESOTGAWROWRBWG
Bước 2: Nhập khóa a = 3, khóa b = 6
Trang 18Chương 4 Kết luận 4.1 Kết quả đạt được
- Dự án đã thực hiện được phương thức mã hóa và giải mã Affine
- Qua việc thực hiện dự án, các thành viên trong dự án r`t ra được nhiều kinh nghiệm hơn cho bản thân như kinh nghiệm làm việc nhóm, nhiều kiến thức hữu ích, khả năng tự học hỏi
- Bài tiểu luận tiến hành nghiên cứu giải quyết bài toán về mã hóa, giải mã trên hẹ
mã cổ điển Affine
4.2 Hạn chế
- Nghiên cứu hệ mã Affine chỉ sử dụng các ký tự là bảng chữ cái, bảng chữ cái không lớn nên bf giới hạn nên bf giới hạn bai các bảng chữ cái
- Db bf tấn công bằng cách phân tích tần số và khó phòng ngừa Không có khả năng phục hồi văn bản gốc
4.3 Hướng phát triển
- Thay thế Affine bằng hệ mã đối xứng khác an toàn hơn như (AES, DES)