Chương này trình bày một số nội dung cơ bản sau: Mã hóa công khai RSA, nguyên tắc thực hiện của RSA, lý thuyết số, thuật toán Euclid mở rộng, mã hóa bảo mật, mã hóa chứng thực, phát hiện và chỉnh lỗi trong truyền tin. Mời các bạn cùng tham khảo.
Trang 1An Toàn Thông Tin
• Mã hóa dữ liệu
• Kiểm tra chỉnh sửa dữ liệu
Trang 2Mã hóa công khai RSA
RSA: Phương pháp RSA là một phương pháp
mã hóa khóa công khai RSA được xây dựngbởi các tác giả Ron Rivest, Adi Shamir và LenAdleman tại học viện MIT vào năm 1977, vàngày nay đang được sử dụng rộng rãi Về mặttổng quát RSA là một phương pháp mã hóatheo khối Trong đó bản rõ M và bản mã C làcác số nguyên từ 0 đến 2i với i số bít của khối.Kích thước thường dùng của i là 1024 bít
RSA sử dụng hàm một chiều là vấn đề phântích một số thành thừa số nguyên tố
Trang 3Nguyên tắc thực hiện của RSA
Trang 4Nguyên tắc thực hiện của RSA
Trang 5Nguyên tắc thực hiện của RSA
Trang 6Lý thuyết số
Trang 7Thuật toán Euclid mở rộng
Trang 8Thuật toán Euclid mở rộng
Trang 9Tìm số nghịch đảo
Bây giờ ta xét bài toán: nếu GCD(m, b) = 1, thì tìm nghịch đảo của b theo Modulo
m Ta mở rộng thuật toán Ơcơlit vừa tìm ước chung lớn nhất của m và b, vừa tính nghịch đảo trong trường hợp GCD(m, b) = 1.
Thuật toán Euclid mở rộng:
EXTENDED EUCLID(m, b) 1.(A1, A2, A3)=(1, 0, m);
Trang 10Thực vậy, các quan hệ sau là bất biến:
mT1+ bT2= m(A1 – Q.B1) + b (A2 – Q.B2)
= (mA1 + bA2) - Q(mB1+ bB2)
= A3 – Q.B3
= T3Khi sang bước lặp tiếp theo đổi vai trò B sang A và T sang B, thì các công thức đối (1) và (2) đối với A, B sẽ đúng, và do đó theo chứng minh trên (3) sẽ đúng trong bước lặp tiếp theo Vậy (1), (2), (3) là các bất biến của vòng lặp.
Cuối cùng khi B3 = 1, thì từ các bất biến ta có:
mB1+ bB2 = 1
bB2 = 1- mB1
bB2 = 1 mod m
Do đó: B2 = b-1 mod m
Trang 11Ví dụ Tìm nghịch đảo của 550 trong GL(1759)
Mỗi bước thực hiện thuật toán Ơcơlit mở rộng
sẽ được mô tả bởi một hàng trong bảng sau
Trang 123) Chọn e = 3 nguyên tố cùng nhau với n
4) Tính nghịch đảo của e trong phép modulo n được d = 7 (3x7 = 21)
5) Khóa công khai KU = (e, N) = (3, 33)
Khóa bí mật KR = (d, N) = (7, 33)
Trang 13Mã hóa bảo mật
Trang 14Mã hóa chứng thực
Trang 15Phát hiện và chỉnh lỗi trong truyền tin
Phát hiện và chỉnh lỗi trong truyền tin
Nguyên tắc chung: Trong quá trình truyền dữ liệu có thể
gặp sự thay đổi các bit thông tin do nhiễu hoặc do sai
hỏng của thiết bị hay module vào ra Vì vậy, thực tế đặt
ra là phải làm sao phát hiện được lỗi và có thể sửa sai
được Một trong phương pháp phát hiện lỗi (EDC: Error
Dectecting Code) và sửa lỗi (ECC: Error Correcting Code)
là: Giả sử cần kiểm tra m bit thì người ta ghép thêm k bit kiểm tra được mã hoá theo cách nào đó rồi truyền từ ghép
m+k bit ( k bit được truyền không mang thông tin nên gọi là bit dư thừa)
Trong đó m là số bit cần ghi vào bộ nhớ và k bit là số bit cần tạo ra kiểm tra lỗi trong m bit.
Trang 16Khi đọc dữ liệu ra có khả năng sau:
Không phát hiện dữ liệu có lỗi.
Phát hiện thấy dữ liệu lỗi và có thể hiệu chỉnh dữ liệu lỗi thành đúng.
Phát hiện thấy lỗi nhưng không có khả
năng chỉ ra lỗi vì thế phát ra tín hiệu báo lỗi.
Sơ đồ phát hiện lỗi và sửa lỗi
Phát hiện và chỉnh lỗi trong truyền tin
Trang 17Phát hiện và chỉnh lỗi trong truyền tin
Trang 18Ví dụ 1: Phát hiện lỗi với bit chẵn lẻ(Party)
Mã EDC đơn giản là bit chẵn lẻ được gắn thêm
vào các bit dữ liệu.
Nếu bit chẵn lẻ =1: nếu số bit 1 trong xâu là lẻ
Hoặc sử dụng Nếu bit chẵn lẻ =0: nếu số bit 1 là chẵn
Ưu điểm: đơn giản và số bit dư thừa ít.
Nhược điểm: không định vị được lỗi, hoặc nếu có sự
thay đổi cả hai bit hoặc 1 hoặc 0 thì không phát hiện được.
Khắc phục nhược điểm trên xây dựng mã EDC khối.
Phát hiện và chỉnh lỗi trong truyền tin
Trang 19Ví dụ 2: Phát hiện lỗi bằng mã dư thừa CRC
(Cycle Redundary Check).
Nguyên tắc : Một xâu nhị phân bất kỳ có thể coi
là tập hợp các hệ số của đa thức B(x) trong đó x là hư
số Chọn đa thức G(x) là đa nào đó ta quy định
trước gọi đa thức sinh Ta tiến hành chia module2 đa thức B(x) cho G(x) ta được thương số Q(x) và phần dư R(x).
cho đa thức sinh nếu phép chia có dư thì có lỗi
Phát hiện và chỉnh lỗi trong truyền tin
Trang 20Phát hiện và chỉnh lỗi trong truyền tin
Trang 21Phát hiện và chỉnh lỗi trong truyền tin
Trang 22Phát hiện và chỉnh lỗi trong truyền tin