Diffie - Hellman algorithm
September 10, 2017 | Author: Metal28032013 | Category: N/A
Short Description
Tim hieu ve thuat toan bao mat Diffie - Hellman, nhung dac tinh cua no, diem manh, diem yeu, so sanh voi nhung thuat toa...
Description
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
Bài tập lớn An toàn bảo mật thông tin Đề tài Giao thức thỏa thuận khóa Diffie - Hellman Giáo viên hƣớng dẫn: Th.S Trần Phƣơng Nhung Nhóm sinh viên: 1. Phạm Thị Yến 2. Nguyễn Thị Nhâm 3. Nguyễn Đình Triệu 4. Lê Thanh Nghị Hà Nội, Tháng 11/2012
Giao thức thỏa thuận khóa Diffie Hellman
Mục Lục MỤC LỤC ................................................................................................................. 1 PHÂN CÔNG CÔNG VIỆC ..................................................................................... 2 LỜI MỞ ĐẦU ........................................................................................................... 3 CHƢƠNG I: GIỚI THIỆU VỀ GIAO THỨC DIFFIE - HELLMAN...................... 4 CHƢƠNG II: GIAO THỨC THỎA THUẬN KHÓA DIFFIE - HELLMAN ......... 6 1. KHÁI NIỆM THỎA THUẬN KHÓA. ........................................................................ 6 2. GIAO THỨC THỎA THUẬN KHÓA DIFFIE - HELLMAN. ......................................... 6 2.1. Cách thiết lập giao thức thỏa thuận khóa Diffie - Hellman....................... 6 2.2. Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman. .................................. 7 2.3. Ví dụ bằng số minh họa. ............................................................................ 8 2.4. Mở rộng bài toán cho nhiều bên ................................................................ 9 2.5. Các đặc điểm đặc trƣng của giao thức thảo thuận khóa Diffie - Hellman. 10 2.5.1. Gi o thức à n toàn đối với việc t n c ng thụ động ........................... 10 2.5.2. Giao thức à kh ng n toàn đối với việc t n công chủ động. ............... 12 2.6. Giao thức thỏa thuận khóa Diffie - Hellman có chứng chỉ xác nhận. ..... 13 TÀI LIỆU THAM KHẢO ....................................................................................... 15
1
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman
Phân công công việc Stt
1
2
3
4
Mã SV
0541060168
0541060137
0541060129
0541060165
Tên SV
Nguyễn Thị Nhâm
Lê Thanh Nghị
Nội dung Tìm hiểu về giao thức thỏa thuận khóa Diffie Hellman + Ví dụ bằng số minh họa Viết chƣơng trình thực hiện giao thức Diffie - Hellman
Trang- Nhận xét trang Tích cực hoạt động, 4 - 10 và nghiên cứu.Hoàn thành tốt nhiệm vụ
Tìm hiểu các đặc điểm đặc trƣng của giao Nguyễn Đình Triệu thức thỏa thuận 10 - 14 khóa Diffie Hellman
Phạm Thị Yến
Tìm hiểu về giao thức thỏa thuận khóa 4 - 10 Diffie Hellman + Ví dụ bằng số min họa
Tích cực nghiên cứu. Hoàn thành tốt nhiệm vụ Tích cực nghiên cứu. Hoàn thàn tốt nhiệm vụ
Tích cực nghiên cứu. Hoàn thành tốt nhiệm vụ.
2
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman
Lời mở đầu Tr o đổi thông tin luôn là nhu cầu cần thiết củ con ngƣời, đặc biệt là trong cuộc sống hiện đại ngày nay khi mà mạng máy tính và Internet phát triển một cách mạnh mẽ và giữ vai trò quan trọng trong mọi ĩnh vực củ đời sống xã hội nhƣ: chính trị, quân sự, học tập, mua sắm, kinh do nh,… T t cả những thông tin liên qu n đến những công việc này đều đƣợc máy vi tính quản lý và truyền đi trên hệ thống mạng Đối với những thông tin bình thƣờng thì kh ng i chú đến, nhƣng đối với những thông tin mang tính ch t sống còn đối với một cá nhân hay một tổ chức thì v n đề bảo mật thông tin là r t quan trọng và đƣợc đặt ên hàng đầu. Chính vì vậy nên r t nhiều tổ chức, cá nhân đã nghiên cứu, tìm kiếm và đƣ r r t nhiều giải pháp bảo mật thông tin Trong đó gi o thức Diffie - Hellman r t thích hợp trong truyền thông tin giữ liệu và có tính bảo mật khá cao. Báo cáo này do nhóm biên soạn dựa trên những kiến thức ĩnh hội đƣợc từ cô giáo Th.S. Trần Phƣơng Nhung, và thông qua sự tìm hiểu, nghiên cứu tích cực của các thành viên trong nhóm.Báo cáo củ nhóm đi sâu về đi sâu vào trình bày gi o thức thỏa thuận khóa Diffie Hellman với nội dung 3 chƣơng đƣợc chia thành các chủ đề khác nhau, từ việc giới thiệu sơ bộ, trình bày khái niệm, cách thiết lập, sơ đồ và các ví dụ minh họa cụ thể về giao thức thỏa thuận khóa. Mặc dù nhóm đã r t cố gắng song vẫn không tránh khỏi một số thiếu sót mong thầy cô và bạn bè đóng góp ý kiến để nhóm hoàn thiện hơn báo cáo này. Xin chân thành cảm ơn tới bạn bè, ngƣời thân đã góp ý, giúp đỡ nhóm Đặc biệt cảm ơn c giáo Th.S. Trần Phƣơng Nhung ngƣời đã hƣớng dẫn nhóm hoàn thành báo của mình!
3
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman
Chương I: Giới thiệu về giao thức Diffie - Hellman Năm 1976, một sự đột phá đã th y đổi nền tảng cơ bản trong cách làm việc của các hệ thống mật mã hó Đó chính à việc công bố của bài viết phƣơng hƣớng mới trong mật mã học (New Directions in Cryptography) của Whitfield Diffie và Martin Hellman. Bài viết giới thiệu một phƣơng pháp hoàn toàn mới về cách thức phân phối các khóa mật mã. Là hệ thống đầu tiên sử dụng "public-key" hoặc các khóa mật mã "kh ng đối xứng", và nó đƣợc gọi à tr o đổi khóa Diffie-Hellman (Diffie-Hellman key exchange). Bài viết còn kích thích sự phát triển gần nhƣ tức thời của một lớp các thuật toán mật mã hóa mới, các thuật toán chìa khóa b t đối xứng (asymmetric key algorithms). Tr o đổi khóa Diffie-Hellman bị cáo buộc rằng nó đã đƣợc phát minh ra một cách độc lập một vài năm trƣớc đó trong Trụ sở Truyền Thông Chính phủ Anh (GCHQ) bởi M co m J Wi i mson) Vào năm 2002, He m n đã đƣ r thuật toán đƣợc gọi chung à tr o đổi khóa Diffie–Hellman–Merkle công nhận sự đóng góp của cả R ph Merk e, ngƣời đã phát minh r thuật toán mã hóa công khai. Trƣớc thời kỳ này, hầu hết các thuật toán mật mã hóa hiện đại đều là những thuật toán khó đối xứng (symmetric key gorithms), trong đó cả ngƣời gửi và ngƣời nhận phải dùng chung một khóa, tức khóa dùng trong thuật toán mật mã, và cả h i ngƣời đều phải giữ bí mật về khóa này. T t cả các máy điện cơ dùng trong thế chiến II, kể cả mã Caesar và mã Atbash, và về bản ch t mà nói, kể cả hầu hết các hệ thống mã đƣợc dùng trong suốt quá trình lịch sử nữ đều thuộc về loại này. Đƣơng nhiên, khó của một mã chính là sách mã (codebook), và à cái cũng phải đƣợc phân phối và giữ gìn một cách bí mật tƣơng tự. Do nhu cầu an ninh, khóa cho mỗi một hệ thống nhƣ vậy nh t thiết phải đƣợc tr o đổi giữa các bên giao thông liên lạc bằng một phƣơng thức an toàn nào đ y, trƣớc khi họ sử dụng hệ thống (thuật ngữ thƣờng đƣợc dùng là 'thông qua một kênh an toàn'), ví dụ nhƣ bằng việc sử dụng một ngƣời đƣ thƣ đáng tin cậy với một cặp tài liệu đƣợc khóa vào cổ tay bằng một cặp khóa tay, hoặc bằng cuộc gặp gỡ mặt đối mặt, hay bằng một con chim bồ câu đƣ thƣ trung thành V n đề này chƣ b o giờ đƣợc xem là dễ thực hiện, và nó nhanh chóng trở nên một việc gần nhƣ kh ng thể quản ý đƣợc khi số ƣợng ngƣời th m gi tăng ên, h y khi ngƣời ta kh ng còn các kênh n toàn để tr o đổi khóa nữa, hoặc lúc họ phải liên tục th y đổi 4
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman các chìa khóa-một thói quen nên thực hiện trong khi làm việc với mật mã. Cụ thể là mỗi một cặp truyền thông cần phải có một khóa riêng nếu, theo nhƣ thiết kế của hệ thống mật mã, không một ngƣời thứ ba nào, kể cả khi ngƣời y là một ngƣời dùng, đƣợc phép giải mã các th ng điệp. Một hệ thống thuộc loại này đƣợc gọi là một hệ thống dùng chìa khóa mật, hoặc một hệ thống mật mã hó dùng khó đối xứng. Hệ thống tr o đổi khóa Diffie-Hellman (cùng những phiên bản đƣợc nâng c p kế tiếp hay các biến thể của nó) tạo điều kiện cho các hoạt động này trong các hệ thống trở nên dễ dàng hơn r t nhiều, đồng thời cũng n toàn hơn, hơn t t cả những gì có thể àm trƣớc đây. Mặc dù, bản thân thuật toán là một giao thức chọn khóa nặc danh (không cần thông qua xác thực) nhƣng nó đã cung c p ra một cơ sở cho các giao thức xác thực khác nhau khá hoàn hảo. Phƣơng thức tiếp nối ngay sau Diffie – Hellman là RSA, một thể hiện của mã khóa công khai sử dụng thuật toán b t đối xứng.
5
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman
Chương II: Giao thức thỏa thuận khóa Diffie - Hellman 1. Khái niệm thỏa thuận khóa. Thoả thuận khoá: việc tr o đổi khoá giữ các chủ thể trong một cộng đồng nào đó có thể đƣợc thiết ập một cách tự do giữ b t cứ h i ngƣời nào khi có nhu cầu tr o đổi th ng tin 2. Giao thức thỏa thuận khóa Diffie - Hellman. - Tr o đổ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 tr o đổ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 để tr o đổ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ơ qu n ủ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 một 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 tr o đổi thông tin với nhau. 2.1. 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 nh u 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ọ tr o đổ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? + Thoạt nhìn ta th y Alice và Bob phải đối mặt với một nhiệm vụ không thể. Giải quyết tình huống trên: + A ice 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 âu trƣớc khi phần còn lại của giao thức, g đƣợc giả định à đƣợ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 s u để tr o đổi: 1. A ice chọn ngẫu nhiên số A (0 ≤ A ≤ p-2) bí mật, tính bA g a mod p và gửi bA cho Bob . 2. Tƣơng tự, Bob chọn ngẫu nhiên số B (0 ≤ B ≤ p-2) bí mật, tính bB g a mod p và gửi bB cho Alice. 3. Alice tính đƣợc khóa: K A bBa mod p A
B
A
6
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman 4. Bob tính đƣợc khóa: K B bAa mod p B
+ Bây giờ Alice và Bob có cùng khóa chung là: K A K B g a AaB mod p
+ Mô tả giao thức Diffie - Hellman bằng bảng sau: Alice Bí mật aA aA aA aA, KA
Công khai Tính toán Gửi p, g → a p, g, bA bA g mod p bA→ ←bB p, g, bA, bB A
Bob Tính toán
Công khai
p, g bB g a mod p p, g, bB p, g, bA, bB B
Bí mật aB aB aB aB, KB
Chú ý là chỉ có aA, aB và KA, KB à đƣợ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 A ice 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 hơ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
2.2. Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman. Sơ đồ dƣới đây minh họa phần nào ý tƣởng chung. Đầu tiên, A ice và Bob đã thống nh t về màu sơn chung (màu vàng), Alice và Bob tr o đổi màu sắc đã đƣợc trộn của họ. Cuối cùng, điều này tạo ra một màu bí mật giống hệt nhau mà kẻ khác không có khả năng tạo đƣợc ra giống vậy. Kể từ đây, Alice và Bob sẽ tr o đổi bằng cách mã hóa và giải mã sử dụng khóa bí mật đó (thể hiện bằng màu sơn bí mật cuối cùng).
7
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman
Hình 1: Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman 2.3. Ví dụ bằng số minh họa. 1. Alice và Bob thống nh t với nhau chọn số nguyên tố p = 37 và g = 5. 2. Alice chọn một giá trị ngẫu nhiên b t kỳ aA = 7 và bí mật aA. Alice tính bA = 57 mod 37 = 18. S u đó A ice gửi bA = 18 cho Bob. 3. Bob chọn một giá trị ngẫu nhiên b t kỳ aB = 5 và bí mật aB Bob tính bB = 55 mod 37 = 17. S u đó Bob gửi bB = 17 cho Alice. 4. Bob nhận đƣợc bA = 18 và tính khóa chung: KB = 184 mod 37=15, và bí mật KB 8
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman 5. Alice nhận đƣợc bB =17 và tính khóa chung: KA= 177 mod 37=15, và bí mật KA 2.4. Mở rộng bài toán cho nhiều bên Thỏ thuận khó Diffie-He m n kh ng chỉ giới hạn để thƣơng ƣợng một khó dùng chung giữ h i bên B t cứ một số ƣợng ngƣời dùng nào cũng có thể th m gi vào một thỏ thuận nhƣ thế bằng cách ặp các gi o thức thỏ thuận và tr o đổi dữ iệu trung gi n Ví dụ, A ice, Bob và C ro có thể th m gi vào một thỏ thuận Diffie-He m n nhƣ s u (với t t cả phép toán đều y mod p): 1. Các bên đồng ý với các th m số củ giải thuật à p và g 2. Các bên tự sinh khó bí mật, đặt tên à A, aB và ac. 3. Alice tính g a và gửi nó cho Bob A
4. Bob tính ( g a ) a = g a a và gửi nó cho C ro A
B
5. Carol tính ( g a
AaB
A B
) a C = g a AaB aC và dùng nó àm khó bí mật
6. Bob tính g a và gửi nó cho C ro B
7. Carol tính ( g a ) a = g a a và gửi nó cho A ice B
C
B C
8. Alice tính ( g a a ) a = g a a a = g a a a và dùng nó àm khó bí mật B C
A
B C A
A B C
9. Carol tính g a và gửi nó cho A ice C
10.Alice tính ( g a ) a = g a a và gửi nó cho Bob C
A
A C
11.Bob tính g a a a = g a a a = g a a a và dùng nó àm khó bí mật C A B
C A B
A B C
Một kẻ nghe trộm có thể biết g a , g a , g a , g a a , g a a , g a a nhƣng kh ng thể nào kết hợp chúng để sinh ại g a a a Để mở rộng cơ chế này cho các nhóm ớn hơn cần phải tuân thủ 2 nguyên tắc cơ bản s u: Bắt đầu với một khó “rỗng” chỉ gồm có g, khó bí mật đƣợc tạo r bằng cách tăng giá trị hiện tại theo số mũ bí mật củ những bên th m gi một ần, theo thứ tự b t kỳ B t kỳ giá trị trung gi n nào (số mũ sẽ ên tới tích N-1 số mũ, trong đó N à số bên th m gi vào nhóm) đều có thể bị c ng kh i, nhƣng giá trị cuối cùng (khi cả N số mũ đều đƣợc dùng) sẽ tạo thành khó bí mật dùng chung và do đó phải tránh bị c ng kh i Vì vậy, mỗi ngƣời dùng cần thu về bản s o củ khó mật bằng cách sử dụng khó mật củ chính họ úc cuối cùng (mặt khác, kh ng có cách nào để bên th m gi cuối cùng tr o khó cuối cho bên nhận củ nó, vì bên này phải giữ bí mật khóa) A
B
C
A B
B C
C A
A B C
Những nguyên tắc này mở r r t nhiều tùy chọn để sắp xếp các bên th m gi đóng góp tạo khó Phƣơng pháp đơn giản và rõ ràng nh t à sắp N bên th m gi vào một vòng tròn và có N khó qu y qu nh vòng tròn này, cho tới khi mỗi khó đều đã đƣợc N bên đóng góp xây dựng (kết thúc với chính bên sở hữu nó) và mỗi bên th m gi đều đã đóng góp vào N khó (kết thúc với khó củ họ) Tuy nhiên, điều này yêu cầu mỗi bên phải tính N số mũ thành phần Bằng cách chọn một thứ tự tối ƣu hơn, phụ thuộc vào thực tế à các khó có thể 9
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman trùng ặp, chúng t có thể giảm khối ƣợng tính toán số mũ củ mỗi bên à og2(N) + 1 sử dụng phƣơng pháp Chi để trị, đƣợc đề xu t s u đây đối với 8 bên: 1. Các bên A, B, C và D mỗi bên thực hiện tính toán g a a a a , giá trị này đƣợc gửi cho E, F, G, H Ngƣợc ại, họ cũng nhận đƣợc g a a a a . 2. Các bên A và B mỗi bên tính g a a a a a a , gửi cho C và D, khi đó C và D cũng àm việc tƣơng tự à gửi g a a a a a a cho A và B. 3. Bên A tính toán g a a a a a a a và gửi cho B, tƣơng tự, B gửi ại g a a a a a a a cho A C và D cũng àm việc tƣơng tự 4. Bên A tính số mũ cuối thu đƣợc g a a a a a a a a = g a a a a a a a a , trong khi B àm điều tƣơng tự để nhận đƣợc g a a a a a a a a = g a a a a a a a a C và D cũng àm điều tƣơng tự 5. Các bên từ E qu H đồng thời thực hiện tính toán sử dụng g bcd àm điểm khởi đầu A B C D
E F G H
E F G H A B
E F G H C D
E F G H C D A
E F G H D C B
E F G H C D B A
A B C D E F G H
E F G H C D A B
A B C D E F G H
S u khi hoàn thành thuật toán, t t cả các bên th m gi đều đã sở hữu khó mật g a a a a a a a a , nhƣng mỗi bên chỉ phải tính toán 4 ần số mũ thành phần, th y vì phải tính 8 ần nhƣ trong sắp xếp vòng tròn đơn giản A B C D E F G H
2.5. Các đặc điểm đặc trưng của giao thức thảo thuận khóa Diffie - Hellman. 2.5.1. Giao thức à an toàn đối với việc t n c ng thụ động. Gi o thức à n toàn đối với việc t n c ng thụ động, nghĩ à một ngƣời thứ b dù biết bA và bB sẽ khó mà biết đƣợc KA,B. Xét ví dụ: 1. Alice và Bob thống nh t với nhau chọn số nguyên tố p = 17 và g = 2. 2. Alice chọn một giá trị ngẫu nhiên b t kỳ aA = 6 và bí mật aA. Alice tính bA = 26 mod 17 = 13. S u đó A ice gửi bA = 13 cho Bob. 3. Bob chọn một giá trị ngẫu nhiên b t kỳ aB = 9 và bí mật aB Bob tính bB = 29 mod 17 = 2. S u đó Bob gửi bB = 2 cho Alice. 4. Bob nhận đƣợc bA = 13 và tính khóa chung: KB = 139 mod 17=13, và bí mật KB 5. Alice nhận đƣợc bB = 2 và tính khóa chung: KA= 26 mod 17=13, và bí mật KA Eve là một kẻ nghe trộm – cô ta theo dõi những gì Alice và Bob gửi cho nhau nhƣng kh ng thể th y đổi nội dung các cuộc liên lạc. Eve muốn tái thiết lại những thông tin bảo mật mà Alice và Bob chia sẻ cho nhau. Eve sẽ phải đối mặt với một nhiệm vụ thực sự khó khăn. Dƣới đây à các biểu đồ giúp xác định ai biết đƣợc giá trị nào. (Eve là một kẻ nghe trộm.) 10
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman
Alice Biết p = 17
Không biết aB = ?
g=5 aA = 6 bA = 26 mod 17 = 13 bB 2 aB mod 17 2
KA= 26 mod 17=13 K B 13 aB mod 17 13
K A,B 26 mod17 13aB mod17
KA,B = 13
Bob Biết p = 17 g=2 aB = 9 bB = 29 mod 17 = 2
Không biết aA =?
bA 2 a A mod 17 13
KB = 139 mod 17=13 K A 2 a A mod 17 13
K A,B 2aA mod17 139 mod17
KA,B= 13 Eve Biết p = 17 g=2 bA 2 a A mod 17 13 bB 2 aB mod 17 2
Không biết aA = ? aB =? KA,B = ?
K A 2 a A mod 17 K B 13 aB mod 17
K A,B 2aA mod17 13aB mod17 11
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman Ta th y Eve rơi vào tình thế tiến thoái ƣỡng nam. Cô y biết đƣợc giá trị của bA, bB vì vậy cô y biết đƣợc g a , g a . Cô y cũng biết những giá trị của g và p, nhƣng ại không biết đƣợc các giá trị của aA, aB và KA, B Đây chính à bài toán Diffie - Hellman mà khi biết bA, bB tìm KA,B, bài toán này tƣơng đƣơng với bài toán phá mã ElGammal. Bây giờ t đi chứng minh điều này. - Phép mật mã E G mm với khoá K (p, g, , β), trong đó β ga mod p cho t từ một bản rõ x và một số ngẫu nhiên k ∈ Zp-1 ập đƣợc mật mã eK(x, k) = (y1, y2) với y1 = gk mod p, y2 = xβk mod p Và phép giải mã đƣợc cho bởi y1 = gk mod p Giả sử t có thuật toán A giải bài toán Diffie-Hellman. Ta sẽ dùng A để phá mã E G mm nhƣ s u: Cho mật mã (y1, y2) Trƣớc tiên, dung A cho y1 = gk mod p và β ga mod p t đƣợc A(y1,B) = gka βk mod p S u đó, t thu đƣợc bản rõ x từ βkvà y2 nhƣ sau: A
B
x = y2(βk)-1 mod p. Ngƣợc ại, giả sử có một thuật toán khác à B dùng để phá mã E G mm , tức à B (p, g, β, y1, y2) = x = y2 (y1a)-1 mod p p dụng B cho β bA , y1 = bB, y2 1, t đƣợc B( p, , bA , bB ,1) 1 (1.(bBa ) 1 ) 1 a a mod p tức giải đƣợc bài toán Diffie-Hellman. Trên thực tế các giá trị của p, aA, aB là r t lớn. Nếu p là số nguyên tố có ít nh t 300 chữ số, aA và aB có ít nh t 100 chữ số thì thậm chí ngay cả thuật toán tốt nh t đƣợc biết đến hiện n y cũng kh ng thể giải đƣợc nếu chỉ biết g, p, bA, bB kể cả khi sử dụng t t cả khả năng tính toán của nhân loại Bài toán này còn đƣợc biết đến với tên gọi bài toán logarit rời rạc. Bài toán logarit rời rạc vẫn còn đ ng gây r t nhiều tr nh cãi và chƣ có thuật giải cụ thể nào. A
A B
2.5.2. Giao thức à kh ng an toàn đối với việc t n công chủ động. Gi o thức à kh ng n toàn đối với việc t n c ng chủ động bằng cách đánh tráo giữ đƣờng Nghĩ à một ngƣời thứ b Eve có thể đánh tráo các th ng tin tr o đổi giữa Alice và Bob. Ch ng hạn, Eve th y g a mà Alice định gửi cho Bob bởi g a ' và thay g a mà Bob định gửi cho Alice bởi g a ' Nhƣ vậy, s u khi thực hiện gi o thức tr o đổi khoá, A ice đã ập một khoá chung g a a ' với Eve mà vẫn tƣởng à với Bob; đồng thời Bob cũng ập một khoá chung g a ' a với Eve mà vẫn tƣởng à với Alice. Eve có A
A
B
B
A
B
A B
12
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman thể giải mã mọi th ng báo mà Alice tƣởng nhầm à mình gửi đến Bob cũng nhƣ mọi th ng báo mà Bob tƣởng nhầm à mình gửi đến Alice. Một cách khắc phục kiểu t n c ng này à àm s o để Alice và Bob có kiểm thử để xác nhận tính đúng đắn củ các khoá c ng kh i bAvà bB Ngƣời t đƣ vào gi o thức tr o đổi khoá Diffie-He m n thêm v i trò điều phối củ 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-He m n, sự c n thiệp củ TA à r t yếu, thực r TA chỉ àm mỗi việc à c p chứng chỉ xác nhận khoá c ng kh i 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ủ ngƣời dùng Tuy nhiên, nếu chƣ thoả mãn với v i trò hạn chế đó củ TA thì có thể cho TA một v i trò xác nhận yếu hơn, kh ng iên qu n gì đến khoá, ch ng hạn nhƣ xác nhận thuật toán kiểm thử chữ ký củ ngƣời dùng, còn bản thân các th ng tin về khoá (cả bí mật ẫn c ng kh i) thì do các ngƣời dùng tr o đổi trực tiếp với nh u Với cách khắc phục có vai trò hết sức hạn chế đó củ TA, t đƣợc giao thức s u đây: 2.6. Giao thức thỏa thuận khóa Diffie - Hellman có chứng chỉ xác nhận. Mỗi ngƣời dùng A có một d nh tính ID(A) và một sơ đồ chữ ký với thuật toán ký sigA và thuật toán kiểm thử verA TA cũng có một v i trò xác nhận, nhƣng kh ng phải xác nhận b t kỳ th ng tin nào iên qu n đến việc tạo khoá mật mã củ ngƣời dùng (dù à khoá bí mật h y khoá c ng kh i), mà chỉ à xác nhận một th ng tin ít qu n hệ khác nhƣ thuật toán kiểm thử chữ ký củ ngƣời dùng Còn bản thân các th ng tin iên qu n đến việc tạo khoá mật mã thì các ngƣời dùng sẽ tr o đổi trực tiếp với nh u TA cũng có một sơ đồ chữ ký củ mình, gồm một thuật toán ký sigTA và một thuật toán kiểm thử công khai verTA Chứng chỉ mà TA c p cho mỗi ngƣời A sẽ à: C(A) = (ID(A), verA, sigTA (ID(A), verA )). Rõ ràng trong chứng chỉ đó TA kh ng xác nhận b t kỳ điều gì iên qu n đến việc tạo khoá củ A cả Cơ chế giao thức thỏa thuận khóa Diffie - Hellman có chứng chỉ xác nhận Việc tr o đổi khoá giữa h i ngƣời dùng A và B đƣợc thực hiện theo gi o thức s u đây: 1. A chọn ngẫu nhiên số A (0 ≤ A(≤ p-2), tính bA g a mod p và gửi bA cho B. 2. B chọn ngẫu nhiên số B (0 ≤ B≤ p-2), tính bB g a mod p , tính tiếp K bAa mod p , y B sig B (bA , bB ) và gửi (C(Alice), bB, yB) cho A. 3. A tính K bBa mod p dùng verB để kiểm thử yB , dùng verTA để kiểm thử C(B), s u đó tính yA= sigA(bA, bB ) và gửi (C(A), yA) cho B. A
B
B
A
13
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman 4. B dùng verA để kiểm thử yA và dùng verTA để kiểm thử C(A). Nếu t t cả các bƣớc đó đƣợc thực hiện và các phép kiểm thử đều cho kết quả đúng đắn thì gi o thức đƣợc kết thúc, và cả A và B đều có đƣợc khoá chung K Do việc dùng các thuật toán kiểm thử nên A biết chắc giá trị bB à củ B và B biết chắc giá trị bA củ A, oại trừ khả năng một ngƣời C nào khác đánh tráo các giá trị đó giữ đƣờng
14
Nhóm 7 : ĐHKHMT2-K5
Giao thức thỏa thuận khóa Diffie Hellman Tài liệu tham khảo 1. Giáo trình an toàn và bảo mật thông tin – Trƣờng ĐH Hàng Hải 2. Giáo trình an toàn bảo mật thông tin – Trƣờng ĐH Gi o Th ng Vân Tải 3. Whitfie d Diffie, M rtin E He m n, “ New Directions in Cryptogr phy”, IEEE transactions on information theory, Vol. IT-22, No.6, November 1976. 4. A Review of the Diffie-Hellman Algorithm and its Use in Secure Internet Protocols - David A. Carts 5. Diffie-Hellman Key Exchange – A Non-M them tici n’s Exp n tion http://www.packetsource.com/article/encryption/40070/diffie-hellman-keyexchange-a-non-mathematicians-explanation 6. Discrete Logarithms and Diffie - Hellman. 7. http://www.math.brown.edu/~jhs/MathCrypto/SampleSections.pdf 8. http://bytes.com/topic/c/answers/795749-storing-doing-modulus-long-doubles 9. http://diendan.congdongcviet.com/showthread.php?t=48110 10. http://diendan.congdongcviet.com/showthread.php?t=4155 11. http://en.wikipedia.org/wiki/Primitive_root_modulo_n 12.http://vi.wikipedia.org/wiki/C%C4%83n_nguy%C3%AAn_th%E1%BB%A7y_ modulo_n 13. http://stackoverflow.com/questions/5656835/generator-gs-requirement-to-be-aprimitive-root- modulo-p-in-the-diffie-hellman?rq=1 14. Cryptography in C and C++ - Michael Welschenbach 2nd Edition (2005) 15. Primitive Roots - David Savtt 16. The Primitive Root Theorem - Philadelphia University 17. New Directions in Cryptography - Invited Paper - Whitfield Diffie and Martin E. Hellman 18. A Review of the Diffie-Hellman Algorithm and its Use in Secure Internet Protocols - David A. Carts 19. Video: Public Key Cryptography- Diffie-Hellman Key Exchange Primitive Root Calculator 20. Và một số tài liệu và các trang web khác.
15
Nhóm 7 : ĐHKHMT2-K5
View more...
Comments