mã hóa khóa công khai rsa và giao thức thõa thuận khóa diffie - hellman

30 1.4K 7
mã hóa khóa công khai rsa và giao thức thõa thuận khóa diffie - hellman

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

mã hóa khóa công khai rsa và giao thức thõa thuận khóa diffie - hellman

LỜI NÓI ĐẦU Trao đổi thông tin nhu cầu cần thiết người, đặc biệt sống đại ngày mà mạng máy tính Internet phát triển cách mạnh mẽ giữ vai trò quan trọng lĩnh vực đời sống xã hội như: trị, quân sự, học tập, mua sắm, kinh doanh, … Tất thông tin liên quan đến công việc máy vi tính quản lý truyền hệ thống mạng Đối với thông tin bình thường không ý đến, thông tin mang tính chất sống cá nhân hay tổ chức vấn đề bảo mật thông tin quan trọng đặt lên hàng đầu Chính nên nhiều tổ chức, cá nhân nghiên cứu, tìm kiếm đưa nhiều giải pháp bảo mật thông tin Trong mã hóa khóa công khai tỏ thích hợp truyền thông tin liệu có tính bảo mật cao Báo cáo nhóm biên soạn dựa kiến thức lĩnh hội từ thầy giáo Th.S Nguyễn Chiến Trinh, thông qua tìm hiểu, nghiên cứu tích cực thành viên nhóm Báo cáo nhóm sâu vào trình bày mã hóa khóa công khai RSA giao thức thỏa thuận khóa Diffie - Hellman với nội dung gồm chương chia thành 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í dụ minh họa cụ thể giao thức thỏa thuận khóa Mặc dù nhóm cố gắng song không tránh khỏi số thiếu sót mong thầy cô bạn bè đóng góp ý kiến để nhóm hoàn thiện báo cáo Thay mặt nhóm em xin chân thành cảm ơn ! PHÂN CÔNG CÔNG CÔNG VIỆC STT Mã Sinh Viên 1021010262 1021010251 0821010195 Tên Sinh Viên Nội dung Trang- Nhận xét trang Phan Lạc Dương Tìm hiểu chung - 12 Tích cực mã hóa + mã nghiên cứu hóa khóa công hoàn thành khai ( CI + CII ) tốt nhiệm vụ Lưu Doãn Bắc Tìm hiểu thuật 13-24 Tích cực toán mã hóa khóa nghiên cứu công khai RSA hoàn thành (CIII) tốt nhiệm vụ Nguyễn Xuân Tìm hiểu giao thức 25-34 Tích cực Hiệp thỏa thuận khóa nghiên cứu Diffie - Hellman hoàn thành tốt nhiệm vụ MỤC LỤC DANH MỤC HÌNH VẼ CHƯƠNG I TÌM HIỂU CHUNG VỀ MÃ HÓA 1 Khái niệm Nói đến mã hóa tức nói đến việc che dấu thông tin cách sử dụng thuật toán Che dấu làm cho thông tin biến mà cách thức chuyển từ dạng “có thể đọc hiểu được” thành dạng “đọc hiểu được” Một thuật toán tập hợp câu lệnh mà theo chương trình biết phải làm thể để xáo trộn hay phục hồi lại liệu Chẳng hạn có thuật toán đơn giản mã hóa thông điệp cần gửi sau : Bước : Thay toàn chữ “e” thành chữ số “3” Bước : Thay toàn chữ “a” thành chữ số “4” Bước : Đảo ngược thông điệp Trên ví dụ đơn giản mô cách thức làm việc mã hóa ( Cryptography ) Trong thực tế trình phức tạp khó để diễn tả 1.2 Các yêu cầu mã hóa Confidentiality (Tính bí mật) : Đảm bảo cho liệu truyền cách an toàn bị lộ thông tin có cố tình muốn có nội dung liệu gốc ban đầu Chỉ người định có khả đọc nội dung thông tin ban đầu Authentication (Tính xác thực) : Giúp cho người nhận liệu xác định chắn chắn liệu mà họ nhận liệu gốc ban đầu.Kẻ giả mạo có khả để giả dạng người khác hay nói cách khác mạo danh để gửi liệu Người nhận có khả kiểm tra nguồn gốc thông tin mà họ nhận Integrity (Tính toàn vẹn): Giúp cho người nhận liệu kiểm tra liệu không bị thay đổi trình truyền Kẻ giả mạo có khả thay liệu ban đầu liệu giả mạo Non-repudation (Tính chối bỏ): Người gửi hay người nhận chối bỏ sau gửi nhận thông tin 1.3 Phân loại mã hóa Phân loại theo phương pháp: – Mã hóa cổ điển (Classical cryptography) – Mã hóa đối xứng (Symmetric cryptography) – Mã hóa bất đổi xứng (Asymmetric cryptography) – Hàm băm chiều (Hash function) Phân lọai theo số lượng khóa: – Mã hóa khóa bí mật (Private-key Cryptography) – Mã hóa khóa công khai (Public-key Cryptography 1.4 Tại cần phải mã hóa ? Ngày nay, mạng Internet kết nối máy tính khắp nơi giới lại với nhau, vấn đề bảo vệ máy tính khỏi thâm nhập phá hoại từ bên điều cần thiết Thông qua mạng Internet, hacker truy cập vào máy tính tổ chức (dùng telnet chẳng hạn), lấy trộm liệu quan trọng mật khẩu, thẻ tín dụng, tài liệu… Hoặc đơn giản phá hoại, gây trục trặc hệ thống mà tổ chức phải tốn nhiều chi phí để khôi phục lại tình trạng hoạt động bình thường Đây phương pháp hỗ trợ tốt việc chống lại truy cập bất hợp pháp tới thông tin truyền mạng, áp dụng mã hóa khiến cho nội dung thông tin truyền dạng đọc cố tình muốn lấy thông tin Tất nhiên phải dùng mã hóa Nhu cầu sử dụng mã hóa xuất bên giao tiếp muốn bảo vệ tài liệu quan trọng hay truyền chúng cách an toàn Các tài liệu quan trọng là: tài liệu quân sự, tài chính, kinh doanh đơn giản thông tin mà mang tính riêng tư Như bạn biết, Internet hình thành đời từ yêu cầu phủ Mĩ nhằm phục vụ cho mục đích quân Khi tham gia trao đổi thông tin, chat, gửi mail v v Internet môi trường không an toàn, đầy rủi ro nguy hiểm, đảm bảo thông tin mà truyền không bị đọc trộm đường truyền Từ mã hóa áp dụng biện pháp nhằm giúp tự bảo vệ thông tin mà gửi CHƯƠNG II MÃ HÓA KHÓA CÔNG KHAI 2.1 Giới thiệu Mã hóa khóa công khai (Public Key Cryptography) thiết kế cho khóa sử dụng trình mã hóa khác biệt với khóa sử dụng trình giải mã Hơn nữa, khóa dùng trình giải mã tính toán hay suy luận từ khóa dùng để mã hóa ngược lại, tức hai khóa có quan hệ với mặt toán học suy diễn Thuật toán gọi Public-Key khóa dùng cho việc mã hóa công khai cho tất người.Một người hòan toàn xa lạ dùng khóa để mã Hình 2.1: Cách thức mã hóa công khai hóa liệu người mà có khóa giải mã tương ứng đọc liệu mà 2.2 Tại mã hóa công khai đời Mã hóa đối xứng phát triển từ cổ điển đến đại, tồn hai điểm yếu sau: Vấn đề trao đổi khóa người gửi người nhận: Cần phải có kênh an toàn để trao đổi khóa cho khóa phải giữ bí mật có người gửi người nhận biết Điều tỏ không hợp lý mà ngày nay, khối lượng thông tin luân chuyển khắp giới lớn Việc thiết lập kênh an toàn tốn mặt chi phí chậm trễ mặt thời gian Tính bí mật khóa: sở quy trách nhiệm khóa bị tiết lộ Vào năm 1976 Whitfield Diffie Martin Hellman tìm phương pháp mã hóa khác mà giải hai vấn đề trên, mã hóa khóa công khai (public key cryptography) hay gọi mã hóa công khai (asymetric cryptography) Đây xem bước đột phá quan trọng lĩnh vực mã hóa 2.3 Nguyên tắc cấu tạo hệ mã hóa công khai Mã hóa khóa công khai đời giải vấn đề mà mã hóa riêng thiếu xót Trong hệ thống mã hóa người sử dụng tham gia vào cấp khóa : - Một khóa dùng cho việc mã hóa liệu (Public key) - Và khóa dùng cho việc giải mã liệu (Private key), Trong Public key đưa cho tất người biết, Private keyphải giữ kín cách tuyệt đối.Giả sử hai phía muốn truyền tin cho trình truyền sử dụng mã hóa khóa công khai thực sau : - Sender yêu cầu cung cấp tự tìm khoá công khai Receiver Server chịu trách nhiệm quản lý khoá công khai - Sau hai phía thống thuật toán dùng để mã hóa liệu, Sender sử dụng khóa công khai Receiver với thuật toán thống để mã hóa thông tin bí mật - Thông tin sau mã hóa gửi tới Receiver, lúc Sender giải mã thông tin mà mã hóa (khác với mã hóa khóa riêng) - Khi nhận thông tin mã hóa, Receiver sử dụng khóa bí mật để giải mã lấy thông tin ban đầu Có nhiều phương pháp mã hóa thuộc loại mã hóa khóa công khai Đó phương pháp Knapsack, RSA, Elgaman, phương pháp đường cong elliptic ECC… Mỗi phương pháp có cách thức ứng dụng hàm chiều khác 2.4 Các đặc điểm hệ mã hóa công khai Thông thường, kỹ thuật mật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều kỹ thuật mã hóa khóa đối xứng lợi điểm mà chúng mang lại khiến cho chúng áp dụng nhiều ứng dụng Vậy với đời Mã hóa khóa công khai khóa quản lý cách linh hoạt hiệu Người sử dụng cần bảo vệ khóa Private key Hệ thống an toàn nhiều so với mã hóa khóa riêng, người mã hóa giải mã liệu mã hóa khóa công khai người khác Tuy nhiên nhược điểm mã hóa khóa công khai nằm tốc độ thực hiện, chậm mã hóa khóa riêng cỡ ~1000 lần 2.5 Phân biệt mã hóa công khai với mã hóa đối xứng Điều kiện cần giải thuật là: Khi người có hay nhiều chuỗi bít mã hóa, người cách giải mã mẫu tin ban đầu, trừ người biết “ secret key ’’ dùng cho mã hóa Secret key phải trao đổi cách an toàn hai party tham gia vào trình mã hóa Mã hóa bất đối xứng giải thuật mã hóa sử dụng khóa : public key private-key Hai khóa có mối liên hệ toán học với Mã hóa khóa giải mã khóa Có hai ứng dụng loại mã hóa : Mã hóa bất đối xứng chữ ký điện tử ( digital signature ) Trong ứng dụng mã hóa bất đối xứng ( ví dụ giải thuật RSA )mỗi bên A, B có public key (PU) private key (PR) riêng A tạo PUA PRA.B tạo PUB PRB PUA A gửi cho B B muốn truyền liệu cho A B mã hóa PUA A giải mã PRA Ngược lại A muốn truyền cho B A mã hóa PUB B giải mã PRB PRA PRB không truyền giữ riêng cho bên Trong ứng dụng chữ ký điện tử A mã hóa mẫu tin PRA Bởi có A biết PRA nên party nhận mẫu tin , party biết mẫu tin xuất phát từ A khác Đương nhiên để giải mã , party cần có PUA 2.6 Ứng dụng hệ mã hóa công khai Mã hóa Email xác thực người gửi Email (OpenPGP or S/MIME) Mã hóa nhận thực văn (Các tiêu chuẩn Chữ ký XML * mã hóa XML * văn thể dạng XML) Xác thực người dùng ứng dụng (Đăng nhập thẻ thông minh, nhận thực người dùng SSL) Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL): trao đổi khóa khóa bất đối xứng, mã hóa khóa đối xứng CHƯƠNG III THUẬT TOÁN MÃ HÓA KHÓA CÔNG KHAI RSA 3.1 Giới thiệu RSA Tiêu chuẩn Rivest-Shamir-Adleman (RSA) - Giải thuật mã hóa khóa công khai RSA tiêu chuẩn tác giả Ronal Rivest, Adi Shamir Leonard Adleman phát triển Học Viện Công nghệ Masachusetts (MIT) vào năm 1977, tên tiêu chuẩn lấy từ chữ đầu tên tác giả, tiêu chuẩn tổ chức Viện Tiêu chuẩn Quốc gia Hoa Kỳ (American National Standards Institute – ANSI), Viện Kỹ nghệ Điện Điện tử (Institute of Electrical and Electronics Engineers – IEEE) Phòng thí nghiệm RSA công nhận (RSA Laboratories phận Tập đoàn EMC) Đây thuật 10 Cả hai phép tính có thê thực hiệu nhờ giải thuật bình phương nhân 3.2.5 Chuyển đổi văn rõ Trước thực mã hóa, ta phải thực việc chuyển đổi văn rõ ( chuyển đổi từ M sang m) cho giá trị M tạo văn mã không an toàn Nếu trình này, RSA gặp phải số vấn đề sau : • Nếu m = m = tạo mã có giá trị tương ứng • Khi mã hóa với số mũ nhỏ (chẳng hạn e =3) m có giá trị nhỏ, giá trị m e nhận giá trị nhỏ (so với n) Như phép môđun tác dụng dễ dàng tìm m cách khai bậc e c ( bỏ qua môđun) • RSA phương pháp mã hóa xác định ( thành phần ngẫu nhiên) nên kẻ công thực công lựa chọn rõ cách tạo bảng tra rõ mã Khi gặp mã, kẻ công sử dụng bảng tra để tìm rõ tương ứng Trên thực tế, ta thường gặp vấn đề đầu gửi tin ASCII ngắn với m nhóm vài ký tự ASCII Một đoạn tin có ký tự NUL gán giá trị m = cho mã giá trị e N Tương tự, ký tự ASCII khác, SOH, có giá trị cho mã Với hệ thống dùng giá trị e nhỏ tất ký tự ASCII cho kết mã hóa không an toàn giá trị lớn m 255 2553 nhỏ giá trị n chấp nhận Những mã dễ dàng bị phá mã Để tránh gặp phải vấn đề trên, RSA thực tế thường bao gồm hình thức chuyển đổi ngẫu nhiên hóa m trước mã hóa Quá trình chuyển đổi phải đảm bảo m không rơi vào giá trị không an toàn Sau chuyển đổi, rõ mã hóa cho số khả tập hợp mã Điều làm giảm tính khả thi phương pháp công lựa chọn rõ (một rõ có thê tương ứng với nhiều mã tùy thuộc vào cách chuyển đổi) Một số tiêu chuẩn, chẳng hạn PKCS, thiết kế để chuyển đổi rõ trước mã hóa RSA Các phương pháp chuyển đổi bổ xung thêm bit vào M Các phương pháp chuyển đổi cần thiết kế cẩn thận để tránh dạng công 16 phức tạp tận dụng khả biết trước cấu trúc rõ Phiên ban đầu PKCS dùng phương pháp đặc ứng (ad-hoc) mà sau biết không an toàn trước công lựa chọn rõ thích ứng (adaptive choén ciphertext attack) Các phương pháp chuyển đổi đại sử dụng kỹ thuật chuyển đổi mã hóa bất dối xứng tối ưu (Optimal Asymmetric Encryption Padding – OAEP) để chống lại công dạng Tiêu chuẩn PKCS bổ xung tính khác để đảm bảo an toàn cho chữ ký RSA (Probabilistic Signature Scheme for RSA-RSA-PSS) 3.2.6 Tạo chữ ký vào văn Thuật toán RSA dùng để tạo chữ ký số cho văn Giả sử Alice muốn gửi cho Bob văn có chữ ký Để làm việc này, Alice tạo giá trị băm (hask value) văn cần ký tính giá trị mũ d mod n (giống Alice thực giải mã) Giá trị cuối chữ ký điện tử văn xét Khi Bob nhận văn với chữ ký điện tử, tính giá trị mũ e mod n chữ ký đồng thời với việc tính giá trị băm văn Nếu giá trị Bob biết người tạo chữ ký biết khóa bí mật Alice văn không bị thay đổi sau ký Cần ý phương pháp chuyển đổi rõ ( RSA-PSS) giữ vai trò quan trọng trình mã hóa chữ ký điện tử không dùng chung cho đồng thời cho hai mục đích 3.3 Các vấn đề RSA Sau ta xem xét số công phương pháp RSA  Vét cạn khóa: cách công thử tất khóa d có để tìm giải mã có ý nghĩa, tương tự cách thử khóa K mã hóa đối xứng Với N lớn, việc công bất khả thi  Phân tích N thành thừa số nguyên tố N = pq: Chúng ta nói việc phân tích phải bất khả thi hàm chiều, nguyên tắc hoạt động RSA Tuy nhiên, nhiều thuật toán phân tích đề xuất, với tốc độ xử lý máy tính ngày nhanh, làm cho việc phân tích N không khó khăn trước 17 Năm 1977, tác giả RSA treo giải thưởng cho phá RSA có kích thước N vào khoảng 428 bít, tức 129 chữ số Các tác giả ước đoán phải 40 nghìn triệu triệu năm giải Tuy nhiên vào năm 1994, câu đố giải vòng tháng Bảng sau liệt kê kích thước N RSA phá mã Số chữ số N 100 110 120 129 130 140 155 160 174 200 Số bit 322 365 398 428 431 465 512 530 576 633 Năm phá mã 1991 1992 1993 1994 1996 1999 1999 2003 2003 2005 Thuật toán Quadratic sieve Quadratic sieve Quadratic sieve Quadratic sieve GNFS GNFS GNFS Lattice sieve Lattice sieve Lattice sieve Dĩ nhiên việc phá mã thực phòng thí nghiệm Tuy nhiên người ta cho kích thước N phải khoảng 1024 bít (309 chữ số) bảo đảm an toàn thật  Đo thời gian: Đây phương pháp phá mã không dựa vào mặt toán học thuật toán RSA, mà dựa vào “hiệu ứng lề” sinh trình giải mã RSA Hiệu ứng lề thời gian thực giải mã Giả sử người phá mã đo thời giải mã dùng thuật toán bình phương liên tiếp Trong thuật toán bình phương liên tiếp, bít d xảy hai phép modulo, bít có phép modulo, thời gian thực giải mã khác Bằng số phép thử chosenplaintext, người phá mã biết bít d hay từ biết d 3.4 Ứng dụng thực tế RSA Tiêu chuẩn RSA ứng dụng rộng rãi nhiều lĩnh vực chữ ký số, thương mại điện tử, bảo mật, xác thực… Trong Thông tư số 01/2011/TT-BTTTT ngày 04/01/2011 Bộ trưởng Bộ Thông tin Truyền thông Công bố Danh mục tiêu chuẩn kỹ thuật ứng dụng công nghệ thông tin quan nhà nước quy định Khuyến nghị áp 18 dụng tiêu chuẩn RSA, giải thuật mã hóa xếp vào nhóm Tiêu chuẩn an toàn thông tin 3.4.1 Chữ ký điện tử (Digital Signature) Chữ ký điện tử chữ ký tạo lập dạng từ, chữ số, ký hiệu, âm hình thức khác phương tiện điện tử, gắn liền kết hợp cách logic với thông điệp liệu Chữ ký điện tử có giá trị xác nhận người ký thông điệp liệu xác nhận chấp thuận người nội dung thông điệp liệu ký Chữ ký điện tử thông tin kèm theo liệu (văn bản, hình ảnh , video ….) nhằm mục đích xác định người chủ liệu Chữ ký điện tử tạo cách áp dụng thuật toán băm chiều văn gốc để tạo phân tích văn (mesage digest) hay gọi fingerprint, sau mã hóa private key tạo chữ ký số đính kèm với văn gốc tính lại fingerprint để so sánh với fingerprint cũ phục hồi từ việc giải mã chữ ký số Mô hình chung chữ kí điện tử : Hình 3.3: Mô hình chung chữ ký điện tử Đặc điểm chữ ký điện tử đa dạng, tên hình ảnh cá nhân kèm theo liệu điện tử, mã khóa bí mật, hay liệu sinh trắc học ( chẳng hạn hình ảnh mặt, dấu vân tay, hình ảnh mống mắt … ) có khả xác thực người gửi Độ an toàn dạng khác Quy trình thực chữ ký điện tử : 19 Các bước mã hóa : Dùng giải thuật băm để thay đổi thông điệp cần truyền đi, kết ta message digest, dùng giải thuật md5 (message digest 5) ta digest có chiều dài 128 bit, dùng giải thuật sha ( secure hash algorithm ) ta có chiều dài 160 bit Sử dụng khóa private key người gửi để mã hóa mesage digest thu bước Thông thường bước ta dùng giải thuật rsa Kết thu gọi digital signature mesage ban đầu Gộp digital signature vào message ban đầu, công việc gọi ‘’ ký nhận ’’ vào message Sau ký nhận vào message, thay đổi message bị phát giai đoạn kiểm tra Ngoài ra, việc ký nhận đảm bảo người nhận tin tưởng message xuất phát từ người gửi khác Các bước kiểm tra : Dùng public key người gửi (khóa thông báo đến người) để giải mã chữ ký số message Dùng giải thuật (md5 sha) hàm băm message đính kèm So sánh kết thu bước Nếu trùng nhau, ta kết luận message không bị thay đổi trình truyền message người gửi Mỗi cá nhân tham gia vào hệ thống chữ ký điện tử cần phải cung cấp khóa (Public key, Private key) dùng để định danh cá nhân tổ chức quan có thẩm quyền công nhận phạm vi dụng 3.4.2 SSL (Secure Socket Layer) SSL giao thức đa mục đích thiết kế nhằm mã hóa toàn thông tin đến/ hai chương trình ứng dụng cổng định trước (socket 443) Giao thức SSL hình thành phát triển năm 1994 nhóm nghiên cứu Netscape trở thành chuẩn bảo mật thực hành mạng Internet Phiên SSL 3.0 tiếp tục bổ xung hoàn thiện 20 CHƯƠNG VI: GIAO THỨC THỎA THUẬN KHÓA DIFFIE HELLMAN 4.1 Giới thiệu Hình 4.1 Giáo sư Martin Hellman (giữa) đồng nghiệp Whitfield Diffie (phải) khám phá mật mã khóa công khai Diffie-Hellman Năm 1976, đột phá thay đổi tảng cách làm việc hệ thống mật mã hóa Đó việc công bố viết phương hướng mật mã học (New Directions in Cryptography) Whitfield Diffie Martin Hellman Bài viết giới thiệu phương pháp hoàn toàn cách thức phân phối khóa mật mã Là hệ thống sử dụng "public-key" khóa mật mã "không đối xứng", gọi trao đổi khóa Diffie-Hellman (Diffie-Hellman key exchange) Bài viết kích thích phát triển gần tức thời lớp thuật toán mật mã hóa mới, thuật toán chìa khóa bất đối xứng (asymmetric key algorithms) 21 Trao đổi khóa Diffie-Hellman bị cáo buộc đưuc phát minh cách độc lập vài năm trước Trụ sở Truyền Thông Chính phủ Anh (GCHQ) Malcolm J Williamson) Vào năm 2002, Hellman đưa thuật toán gọi chung trao đổi khóa Diffie–Hellman–Merkle công nhận đóng góp Ralph Merkle, người phát minh thuật toán mã hóa công khai Trước thời kỳ này, hầu hết thuật toán mật mã hóa đại thuật toán khó đối xứng (symmetric key gorithms), người gửi người nhận phải dùng chung khóa, tức khóa dùng thuật toán mật mã, hai người phải giữ bí mật khóa Tất máy điện dùng chiến II, kể mã Caesar mã Atbash, chất mà nói, kể hầu hết hệ thống mã dùng suốt trình lịch sử thuộc loại Đương nhiên, khóa mã sách mã (codebook), phải phân phối giữ gìn cách bí mật tương tự Do nhu cầu an ninh, khóa cho hệ thống thiết phải đựợc trao đổi bên giao thông liên lạc phương thức an toàn đấy, trước họ sử dụng hệ thống (thuật ngữ thường dùng 'thông qua kênh an toàn'), ví dụ việc sử dụng người đưa thư đáng tin cậy với cặp tài liệu khóa vào cổ tay cặp khóa tay, gặp gỡ mặt đối mặt, hay chim bồ câu đưa thư trung thành …Vấn đề chưa xem dễ thực hiện, nhanh chóng trở nên việc gần quản lý số lượng người tham gia tăng lên, hay người ta không kênh an toàn để trao đổi khóa nữa, lúc họ phải liên tục thay đổi chìa khóa-một thói quen nên thực làm việc với mật mã Cụ thể cặp truyền thông cần phải có khóa riêng nếu, theo thiết kế hệ thống mật mã, không người thứ ba nào, kể người người dùng, phép giải mã thông điệp Một hệ thống thuộc loại gọi hệ thống dùng chìa khóa mật, hệ thống mật mã hóa dùng khóa đối xứng Hệ thống trao đổi khóa Diffie-Hellman (cùng phiên nâng cấp hay biến thể nó) tạo điều kiện cho hoạt động hệ thống trở 22 nên dễ dàng nhiều, đồng thời an toàn hơn, tất làm trước Mặc dù, thân thuật toán giao thức chọn khóa nặc danh (không cần thông qua xác thực) cung cấp sở cho giao thức xác thực khác hoàn hảo Phương thức tiếp nối sau Diffie – Hellman RSA, thể mã khóa công khai sử dụng thuật toán bất đối xứng 4.2 Giao thức thỏa thuận khóa Diffie – Hellman 4.2.1 Khái niệm thỏa thuận khóa Thoả thuận khoá: việc trao đổi khoá chủ thể cộng đồng thiết lập cách tự hai người 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 thiết lập khóa chia sẻ bí mật sử dụng cho thông tin liên lạc bí mật cách trao đổi liệu thông qua mạng công cộng Đây mà số nhiều phương thức dùng để trao đổi khóa ngành mật mã học - Phương pháp không cần có can thiệp TA ( quan ủy thác) làm nhiệm vụ điều hành phân phối khóa - Phương pháp cho phép người sử dụng tạo khóa bí mật thông qua kênh truyền thống không đảm bảo độ bảo mật Khóa bí mật dùng để ngƣời sử dụng tr o đổi thông tin với 4.2.2.1 Cách thiết lập giao thức thỏa thuận khóa Diffie - Hellman  Tình huống: + Alice Bob muốn chia sẻ thông tin bảo mật cho phương tiện truyền thông họ không an toàn Tất thông tin mà họ trao đổi quan sát Eve kẻ thù họ + Làm để Alice Bob chia sẻ thông tin bảo mật cho mà không làm cho Eve biết được? + Thoạt nhìn ta thấy Alice Bob phải đối mặt với nhiệm vụ  Giải tình trên: 23 + Alice Bob đồng ý dùng chung nhóm cyclic hữu hạn G yếu tố tạo g G (Điều thường thực lâu trước phần lại giao thức, g giả định biết đến tất kẻ công) + Khi Alice Bob muốn truyền thông tin bảo mật cho thực theo giao thức sau để trao đổi: Alice chon ngẫu nhiên số aA (0 ≤ aA ≤ p-2) bí mật, tính bA = g aA mod p gửi bA cho Bob Tương tự, Bob chọn ngẫu nhiên số a B (0 ≤ aB ≤ p-2) bí mật, tính bB = g aB mod p gửi bB cho Alice Alice tính khóa: Bob tính khóa: K A = bBa A mod p K B = bAaB mod p + Bây Alice Bob có khóa chung là: K A = K B = g a AaB mod p + Mô tả giao thức Diffie – Hellman bảng sau:  Chú ý có aA, aB KA, KB giữ bí mật Tất giá trị lại p, g, bA, bB, công khai Một Alice Bob tính khóa bí mật dùng chung, họ dùng làm khóa mã hóa họ biết để gửi thông điệp qua kênh giao tiếp mở Đương nhiên, để đảm bảo an toàn, giá trị a A, aB p cần 24 lấy lớn, g không cần lấy giá trị lớn Thực tế g thường lấy giá trị 4.2.2.2 Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman Hình 4.2: Sơ đồ giao thức thỏa thuận khóa Diffie – Hellman Sơ đồ minh họa phần ý tưởng chung Đầu tiên, Alice Bob thống màu sơn chung (màu vàng), Alice Bob trao đổi màu sắc đƣợc trộn họ Cuối cùng, điều tạo màu bí mật giống hệt mà kẻ khác khả tạo giống Kể từ đây, Alice Bob trao đổi cách mã hóa giải mã sử dụng khóa bí mật (thể màu sơn bí mật cuối cùng) 4.2.2.3 Ví dụ số minh họa Alice Bob thống với chọn số nguyên tố p = 37 g = Alice chọn giá trị ngẫu nhiên aA = bí mật aA Alice tính bA = 57 mod 37 = 18 Sau Alice gửi bA = 18 cho Bob 25 Bob chọn giá trị ngẫu nhiên aB = bí mật aB Bob tính bB = 55 mod 37 = 17 Sau Bob gửi bB = 17 cho Alice Bob nhận bA = 18 tính khóa chung: KB = 184 mod 37=15, bí mật KB Alice nhận bB =17 tính khóa chung: KA = 177 mod 37=15, bí mật KA 4.2.3 Các đặc điểm đặc trưng giao thức thảo thuận khóa Diffie - Hellman 4.2.3.1 Giao thức an toàn việc công thụ động Giao thức an toàn việc t n c ng thụ động, nghĩa người thứ b dù biết b A bB khó mà biết KA,B Xét ví dụ: Alice Bob thống với chọn số nguyên tố p = 17 g = 2 Alice chọn giá trị ngẫu nhiên aA = bí mật aA Alice tính bA = 26 mod 17 = 13 26 Sau A ice gửi bA = 13 cho Bob Bob chọn giá trị ngẫu nhiên aB = bí mật aB Bob tính bB = 29 mod 17 = Sau Bob gửi bB = cho Alice Bob nhận bA = 13 tính khóa chung: KB = 139 mod 17=13, bí mật KB Alice nhận bB = tính khóa chung: KA = 26 mod 17=13, bí mật KA Eve kẻ nghe trộm – cô ta theo dõi Alice Bob gửi cho thay đổi nội dung liên lạc Eve muốn tái thiết lại thông tin bảo mật mà Alice Bob chia sẻ cho Eve phải đối mặt với nhiệm vụ thực khó khăn  Dưới biểu đồ giúp xác định biết giá trị (Eve kẻ nghe trộm.) 27 Ta thấy Eve rơi vào tình tiến thoái lưỡng nam Cô biết giá trị b A, bB g a A g aB cô biết , Cô biết giá trị g p, lại giá trị aA, aB KA,B Đây toán Diffie - Hellman mà biết b A, bB tìm KA,B, toán tương đương với toán phá mã ElGammal Bây ta chứng minh điều - Phép mật mã ElGammal với khoá K = (p, g, a, β), β = g a mod p cho t từ rõ x số ngẫu nhiên k ∈ Zp-1 lập 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ã cho y = gk mod p Giả sử ta có thuật toán A giải toán Diffie-Hellman Ta dùng A để phá mã ElGammal sau: • Cho mật mã (y1, y2) Trước tiên, dùng A cho y = gk mod p β = ga mod p ta A(y1,B) = gka = βk mod p Sau đó, ta thu rõ x từ βk y2 sau: x = y2(βk)-1 mod p • Ngược lại, giả sử có thuật toán khác B dùng để phá mã EllGamml , tức ( ) B ( p, g , β , y1 , y2 ) = x = y2 y1a −1 mod p Áp dụng B cho β = bA, y1 = bB, y2=1, ta 28 ( ) B ( p, α , bA , bB ,1) −1 = (1 bBaA −1 − ) = α a A aB mod p tức giải toán Diffie – Hellman Trên thực tế giá trị p, aA, aB lớn Nếu p số nguyên tố có 300 chữ số, aA aB có 100 chữ số chí thuật toán tốt biết đến giải đưuợc biết g, p, b A, bB kể sử dụng tất khả tính toán nhân loại Bài toán biết đến với tên gọi toán logarit rời rạc Bài toán logarit rời rạc gây nhiều tranh cãi chưa có thuật giải cụ thể 4.2.3.2 Giao thức không an toàn việc công chủ động  Giao thức không an toàn việc công chủ động cách đánh tráo đường Nghĩa người thứ ba Eve đánh tráo thông tin trao đổi Alice Bob g aA  Chẳng hạn, Eve thay g a 'A mà Alice định gửi cho Bob g aB thay mà Bob g a 'B định gửi cho Alice Như vậy, sau thực giao thức trao đổi khoá, Alice g a A a 'B lập khoá chung với Eve mà tưởng với Bob; đồng thời Bob g a 'A aB lập khoá chung với Eve mà tưởng với Alice Eve giải mã thông báo mà Alice tưởng nhầm gửi đến Bob thông báo mà Bob tưởng nhầm gửi đến Alice  Một cách khắc phục kiểu công để Alice Bob có kiểm thử để xác nhận tính đắn khoá công khai b A bB Người ta đưa vào giao thức trao đổi khoá Diffie-Hellman thêm vai trò điều phối TA để hệ phân phối khoá Diffie-Hellman cách khắc phục nhược điểm Trong hệ phân phối khoá Diffie-Hellman, can thiệp TA yếu, thực TA làm việc cấp chứng xác nhận khoá công khai cho người dùng không đòi hỏi biết 29 thêm bí mật người dùng Tuy nhiên, chưa thoả mãn với vai trò hạn chế TA cho TA vai trò xác nhận yếu hơn, không liên quan đến khoá, chẳng hạn xác nhận thuật toán kiểm thử chữ ký người dùng, thân thông tin khoá (cả bí mật lẫn công khai) người dùng trao đổi trực tiếp với TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Bài giảng An ninh mạng viễn thông TS Nguyễn Phạm Anh Dũng – Học viện công nghệ BCVT [2] Cơ sở lý thuyết mật mã PGS TS Nguyễn Bình, TS Trần Đình Sự Học viện kỹ thuật mật mã 2006 [3] Thuật toán mã hóa ứng dụng TS Dương Anh Đức, ThS Trần Minh Triết Đại học Khoa học tự nhiên – Đại học Quốc gia TP HCM 2005 [4] Bài giảng An ninh mạng (Network security) Học viện kỹ thuật mật mã Phan Đình Diệu, Giáo trình lý thuyết mật mã an toàn thông tin, Nhà xuất Đại học Quốc gia Hà Nội, 1999 Tài liệu Tiếng Anh [5] RSA Cryptography Standard, October 27, 2012 Địa mạng INTERNET http://aita.gov.vn http://tiasang.com.vn/ http://antoanthongtin.vn/ http://www.pcworld.com.vn/ http://123doc.vn/ http://www.wattpad.com/ 30 [...]... 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 là trao đổ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 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) 21 Trao đổi khóa Diffie- Hellman bị cáo... 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 4.2 Giao thức thỏa thuận khóa Diffie – Hellman 4.2.1 Khái niệm thỏa thuận khóa Thoả thuận khoá: việc trao đổi... Khóa bí mật (Private Key) - Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã - Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa - Khóa bí mật được cá nhân giữ kín và dùng để giải mã Ví dụ: Bod muốn gửi cho Alice một thông tin mật M mà Bod muốn duy nhất Alice có thể đọc được Bod ( Mã hóa M bằng Public Key của A đc C) Alice (Giải mã C bằng Private Key của... Bob nhận được bA = 18 và tính khóa chung: KB = 184 mod 37=15, và bí mật KB 5 Alice nhận được bB =17 và tính khóa chung: KA = 177 mod 37=15, và bí mật KA 4.2.3 Các đặc điểm đặc trưng của giao thức thảo thuận khóa Diffie - Hellman 4.2.3.1 Giao thức là an toàn đối với việc tấn công thụ động Giao thức là an toàn đối với việc t n c ng thụ động, nghĩa là một người thứ b dù biết b A và bB sẽ khó mà biết được... 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... nhất (giữ bí mật hoặc hủy sau khi tạo khóa) — số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa) — môđun (công bố công khai) — số mũ công khai — số mũ bí mật Khóa công khai là cặp (e, n) Khóa bí mật là d Hàm mã hóa là: encrypt(m) = me mod n = m17 mod 3233 với m là văn bản rõ Hàm giải mã là: decrypt(c) = cd mod n = c2753 mod 3233 với c là văn bản mã Để mã hóa văn bản có giá trị 123, ta thực hiện... 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ả hai 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ữa đều thuộc về loại này Đương nhiên, khóa của một mã chính là sách mã (codebook), và là cái... bảo an toàn, các giá trị a A, aB và p cần 24 đượ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 4.2.2.2 Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman Hình 4.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, Alice và Bob đã thống nhất về màu sơn chung (màu vàng), Alice và Bob trao đổi màu sắc đã đƣợc trộn... như RSA- PSS) giữ vai trò quan trọng đối với quá trình mã hóa cũng như chữ ký điện tử và không được dùng chung cho đồng thời cho cả hai mục đích trên 3.3 Các vấn đề của RSA Sau đây ta sẽ xem xét một số các tấn công phương pháp 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ã có ý nghĩa, tương tự như cách thử khóa K của mã hóa đối xứng Với N lớn, việc tấn công. .. mod p + 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:  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, ... đời Mã hóa khóa công khai khóa quản lý cách linh hoạt hiệu Người sử dụng cần bảo vệ khóa Private key Hệ thống an toàn nhiều so với mã hóa khóa riêng, người mã hóa giải mã liệu mã hóa khóa công khai. .. toán RSA có khóa: • Khóa công khai (Public Key) • Khóa bí mật (Private Key) - Mỗi khóa số cố định sử dụng trình mã hóa giải mã - Khóa công khai công bố rộng rãi cho người dùng để mã hóa - Khóa. .. gọi Public-Key khóa dùng cho việc mã hóa công khai cho tất người.Một người hòan toàn xa lạ dùng khóa để mã Hình 2.1: Cách thức mã hóa công khai hóa liệu người mà có khóa giải mã tương ứng đọc

Ngày đăng: 28/10/2015, 14:49

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH MỤC HÌNH VẼ

Tài liệu cùng người dùng

Tài liệu liên quan