Upload
dechevui2000
View
126
Download
9
Embed Size (px)
Citation preview
Nhóm: 2
Thành viên: Lưu Doãn Bắc
Phan Lạc Dương
Nguyễn Xuân Hiệp
MÃ HÓA KHÓA CÔNG KHAI
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Hà Nội, 3-2014
I. Giới thiệu về mã hóa và mã hóa không đối xứng
1 Khái niệm về mã hóa:
1.1 Khái niệm
1.2 Các yêu cầu đối với mã hóa.
1.3 Phân loại mã hóa.
1.4 Tại sao cần phải mã hóa.
2 Mã hóa bất đối xứng.
2.1 Tại sao mã hóa không đối xứng ra đời
2.2 Cơ chế hoạt động.
2.3 Các đặc điểm của hệ mã hóa không đối xứng
I. Giới thiệu về mã hóa và mã hóa không đối xứng
1 Khái niệm về mã hóa:
Nói đến mã hóa tức là nói đến việc che dấu thông tin bằng cách sử dụng thuật toán
Ví dụ:
E 3
A 4
Các yêu cầu đối với mã hóa.
1• Confidentiality (Tính bí mật)
2• Authentication (Tính xác thực)
3 • Integrity (Tính toàn vẹn)
4 • Non-repudation (Tính không thể chối bỏ)
Phân loại mã hóa.
Mã hóa
theo các phương pháp
Mã hóa cổ điển
Mã hóa đối xứng
Mã hóa bất đổi xứng
Hàm băm một chiều
theo số lượng khóa
Mã hóa khóa bí mật
Mã hóa khóa công khai
Tại sao phải mã hóa
Lỗi Hệ Thống
2. Mã hóa không đối xứng
Nó được thiết kế sao cho khóa sử dụng trong quá trình mã hóa khác biệt với khóa được sử dụng trong quá trình giải mã.
Tại sao mã hóa bất đối xứng ra đời?
Vấn đề trao đổi khóa
giữa người gửi và người
nhận
Tính bí mật của khóa
Mã hóa không
đối xứng
Cơ chế hoạt độngSender yêu cầu cung cấp hay tự tìm khóa công khai của Receiver trên Server chịu trách nhiệm quản lí khóa công khai đấy.Sau đó 2 bên thỏa thuận thuật toán, Sender sử dụng mã công khai của Receiver cùng vs thuật toán đã thỏa thuận để mã hóaThông tin sau khi được mã hóa gủi đến Receiver, lúc này chính Sender cũng không thể giải mã thông tin đó.Receiver sẽ dùng khóa của mình để giải mã và lấy thông tin
Đặc điểm của mã hóa không đối xứng
Khối lượng tính toán lớn
Mẫu chốt là Private key.
Hệ thống này an toàn hơn
Tốc độ mã hóa chậm hơn
CHƯƠNG III: GIẢI THUẬT RSA
1. Giới thiệu về RSA
2. Mô tả hoạt động của RSA
3. Các vấn đề của RSA
4. Ứng dụng thực tế của RSA
3.1. Giới thiệu về RSA- RSA là một giải thuật mã hóa khóa công khai được phát triển vào năm 1977 tại Học Viện Công Nghệ Masachusetts. Tên tiêu chuẩn được lấy từ 3 chữ cái đầu tiên của tên 3 tác giả Ronal Rivest, Adi Shamir, Leonard Adleman- RSA được xem là một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc SD khóa công khai. RSA đang được SD phổ biến trong thương mại điện tử
3.2. Mô tả hoạt động của RSA- Khóa công khai ( Pulic Key )- Khó bí mật ( Private Key )
QUÁ TRÌNH TẠO KHÓA, MÃ HÓA, GIẢI MÃ
VÍ DỤ
Lấy p = 61, q = 53
n = pq = 3233,
e = 17
d = 2753
Khi đó:- Để mã hóa văn bản có giá trị 123, ta thực hiện phép tính:
M = 12317 mod 3233 = 855
- Để giải mã văn bản có giá trị 855, ta thực hiện phép tính:
C = 8552753 mod 3233 = 123
CÁC VẤN ĐỀ CỦA RSA
- Vét cạn khóa: Cách tấn công này thử tất cả các khóa d có thể có để tìm ra bản giải mã.
- Phân tích N = p.q: Người ta cho rằng việc làm này là bất khả thi. Tuy nhiên với sự phát triển về tốc độ xử lý của máy tính ngày càng nhanh, cùng với sự ra đời của rất nhiều các thuật toán phân tích mới thì RSA đã bị phá mã vào năm 1994 bằng thuật toán Quadratic sieve
- Đo thời gian: Trong thuật toán bình phương liên tiếp, nếu 1 bit của d là 1 thì xảy ra hai phép modulo, còn nếu bít đó là 0 thì chỉ có 1 phép modulo, do đó thời gian thực hiện giải mã là khác nhau. Bằng một số phép thử chosen – plaintext người pha mã có thể biết được các bit của d là 0 hay 1 và từ đó biết được d
ỨNG DỤNG THỰC TẾ CỦA RSA1. Chữ ký điện tử- Chữ ký điện tử là chữ ký được tạo lập dưới dạng từ, chữ số, ký hiệu,
âm thanh hoặc các hình thức khác bằng phương tiện điện tử- Chữ ký điện tử được tạo ra bằng cách áp dụng thuật toán băm một
chiều trên văn bản gốc để tạo ra bản phân tích văn bản (message digest ) hay còn gọi là fingerprint, sau đó mã hóa bằng private key tạo ra chữ ký số đính kèm với văn bản gốc được tính lại fingerprint để so sánh với fingerprint cũ cũng được phục hồi từ việc giải mã chữ ký số.
2. SSL- Ra đời vào năm 1994, bởi Netscape- SSL là giao thức đa mục đích được thiết kế nhằm mã hóa toàn bộ
thông tin đến/đi giữa 2 chương trình, ứng dụng một cổng định trước (socket 443). Phiên bản SSL hiện nay là SSL 3.0 và đang được tiếp tục bổ xung hoàn thiện
CHƯƠNG VI:
GIAO THỨC THỎA THUẬN KHÓA DIFFIE - HELLMAN
4.1. Giao thức thỏa thuận khóa Diffie – Hellman
4.1.1. Khái niệm thỏa thuận khóa.
Thoả thuận khoá: việc trao đổi khoá giữa các chủ thể trong một cộng đồng nào đó có
thể được thiết lập một cách tự do giữa bất cứ hai người nào khi có nhu cầu trao đổi
thông tin.
4.2.2. Giao thức thỏa thuận khóa Diffie - Hellman.
- Trao đổi khóa Diffie – Hellman là thiết lập một khóa chia sẻ bí mật được sử dụng cho
thông tin liên lạc bí mật bằng cách trao đổi dữ liệu thông qua mạng công cộng. Đây mà
một trong số nhiều phương thức dùng để trao đổi khóa trong ngành mật mã học.
- Phương pháp này không cần có sự can thiệp của một TA ( cơ quan ủy thác) làm
nhiệm vụ điều hành hoặc phân phối khóa.
Phương pháp này cho phép những người sử dụng có thể cùng nhau tạo ra một khóa bí
mật thông qua 1 kênh truyền thông không đảm bảo về độ bảo mật .Khóa bí mật này sẽ
được dùng để người sử dụng trao đổi thông tin với nhau .
Cách thiết lập giao thức thỏa thuận khóa Diffie - Hellman.
Tình huống:
+ Alice và Bob muốn chia sẻ thông tin bảo mật cho nhau nhưng phương tiện truyền thông duy nhất
của họ là không an toàn. Tất cả các thông tin mà họ trao đổi được quan sát bởi Eve kẻ thù của họ.
+ Làm thế nào để Alice và Bob chia sẻ thông tin bảo mật cho nhau mà không làm cho Eve biết
được?
Giải quyết tình huống trên:
+ Alice và Bob đồng ý dùng chung về một nhóm cyclic hữu hạn G và một yếu tố tạo ra g trong G.
(Điều này thường được thực hiện rất lâu trước khi phần còn lại của giao thức, g được giả định là
được biết đến bởi tất cả các kẻ tấn công)
+ Khi Alice và Bob muốn truyền thông tin bảo mật cho nhau có thể cùng thực hiện theo giao thức
sau để trao đổi:
1. Alice chon ngẫu nhiên số aA (0 ≤ aA ≤ p-2) bí mật, tính bA= gaA mod p
và gửi bA cho Bob
2. Tương tự, Bob chọn ngẫu nhiên số aB (0 ≤ aB ≤ p-2) bí mật, tính bB= gaBmod p và gửi bB cho
Alice.
3. Alice tính được khóa: 4. Bob tính được khóa: + Bây giờ Alice và Bob có cùng khóa chung là: + Mô tả giao thức Diffie – Hellman bằng bảng sau:
Chú ý là chỉ có aA, aB và KA, KB là được giữ bí mật. Tất cả các giá trị còn lại như p, g, bA, bB, đều công khai. Một khi Alice và Bob tính được khóa bí mật dùng chung, họ có thể dùng nó làm khóa mã hóa chỉ họ biết để gửi các thông điệp qua cùng kênh giao tiếp mở. Đương nhiên, để đảm bảo an toàn, các giá trị aA, aB và p cần được lấy lớn, g không cần lấy giá trị quá lớn. Thực tế thì g thường lấy giá trị 2 hoặc 5.
Alice
Bob
Bí mật Công khai Tính toán Gửi Tính toán Công khai Bí mật
aA P, g aB
aA P, g , bA bA= gaA mod p bA P, g aB
aA bB bB= gaB mod p P, g , , bB aB
aA ,KA P, g , bA, bB
P, g , bA, bB aB , KB
modAaA BK b p
modBaB AK b p
modBaB AK b p
Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman.
Alice Bob Eve
Biết Không Biết
Biết Không biết
Biết Không biết
p=17 aB=? p=17 aA =? p=17 aA =?
g=5 g=2 g=2 aB=?
aA =6 aB=9 KA,B=?
bA =26 mod17=13 bB =29 mod17=2 bA=2aAmod17=13
bB =2aB mod 17=2 bA =2aA mod17=13 bB =2aB mod 17=2
KA=26 mod17=13 KB=139mod17=13 KA=2aAmod17
KB=13aBmod17=13 KA=2aAmod17=13 KB=13aBmod17
KA,B=26mod17
=13aB mod 17KA,B=2aAmod17=139 mod 17
KA,B=2aAmod17
=13aB mod 17
KA,B=13 KA,B=13
4.2.3.3. Giao thức là không an toàn đối với việc tấn công chủ động.
• Giao thức là không an toàn đối với việc tấn công chủ động bằng cách đánh tráo giữa đường. Nghĩa là một người thứ ba Eve có thể đánh tráo các thông tin trao đổi giữa Alice và Bob.
• Chẳng hạn, Eve thay gaA mà Alice định gửi cho Bob bởi ga’A và thay gaB mà Bob định gửi cho Alice bởi ga’B . Như vậy, sau khi thực hiện giao thức trao đổi khoá, Alice đã lập một khoá chung gaAa’B với Eve mà vẫn tưởng là với Bob; đồng thời Bob cũng lập một khoá chung ga’AaB với Eve mà vẫn tưởng là với Alice. Eve có thể giải mã mọi thông báo mà Alice tưởng nhầm là mình gửi đến Bob cũng như mọi thông báo mà Bob tưởng nhầm là mình gửi đến Alice.
• Một cách khắc phục kiểu tấn công này là làm sao để Alice và Bob có kiểm thử để xác nhận tính đúng đắn của các khoá công khai bA và bB. Người ta đưa vào giao thức trao đổi khoá Diffie-Hellman thêm vai trò điều phối của một TA để được một hệ phân phối khoá Diffie-Hellman như một cách khắc phục nhược điểm này. Trong hệ phân phối khoá Diffie-Hellman, sự can thiệp của TA là rất yếu, thực ra TA chỉ làm mỗi việc là cấp chứng chỉ xác nhận khoá công khai cho từng người dùng chứ không đòi hỏi biết thêm bất cứ một bí mật nào của người dùng.
Giao thức giành cho nhiều người
Nguyên tắc cơ bản
Trước tiên xét ví dụ Alice, Bob và Carol cùng tham gia giao thức Diffie-
Hellman như sau (tất cả tính toán dưới đây dựa trên modulo ):
1. Các bên thỏa thuận trước về các tham số p và g.
2. Mỗi bên tự tạo khóa riêng tư, gọi tên là a, b, và c .
3. Alice tính ga gửi cho Bob.
4. Bob tính (ga)b và gửi cho Carol.
5. Carol tính (gab)c =gabc và sử dụng giá trị đó làm khóa bí mật chia sẻ.
6. Bob tính gb và gửi cho Carol.
7. Carol tính (gb)c và gửi cho Alice.
8. Alice tính (gbc )a = gbca =gabc và sử dụng giá trị đó làm khóa bí mật chia sẻ.
9. Carol tính gc và gửi cho Alice.
10.Alice tính (gc)a và gửi cho Bob.
11.Bob tính (gca)b =gcab = gabc và sử dụng giá trị đó làm khóa bí mật chia sẻ.
Mã hóa đối xứng (mã hóa bí mật Mã hóa bất đối xứng(mã hóa công khai)
+ Sử dụng cùng 1 khóa bởi người gửi (cho việc mã hóa) và người nhận (cho việc giải mã).
+Thuật toán được chấp nhận rộng rãi nhất cho việc mã hóa khóa bí mật là thuật toán chuẩn mã hóa dữ liệu (DES) . Giao thức SET chấp nhận thuật toán DES với chìa khóa 64 bit của nó . Thuật toán này có thể phá mã được nhưng phải mất nhiều năm với chi phí hàng triệu đôla.
+Người gửi và người nhận thông điệp phải chia sẻ 1 bí mật, gọi là chìa khóa.
Sử dụng 2 khóa khác nhau ,1 khóa công khai (để mã hóa thông điệp – tất cả người sử dụng được phép biết ) và 1 khóa riêng (để mã hóa thông điệp –chỉ có người sở hữu nó mới biết . + Thuật toán được chấp nhận rộng rãi nhất cho việc mã hóa công khai là thuật toán RSA với nhiều kích cỡ khác nhau (1024 bít) .Thuật toán này không bao giờ bị phá bởi các hacker ,do đó nó được xem là phương pháp mã hóa an toàn nhất được biết cho đến nay .
+ Thông điệp được mã hóa chỉ có thể được giải mã với chìa kháo riêng của người nhận .
+ Hiện nay người ta phổ biến dùng các thuật toán bất đối xứng có tốc độ chậm hơn để phân phối chìa khóa đối xứng khi một phiên giao dịch bắt đầu, sau đó các thuật toán khóa đối xứng tiếp quản phần còn lại . Vấn đề về bảo quản sự phân phối chìa khóa một cách đáng tin cậy cũng tồn tại ở tầng đối xứng, song ở một điểm nào đấy, người ta có thể kiểm soát chúng dễ dàng hơn. Tuy thế, các khóa đối xứng hầu như đều được sinh tạo tại chỗ.
+Các thuật toán khóa đối xứng không thể dùng cho mục đích xác thực(authentication )hay mục đích thoái thác (non-repudiation) được.
+ Các thuật toán đối xứng nói chung đòi hỏi công suất tính toán thấp .
+ Ứng dụng rõ ràng nhất của mật mã hóa bất đối xứng là bảo mật :1 văn bản được mã hóa bằng khóa công khai của 1 người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó .
+Các thuật toán tạo chữ ký số khóa công khai có thể dùng để nhận thực .
+Các thuật toán bất đối xứng có công suất tính toán cao .(có khối lượng tính toán nhiều hơn hàng trăm,hàng ngàn lần 1 thuật toán khóa đối xứng có chất lượng tương đương
CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE !