Nội dung nghiên cứu● Tìm hiểu mã hóa DES và các bước thực hiện mã hóa DES● Tìm hiểu giải mã DES và các vấn đề liên quan đến DES● Nghiên cứu bài toán chia sẻ bí mật của lagrange Trang 5
Trang 1B CÔNG TH Ộ ƯƠ NG
TR ƯỜ NG Đ I H C CÔNG NGHI P HÀ N I Ạ Ọ Ệ Ộ
Môn: An toàn và b o m t thông tin ả ậ
Đ tài 1: ng d ng thu t toán DES và l ề Ứ ụ ậ ượ c đ chia s bí m t vào thi ồ ẻ ậ
Trang 2M C L C Ụ Ụ
1.1 Mục tiêu đề tài 3
1.2 Nội dung nghiên cứu 4
1.3 Chủ đề nghiên cứu 4
1.4 Kiến thức bắt buộc 4
1.5 Lĩnh vực nghiên cứu 5
1.6 Phương pháp nghiên cứu 6
1.7 Tìm hiểu về ngôn ngữ lập trình 7
1.8 Cách thực hiện đề tài 7
Chương 2 Kết quả nghiên cứu 8 2.1 Giới thiệu 8
2.2 Nội dung thuật toán 8
2.3 Thiết kế, cài đặt chương trình đề mô thuật toán 10
2.3.1 Giao diện chương trình demo 10 2.4 Cài đặt và triển khai 10
2.5 Thực hiện bài toán 16
2.5.1 Phân công công việc 16 2.5.2 Đoàn Nam Anh và Nguyễn Văn An – Tìm hiểu hệ mật mã DES 17 2.5.3 Dư Ngọc Ánh – Nghiên cứu bài toán chia sẻ bí mật Langrange 34 2.5.4 : Trần Đức An - Ứng dụng lược đồ chia sẻ bí mật của Lagrange để phân phối khóa 37 Chương 3 Phần kiến thức lĩnh hội và bài học kinh nghiệm 39 3.1 Nội dung đã thực hiện 39
3.2 Hướng phát triển 40
3.2.2 Những thuận lợi trong quá trình nghiên cứu 40 3.2.3 Những khó khăn trong quá trình nghiên cứu 40
Trang 3Ch ươ ng 1 T ng quan ổ
1.1 Mục tiêu đề tài
Hi n nay, v i s phát tri n không ng ng c a m ng máy tính, m iệ ớ ự ể ừ ủ ạ ỗ
qu c gia đ u có m ng riêng v i r t nhi u m ng mang tính b ph n trênố ề ạ ớ ấ ề ạ ộ ậ
ph m vi toàn c u, ngạ ầ ười ta đã dùng m ng Internet m t cách thông d ng.ạ ộ ụCác d ch v đi n t : th đi n t , chuy n ti n, thị ụ ệ ử ư ệ ử ể ề ương m i đi n t , chínhạ ệ ử
ph đi n t …đã đủ ệ ử ược áp d ng r ng rãi.ụ ộ
Khi các ng d ng trên m ng máy ngày càng tr lên ph bi n, thu nứ ụ ạ ở ổ ế ậ
l i và quan tr ng thì yêu c u v an toàn m ng, an ninh d li u càng trợ ọ ầ ề ạ ữ ệ ởlên c p bách và c n thi t.ấ ầ ế
Trên th gi i có r t nhi u qu c gia, nhi u nhà khoa h c nghiên c uế ớ ấ ề ố ề ọ ứ
v v n đ b o m t, đ a ra nhi u thu t toán v i m c đích thông tinề ấ ề ả ậ ư ề ậ ớ ụtruy n đi không b l y c p ho c n u b l y c p thì cũng không th sề ị ấ ắ ặ ế ị ấ ắ ể ử
d ng đụ ược Trong đ tài c a chúng em đ a ra m t thu t toán đó là thu tề ủ ư ộ ậ ậtoán DES (Data encryption standard) đây là thu t toán chu n c a M ,ậ ẩ ủ ỹ
được M và nhi u nỹ ề ước trên th gi i s d ng, thu t toán này đã đế ớ ử ụ ậ ược
đ aư vào s d ng nhi u năm nh ng v n gi đử ụ ề ư ẫ ữ ược tính b o m t c a nó.ả ậ ủTuy nhiên v i công ngh phát tri n nh hi n nay thì thu t toán DES trớ ệ ể ư ệ ậ ởlên không được an toàn tuy t đ i n a, ngệ ố ữ ười ta đã đ a ra thu t toánư ậ3DES d a trên n n t ng c a thu t toán DES nh ng s bít đự ề ả ủ ậ ư ố ược mã hóatăng lên
Mã hóa và các lược đ chia s bí m t có th đồ ẻ ậ ể ượ ức ng d ng trongụ
r t nhi u lĩnh v c ví d : phát hành th ATM trong ngân hàng, đ u th uấ ề ự ụ ẻ ấ ầ
Trang 4t xa, trong thi tuy n sinh, trong lĩnh v c quân s … Trong đ tài c a emừ ể ự ự ề ủ
đ c p t i m t lĩnh v c đó là ng d ng trong thi tuy n sinh.ề ậ ớ ộ ự ứ ụ ể
V n đ thi tuy n sinh đ i h c nấ ề ể ạ ọ ở ước ta tr thành gánh n ng choở ặngành giáo d c và các ban ngành khác liên quan Nó gây t n h i v kinhụ ổ ạ ề
t , công s c không ch v i các ban ngành tham gia t ch c kì thi màế ứ ỉ ớ ổ ứchính c nh ng sĩ t d thi cũng s b nh hả ữ ử ự ẽ ị ả ưởng không nh , đ c bi tỏ ặ ệkhi kì thi này có s c n ng r t l n lên cu c đ i và s nghi p c a các em.ứ ặ ấ ớ ộ ờ ự ệ ủ
Vì v y đ gi m thi u nh ng khâu không c n thi t và đ m b o tính côngậ ể ả ể ữ ầ ế ả ả
b ng, chính xác cho kì thi, chúng em nghĩ r ng chúng ta nên ng d ngằ ằ ứ ụcông ngh thông tin vào kì thi tuy n sinh này, c th h n đây là lệ ể ụ ể ơ ở ược
đ chia s bí m t và thu t toán DES đ đ m b o tính b o m t và chínhồ ẻ ậ ậ ể ả ả ả ậxác cho các thông tin nh y c m trong kì tuy n sinh nh v trí thi, ngày thi,ạ ả ể ư ị
đ thi,…ề
Ph m vi bài toán đ c p đ n m t mã, thu t toán DES, lạ ề ậ ế ậ ậ ược đ chiaồ
s bí m t và ng d ng c a chúng trong vi c b o m t thông tin thi tuy nẻ ậ ứ ụ ủ ệ ả ậ ểsinh
1.2 Nội dung nghiên cứu
● Tìm hiểu mã hóa DES và các bước thực hiện mã hóa DES
● Tìm hiểu giải mã DES và các vấn đề liên quan đến DES
● Nghiên cứu bài toán chia sẻ bí mật của lagrange
● Ứng dụng lược đồ chia sẻ bí mật của lagrange để phân phối khóa
● Demo chương trình (Sử dụng ngôn ngữ C++)
Trang 5● Demo chương trình (Sử dụng ngôn ngữ C#)
● Demo chương trình (Sử dụng ngôn ngữ Java)
● Demo chương trình (Sử dụng ngôn ngữ Python)
● Demo chương trình (Sử dụng ngôn ngữ JavaScript)
về an toàn bảo mật thông tin Ngoài các kiến thức trên không thể bỏ qua yếu
tố yêu thích với an toàn bảo mật thông tin và đam mê lập trình
⮚ Kiến thức về hệ mã DES
● Đặc điểm của hệ mã hóa DES
● Thuật toán mã hóa, giải mã
● Ưu nhược điểm
● Cách tính hàm f
Trang 6● Nắm vững được bài toán chia sẻ bí mật
● Sơ đồ chia sẻ bí mật
● Công thức nội suy Lagrange
● Phép nội suy đa thức
⮚ Kiến thức cơ bản về an toàn thông tin
● Bi t phân bi t gi a d li u và thông tin Bi t cách th c l u tr , v nế ệ ữ ữ ệ ế ứ ư ữ ậchuy n d li u và thông tin trong môi trể ữ ệ ường truy n thông.ề
● Hi u các lo i nguy c đ i v i d li u: m t c p, m t an toànể ạ ơ ố ớ ữ ệ ấ ắ ấ(safety) v v t lý (h h ng môi trề ậ ư ỏ ường l u gi , các th m h a -ư ữ ả ọchi n tranh, thiên tai, cháy n ), không đ m b o an toàn thông tinế ổ ả ảtrong khai thác, s d ng.ử ụ
Trang 7● Hi u ngu n g c các nguy c đ i v i vi c đ m b o an toàn thôngể ồ ố ơ ố ớ ệ ả ảtin: t nhân viên, các nhà cung c p d ch v , t các cá nhân bênừ ấ ị ụ ừngoài Hi u khái ni m t i ph m m ng (cybercrime).ể ệ ộ ạ ạ
● Bi t v các l h ng b o m t h th ng: c a h đi u hành, h qu nế ề ỗ ổ ả ậ ệ ố ủ ệ ề ệ ả
tr c s d li u, d ch v Internet Bi t các khái ni m và phị ơ ở ữ ệ ị ụ ế ệ ương
th c ho t đ ng c a các thi t b b o m t.ứ ạ ộ ủ ế ị ả ậ
❖ Các lĩnh vực an toàn thông tin
● Hiểu và phân biệt việc đảm bảo an toàn cho tổ chức như chính phủ,doanh nghiệp và đảm bảo an toàn cho cá nhân khi tham gia các hoạtđộng trên mạng
● Biết các đặc trưng cơ bản của an toàn thông tin: tính mật, tính toànvẹn, tính sẵn sàng, tính xác thực
● Biết các quy định phổ biến về bảo vệ, gìn giữ và kiểm soát dữ liệu, sựriêng tư tại Việt Nam
● Hiểu vai trò của các lĩnh vực liên quan đến an toàn dữ liệu: chínhsách, tổ chức, biện pháp quản lý và các giải pháp công nghệ
● Biết về tiêu chuẩn TCVN ISO/IEC 27001:2009 Biết một số chínhsách cơ bản về an toàn thông tin và một số văn bản pháp luật về antoàn thông tin của Việt Nam Hiểu tầm quan trọng của việc xây dựng
và thi hành chính sách an toàn thông tin đối với việc ứng dụngCNTT
1.6.Phương pháp nghiên cứu
Trang 8- Sử dụng các công cụ sau: Word, DevC, Visual Studio, …
- Ngôn ngữ: C, C++, C#, Java, JavaScripts
1.7.Tìm hiểu về ngôn ngữ lập trình
- Với C, C++, C#, Java, JavaScripts
+ Tìm hiểu về hướng đối tượng
+ Tìm hiểu về các kiểu dữ liệu, khai báo biến, vòng lặp, thao tác với chuỗi,mảng, constructor, method, object, class, cấp độ truy cập dữ liệu
+ Nghiên cứu cách giải quyết bài toán
+ Vận dụng kiến thức tìm hiểu thực hiện giải đề tài được giao
1.8.Cách thực hiện đề tài
● Tìm hiểu mã hóa DES và các bước thực hiện mã hóa DES
● Tìm hiểu giải mã DES và các vấn đề liên quan đến DES
● Nghiên cứu bài toán chia sẻ bí mật của lagrange
● Ứng dụng lược đồ chia sẻ bí mật của lagrange để phân phối khóa
Trang 9● Nghiên cứu bài toán chia sẻ bí mật của Langrange
● Ứng dụng lược đồ chia sẻ bí mật của Langrange để phân phối khóa
● Demo chương trình
- Các bước th c hi n tri n khai đ tài bao g m:ự ệ ể ề ồ
● Nghiên cứu, tìm hiểu cách mã hóa và giải mã của hệ mật mã DES
● Nghiên cứu bài toán chia sẻ bí mật của Langrange, từ đó áp dụng lược đồchia sẻ bí mật để phân phối khóa
● Thiết kế và cài đặt chương trình demo thuật toán DES
- Hình th c s n ph m: S n ph m b n m u ứ ả ẩ ả ẩ ả ẫ
- K t qu đ t đế ả ạ ược:
●Quyển báo cáo bài tập lớn
●Chương trình demo thuật toán
Trang 101.2 N i dung thu t toán ộ ậ
V Mã hóa và gi i mã DES ề ả
- Thuật toán hoán vị các bảng IP, IP-1, E, P, PC-1
- Thuật toán dịch bit sang trái
- Thuật toán chuyển cơ số
- Thuật toán chuyển mảng 1 chiều sang 2 chiều và ngược lại
V thu t toán chia s bí m t ề ậ ẻ ậ
1 D ch n w ph n t khác nhau và khác 0 trong Zp và kí hi u chúng là: xọ ầ ử ệ i,1≤ i ≤ w (w ≥ p+1)
Vớới 1≤ i ≤ w, D cho giá trị xi cho pi Các giá tr xị i là công khai
4 Vớới 1 ≤ i ≤ w, D sẽ trao mảnh yi cho pi
V thu t toán khôi ph c khóa theo công th c n i suy Larange ề ậ ụ ứ ộ
Tất cả n người A1 ,A2,… An có thể hợp tác lại để khôi phục lại bí mật S bằngcách tính:
mod
Trang 111.3 Thi t k , cài đ t ch ế ế ặ ươ ng trình đ mô thu t toán ề ậ
trình demo
Hình 1 : Giao di n ch ệ ươ ng trình nh sau ư
Ch c năng c a chứ ủ ương trình g m mã hóa và gi i mã h m t mã DESồ ả ệ ậ
1.4 Cài đ t và tri n khai ặ ể
Gi i thi u công c : ớ ệ ụ
Microsoft Visual Studio là m tộ môi trường phát tri n tích h pể ợ (IDE)
từ Microsoft Microsoft Visual Studio còn được g i là "Trình so n th o mã nhi uọ ạ ả ề
ngườ ử ụi s d ng nh t th gi i " Nó đấ ế ớ ược s d ng đ phát tri nử ụ ể ể chương trình máy tính cho Microsoft Windows, cũng nh các trang web, các ng d ng web và ư ứ ụcác d ch v webị ụ Visual Studio s d ng n n t ng phát tri n ph n m m c a ử ụ ề ả ể ầ ề ủMicrosoft như Windows API, Windows Forms, Windows Presentation
Foundation, Windows Store và Microsoft Silverlight Nó có th s n xu t c ể ả ấ ảhai ngôn ng máyữ và mã s qu n lýố ả
Trang 12Visual Studio bao g m m tồ ộ trình so n th o mãạ ả h trỗ ợ IntelliSense cũngnhư c i ti n mã ngu nả ế ồ Trình g l i tích h p ho t đ ng c vỡ ỗ ợ ạ ộ ả ề trình g l iỡ ỗ m cứ
đ mã ngu n và g l i m c đ máy Công c tích h p khác bao g m m t m uộ ồ ỡ ỗ ứ ộ ụ ợ ồ ộ ẫthi t k các hình th c xây d ngế ế ứ ự giao di n ng d ngệ ứ ụ , thi t k webế ế , thi tế
kế l pớ và thi t kế ế gi n đ c s d li uả ồ ơ ở ữ ệ Nó ch p nh n các plug-in nâng cao cácấ ậ
ch c năng h u h t các c p bao g m thêm h tr cho cácứ ở ầ ế ấ ồ ỗ ợ h th ng qu n líệ ố ảphiên b nả (như Subversion) và b sung thêm b công c m i nh biên t p vàổ ộ ụ ớ ư ậthi t k tr c quan cho cácế ế ự mi n ngôn ng c thề ữ ụ ể ho c b công c dành cho cácặ ộ ụkhía c nh khác trongạ quy trình phát tri n ph n m mể ầ ề
Hướng d n ch y chẫ ạ ương trình Demo:
Ch c năng 1: ứ Mã hóa và gi i mã chu i Hexa:ả ỗ
Nh p chu i b n rõ:ậ ỗ ả 9876CDEF
Nh p Key: 1472ABCDậ
Sau đó nh n mã hóa:ấ
Trang 13B n Mã làả :
11001011010110101111100111000001011011110011100011000010010110011110001001001000001011111111101110000101110110100011011100010111111000100100100000101111111110111000010111011010001101110001011111100010010010000010111111111011100001011101101000110111000101111110001001001000001011111111101110000101110110100011011100010111111000100100100000101111111110111000010111011010001101110001011111100010010010000010111111111011100001011101101000110111000101111110001001001000001011111111101110000101110110100011011100010111
Ngượ ạ : c l i
Ta nh p chu i b n Mã làậ ỗ ả :
1100101101011010111110011100000101101111001110001100001001011001111000100100100000101111111110111000010111011010001101110001011111100010
Trang 14V i khóa K dùng đ mã hóaớ ể : 1472ABCD
Sau đó nh n gi i mã: ấ ả
B n Rõ nh n đả ậ ược đúng v i ban đ u là 0123456798ABCDEF.ớ ầ
Tuy nhiên dãy khóa K dùng đ gi i mã ngể ả ược v i dãy khóa K dùng đ mã hóa.ớ ểĐây là s khác nhau gi a mã hóa và gi i mã c a h m t mã DES.ự ữ ả ủ ệ ậ
Ch c năng 2: ứ Mã hóa và gi i mã chu i ký tả ỗ ự
Trang 16Ta nh n l i đậ ạ ược chu i b n rõ ban đ u nh p vào.ỗ ả ầ ậ
1.5 Th c hi n bài toánự ệ
Tên sinh viên Tên công vi cệ
Tr n Đ c Anầ ứ Ứng d ng lụ ược đ chia s bí m t c a Lagrange đồ ẻ ậ ủ ể
phân ph i khóaốĐoàn Nam Anh
Nguy n Văn Anễ
Tìm hi u m t mã DESể ậ
D Ng c Ánhư ọ Nghiên c u bài toán chia s bí m t c a Langrangeứ ẻ ậ ủ
Trang 171.5.2 Đoàn Nam Anh và Nguy n Văn An – Tìm hi u h m t mã DES ễ ể ệ ậ
1 Giới thiệu chung về DES
− Sau những năm 70 của thế kỉ trước, các nhà toán học đã nghiên cứu
và tạo ra nhiều phương thức mật mã với tốc độ mã hóa rất nhanh (hàng trục thậm chí hàng trăm kilo Byte trong một giây) và người ta chỉ cầm giữ bí mật khóa mã và mã hóa được mọi dữ liệu tùy ý Đó là một bước tiến vĩ đại của kĩ thuật mật mã Trong đó mã DES ( Data Encryption Standard) là một điển hình của bước tiến này
− Ngày 13/5/1973 ủy ban quốc gia về tiêu chuẩn của Mỹ công bố yêu cầu về hệ mật mã áp dụng cho toàn quốc Điều này đã đặt nền móng cho chuẩn mã hóa dữ liệu DES
− Lúc đầu DES được công ty IBM phát triển từ hệ mã Lucifer, công bố vào năm 1975
− Sau đó DES được xem như là chuẩn mã hóa dữ liệu cho các ứng dụng
2 Đặc điểm của thuật toán DES
− DES là thuật toán mã hóa khối, độ dài mỗi khối là 64bit
− Khóa dùng trong DES có độ dài toàn bộ là 64bit Tuy nhiên chỉ có 56 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra
− DES xuất ra bản mã 64bit
Trang 18− Thuật toán thực hiện 16 vòng
− Mã hóa và giải mã được sử dụng cùng 1 khóa
3 Mô tả thuật toán
2 Thuật toán gồm 3 giai đoạn:
3 Giai đoạn 1:
4 Input: bản rõ x có độ dài 64 bit được hoán vị khởi tạo IP thu được xâu x0
6 x x0 (64 bit) = IP(x) = L0.R0
7 L0: 32 bit đầu của x0
8 R0: 32 bit cuối của x0
9 Bộ chuyển vị IP: Hoán đổi vị trí các bit trong xâu đầu vào
Trang 21IP là m t phép hoán v v trí c a các ký t trong m i t 64 bit, t v trí th ộ ị ị ủ ự ỗ ừ ừ ị ứ
1 đ n v trí th 64.ế ị ứ
Cách hi u là bit th nh t c a IP(x) là bit th 58 c a t x( có 64 bit), bit ể ứ ấ ủ ứ ủ ừ
th hai c a IP(x) là bit th 50 c a x, …ứ ủ ứ ủ
Trang 224 Sơ đồ hàm f:
Hàm f l y đ u vào là 2 t : R có 32bit và K có 48 bit.ấ ầ ừ
K t qu đ u ra là t f(R,K) có 32bit, đế ả ầ ừ ược xác đ nh b i s đ sau đây:ị ở ơ ồ
- Đầu tiên ra cho Ri đi qua phép mở rộng E, biến Ri(32) -> Ri(48)
- Sau đó cộng bit với khóa Ki tương ứng
- Kết quả tạo ra được khối B có độ dài 48 bit
- Chia B thành 8 khối B = B1B2B3…B8 Mỗi khối độ dài 6bitCho các khối Bi đi qua các hộp S tạo ra các C (4 bit)
Trang 23- Ghép các khối Ci thành khối C sau đó cho qua P để tạo thành hàm f(R,K) 32bit
- 4 bit ở giữa tạo thành 1 số Đó là vị trí cột
- Chiếu số dòng , số cột vào bảng Si tương ứng sẽ tạo ra giá trị của khối Ci
Trang 27171
20
212
24
252
28
292
321
Theo đ nh nghĩa đó, m i t R = aị ỗ ừ 1 a2 a3 … a31 a32 s bi n thànhẽ ế
E(R) = a32 a1 a2 a3 a4 a5 a4 a5 a6 a7 a8 a9 …… a32 a1
6 Tạo khóa K
Khóa K(64bit) trong đó:
- 8 bit kiểm tra: 8,16,24,32,40,48,56,64
- 56 bit còn lại dùng để chế khóa
- Cho K(56) đi qua PC-1
- Tạo ra C0 là 28 bit đầu
- D0 là 28 bit sau
- Tại mỗi vòng lặp I có: CiDi là kết quả của phép dịch trái của các bit từ khối Ci-1Di-1
- Trong đó: i = 1,2,8,16 dịch trái 1 bit, các vòng còn lại dịch trái 2 bit
- Cho hoán vị PC-2(Ci,Di) để được khóa Ki
Trang 28Thuật toán tính khóa vòng
Trang 29Mô tả thuật toán dịch trái
Trang 307 Giải mã
- DES là giải mã dùng chung 1 thuật toán vs mã hóa
- Quá trình giải mã tương tự mã hóa Tuy nhiên, khóa tại mỗi vòng lặp ngược lại với mã hóa Tức là từ K16 -> K1.
-Ch ươ ng trình demo b ng C# ằ (Nguy n Văn An) ễ
Demo ch ươ ng trình b ng ngôn ng Python ằ ữ (Đoàn Nam Anh)
Trang 321.5.3 D Ng c Ánh –ư ọNghiên c u bài toán chia s bí m t Langrange ứ ẻ ậ
1.5.3.1 Khái niệm chia sẻ bí mật
Thông tin bí mật sẽ được chia thành nhiều mảnh Các mảnh được chia ra sẽ traocho các thành viên giữ (mỗi người giữ một hay một số mảnh) Thông tin có thểđược xem lại nếu tất cả mọi người giữ mảnh đều đồng ý Các mảnh sẽ đượckhớp lại để khôi phục lại tin gốc
Thông tin bí mật chia thành nhiều mảnh và giao cho các thành viên