GIỚI THIỆU1:Chữ ký số -Chữ kí số Digital Signature là một chuỗi dữ liệu liên kết với một thông điệp message và thực thể tạo ra thông điệp.. -Giải thuật tạo ra chữ ký số Digital Signatur
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
KHOA CÔNG NGHỆ THÔNG TIN
THÀNH VIÊN THỰC HIỆN:
1.NGUYỄN THÚY NGA-2121051524
2 LÊ MAI CHI - 2121050422
3 ĐỖ THỊ KHÁNH HÒA – 2121050441
4 VŨ TIẾN PHÚC – 2121051472
5 PHAN VĂN KHẢI - 2121050113
HÀ NỘI -2023
MỤC LỤC
I GIỚI THIỆU 3
1:Chữ ký số 3
2: Hệ mã hóa bất đối xứng 3
3:Hệ mã hóa RSA 3
4: Hàm băm 3
Trang 2II NỘI DUNG 4
1.Kiến trúc chữ ký số tổng quát 4
1.1:Quá trình ký(bên gửi) 4
1.2: Quá trình kiểm tra chữ ký(bên nhận) 5
2:Thuật toán chữ kí số RSA 5
2.1: Sinh khóa cho hệ mã hóa RSA 6
2.2: Mã hóa và giải mã(RSA) 7
2.3:Ứng dụng chữ ký số sử dụng thuật toán RSA 8
III.CÀI ĐẶT GIẢI THUẬT TRONG NGÔN NGỮ LẬP TRÌNH PYTHON ……… 8
IV KẾT LUẬN 10
V TÀI LIỆU THAM KHẢO 11
Trang 3I GIỚI THIỆU
1:Chữ ký số
-Chữ kí số (Digital Signature ) là một chuỗi dữ liệu liên kết với một thông điệp (message) và thực thể tạo ra thông điệp
-Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) là một phương pháp sinh chữ ký số
-Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm ) là một phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó thực
sự được tạo ra bởi 1 bên chỉ định
-Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ số
và giải thuật kiểm tra chữ ký số
-Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm:
Giải thuật tạo chữ ký số
Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký được -Quá trình kiểm tra chữ ký số (Digital signature verification process) bao gồm:
Giải thuật kiểm tra chữ ký số, và
Phương pháp khôi phục dữ liệu từ thông điệp
2: Hệ mã hóa bất đối xứng
-Hệ mã hóa bất đối xứng (asymmetric cryptography) hay còn gọi là hệ mã hóa public key là một hệ mã hóa sử dụng một cặp key để mã hóa và giải mã: public key (khóa công khai) dùng để mã hóa và private key (khóa bí mật) để giải mã.Trong hệ mã hóa này, bất cứ ai cũng có thể sử dụng public key đã mã hóa bản tin và gửi cho người nhận
3:Hệ mã hóa RSA
-RSA là một hệ mã hóa bất đối xứng được phát triển bởi Ron Rivest, Adi Shamir và Leonard Adleman (tên của nó cũng chính là tên viết tắt của 3 tác giả này) và được sử dụng rộng rãi trong công tác mã hoá và công nghệ chữ ký điện tử Trong hệ mã hóa này, public key có thể chia sẻ công khai cho tất cả mọi người Hoạt động của RSA dựa trên 4 bước chính: sinh khóa, chia sẻ key,
mã hóa và giải mã
4: Hàm băm
Trang 4-Hàm băm (Hash Funtion) làm hàm toán học chuyển đổi thông điệp (message)
có độ dài bất kỳ (hữu hạn) thành một dãy bít có độ dài cố định (tùy thuộc vào thuật toán băm) Dãy bít này được gọi là thông điệp rút gọn.(message disgest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu -Hàm băm SHA-512: SHA-512 là một thuật toán băm (hash function) được
sử dụng để tạo ra một mã băm (hash) độc nhất từ một chuỗi dữ liệu đầu vào (input data) SHA-512 là phiên bản nâng cao của thuật toán SHA-256 với độ dài mã băm lên tới 512 bit Thuật toán SHA-512 được sử dụng rộng rãi trong các ứng dụng bảo mật, bao gồm cả các hệ thống mật mã, chứng thực, xác thực
và bảo mật mạng Nó cũng được sử dụng trong các ứng dụng lưu trữ, xử lý và truyền dữ liệu
II NỘI DUNG
1.Kiến trúc chữ ký số tổng quát
1.1:Quá trình ký(bên gửi)
-Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụng một giải thuật băm (Hashing algorithm)
-Chuỗi đại diện được ký sử dụng khóa riêng (Private key) của người gửi và 1 giải thuật tạo chữ ký (Signature/ Encryption algorithm) Kết quả chữ ký số
Trang 5(Digital signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa (Encryted message digest)
-Thông điệp ban đầu (message) được ghép với chữ ký số( Digital signature) tạo thành thông điệp đã được ký (Signed message)
-Thông điệp đã được ký (Signed message) được gửi cho người nhận
1.2: Quá trình kiểm tra chữ ký(bên nhận)
-Tách chữ ký số và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;
Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng trong quá trình ký)
Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký
số -> chuỗi đại diện thông điệp MD2
-So sánh MD1 và MD2:
Nếu MD1 =MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảo tính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứng thực)
Nếu MD1 <>MD2 -> chữ ký không hợp lệ Thông điệp có thể đã bị sửa đổi hoặc không thực sự xuất phát từ người gửi
2:Thuật toán chữ kí số RSA
Hoạt động của hệ mã hóa RSA nói chung và chữ ký số RSA nói riêng đều dựa trên 4 bước chính: sinh khóa, chia sẻ mã, mã hóa và giải mã
Trang 6-Thẩm định chữ kí RSA
2.1: Sinh khóa cho hệ mã hóa RSA
Mấu chốt của việc sinh khóa trong hệ mã hóa RSA là tìm được những bộ 3 e,
d và n là số tự nhiên sao cho:
m^(ed)=m mod n
Và một điểm không thể bỏ qua là bảo mật cho d để sao cho dù biết e, n hay thậm chí m thì cũng không thể tìm ra d được
Cụ thể, hệ mã hóa RSA được sinh như sau:
Bước 1: B (người nhận) tạo hai số
nguyên tố lớn ngẫu nhiên và p q
Bước 1: Chọn số 23 và 41
(hai số này là 2 số nguyên tố)
Trang 7Bước 2: tính n =p q* và Φ(n) = ( -1)p
(q-1) Bước 2: n = 23 * 41 = 943 Φ(n) = 22 * 40 = 880
Bước 3: chọn một số ngẫu nhiên e
(0< e < Φ( )) sao chon
ƯCLN(e,Φ(n))=1
Bước 3:
chọn = 7 vì ƯCLN(7, 880)=1e
Bước 4: tính bằng cách dùng thuật
toán Euclide
Tìm số tự nhiên sao cho :x
d = x ∗Φ(n)+1 e
Bước 4: d = x ∗Φ(n)+1 e =>
7d=1+880x
=>d= 503 và x = 4
Bước 5:
- n và e làm khoá công khai (public
key),
- d làm khoá bí mật (pivate key)
Bước 5:
- n = 943 và e = 7
- d = 503
2.2: Mã hóa và giải mã(RSA)
-Sau khi sinh khóa cho hệ mã hóa RSA, bước tiếp theo là mã hóa với khóa công khai (n, e) và giải mã với khóa bí mật (n, d)
- Thực hiện mã hóa m thành c theo công thức:
c ≡ m^e mod n c -Sau đó giá trị c sẽ chuyển cho người nhận và c được giải mã để lấy m theo công thức:
c^d ≡ m^(de) ≡ m mod n -Đây chính là cách đảo ngược padding để lấy m và có lại dữ liệu mã hóa
Bước 1: A nhận khoá công khai của
B Bước 1: A nhận khoá công khai n = 943 và e = 7 Bước 2: A biểu diễn thông tin cần
gửi thành số m (0 <= m <= n-1)
Bước 2: Thông tin cần gửi
m = 35 Bước 3: Tính c = m mod nd Bước 3: 35503 943
mod
Trang 8tính m = c mod n
=> m là thông tin nhận được M =
790mod943
=> m = 35
2.3:Ứng dụng chữ ký số sử dụng thuật toán RSA
-Sử dụng trong việc đảm bảo vẹn toàn dữ liệu: Chữ ký các công ty, website, công văn, file, tệp tin của người gửi qua môi trường Internet của các cá nhân , cơ quan tổ chức …
III CÀI ĐẶT GIẢI THUẬT TRONG NGÔN NGỮ LẬP TRÌNH PYTHON
-Tạo một list danh sách các số nguyên tố
Trang 9-Xác định các giá trị n, d, e
-Lấy 2 số nguyên số ngẫu nhiên từ danh sách list đã tạo
-Lấy dữ liệu đầu vào cần mã hóa từ file input
Trang 10-Giải mã những kí tự được đã được mã hóa bằng RSA trở lại thành chuỗi hash.(thuật toán hash: sha512)
-So sánh giá trị của văn bản ban đầu và văn bản sau khi đã được nhận của người nhận nếu là giống nhau thì chứng tỏ văn bản gốc chưa bị thay đổi, nếu khác nhau thì chứng tỏ văn bản gốc đã bị tấn công trên đường truyền mạng
IV KẾT LUẬN
Trang 11-Bài báo cáo đã giới thiệu : quá trình tạo và kiểm tra chữ ký số; cài đặt thử
nghiệm tạo và kiểm tra chữ ký số để đảm bảo tính toàn vẹn dữ liệu
V TÀI LIỆU THAM KHẢO
[1] L V Phùng, Giáo trình an toàn và bảo mật thông tin
[2] H m h R v c k số [Online] Available: https://viblo.asia/p/he-ma-hoa-rsa-va-chu-ky-so-6J3ZgkgMZmB
[3] "Mã hóa RSA," [Online] Available: https://vi.wikipedia.org/wiki/RSA_
%28m%C3%A3_h%C3%B3a%29
[4] "Hễ mã hóa RSA và chữ kí số," [Online] Available:
https://manhhomienbienthuy.github.io/2017/02/20/he-ma-hoa-rsa-va-chu-ky-so.html
[5] N G d GTVT, "Giáo trình an toàn và bảo mật thông tin"