Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
1,53 MB
Nội dung
Giải thuật mã hoá mật mã RSA Chương I: Tổng quan A. Mở đầu I. Bảo mật : Bảo mật thông tin đã sử dụng trong lòch sử thời đại La Mã trong việc trao đổi thông tin và nhà quân sự chiến lược tài ba Cesar đã sử dụng nhằm bảo vệ thông tin, không muốn kẻ đòch biết được mục đích của mình và ông đã mã hóa các thông báo của mình và chỉ những người trong nhóm của ông mới biết được quy tắc mã hóa và giải mã thông báo đó mà người khác không thể nào biết được. Ngày nay, nhu cầu bảo mật các thông tin về kinh tế, quân sự, ngoại giao càng tăng thì việc bảo vệ thông tin càng được nâng cao. Các kênh truyền thông của những buổi ban đầu còn đơn giản, nó ít được nhiều người quan tâm, và nó được truyền đi bởi “những người đưa tin” được tin cậy tốt, thì ngày nay để tránh những rủi ro có thể xảy ra và sự linh hoạt trong việc truyền đi những thông báo được an toàn hơn ngành mã hóa mật mã được ứng dụng rộng rãi. Thế kỷ 20, thế kỷ của thời đại thông tin, đã có rất nhiều thay đổi, con người liên hệ trao đổi thông tin với nhau thông qua mạng toàn cầu Internet, và chính việc tham gia này đã làm thay đổi rất nhiều trong vấn đề bảo mật. Về dữ liệu, chúng ta cần quan tâm đến những yếu tố sau: tính bảo mật, tính toàn vẹn và tính kòp thời. Các hệ thống máy tính bảo mật được phân chia theo thời gian và các mạng máy tính có quan hệ chặt chẽ với việc bảo mật các kênh truyền thông với nhau. Đặc tính của kênh truyền là môi trường truyền thông truy xuất chung nên việc bảo mật về mặt vật lý được đề cập, do đó phải thông qua ứng dụng của ngành bảo mật. Nhiệm vụ chính của bảo mật là mã hoá. đây việc mã hóa được quan tâm ở mức độ là chuyển đổi dữ liệu thành mật mã. Cho đến cuối những năm 70 số học vẫn được xem như là một trong những ngành lý thuyết thuần tuý nhất của toán học. Quan niệm đó thay đổi khi nó được áp dụng để xây dựng những hệ mật mã khóa công khai. Các lý thuyết mới của số học thuật toán được ứng dụng vào thực tiễn. Mật mã không chỉ dùng trong bí mật quân sự, như thời kỳ của nhà quân sự thiên tài Cesar đã áp dụng, mà còn dùng trong ngoại giao, kinh tế và thương mại. Mật mã hiện đại có những đòi hỏi mới mang tính nguyên tắc hơn so với mật mã thường dùng trước đây. Khác với hoạt động quân sự hoặc ngoại giao, trong kinh doanh thì số lượng các đơn vò phải cùng trao đổi những thông tin - 1 - Giải thuật mã hoá mật mã RSA mật rất lớn. Những hệ thống mật mã cũ khi biết được khoá lập mã của họ ta dễ dàng tìm ra khoá giải mã. Hiển nhiên muốn gửi một thông báo mật cho một đối tượng nào đó ta cần phải biết khóa lập mã của họ, vì vậy những người cùng một hệ mã đều biết bí mật của nhau. Nhiều người cùng sử dụng một hệ mã thì không còn là bí mật nữa. Các hệ thống mật mã hiện đại tức là các hệ mật mã khóa công khai đã khắc phục được những nhược điểm đó: người tham gia trong hệ thống chỉ cần giữ bí mật khóa giải mã riêng của mình trong khi khóa lập mã được thông báo công khai. Việc biết khóa lập mã không cho phép tìm ra khóa giải mã trong một thời gian chấp nhận được, ngay cả khi sử dụng cả máy tính hiện đại với hàng tỉ phép tính trong một giây. II. Nhiệm vụ: Nhiệm vụ của đề tài này là nghiên cứu về giải thuật mã hoá mật mã RSA , xây dựng một chương trình dùng giải thuật RSA để mã hoá và giải mã một tập tin.txt. Chương trình này chỉ giới hạn sử dụng trên máy đơn. III. Bố cục: Chương 1 : Tổng quan. Chương 2 : Tìm hiểu về RSA. Chương 3 : Giao diện của chương trình. Chương 4 : Kết luận. - 2 - Giải thuật mã hoá mật mã RSA B. Tìm hiểu mật mã. 1. Mật mã: Mật mã là nghệ thuật của chữ viết bí mật được xuất phát từ chữ viết của các từ Hy Lạp. Cái chính là mật mã có khả năng gửi thông tin giữa hai người với nhau và ngăn chặn những người khác can thiệp vào. Mật mã được dùng để bảo vệ bí mật thông tin khi thông tin được truyền đi. Một văn bản được mã hóa được biểu thò bằng M hay là P. Nó có thể là một chuỗi các bít, một tập tin văn bản, một ảnh, một chuỗi số hóa âm thanh, một hình ảnh phim kỹ thuật số… và hơn thế nữa. Trong chừng mực của một máy tính có liên quan đến, M là dữ liệu nhò phân đơn giản. Văn bản được mã hóa có mục đích là truyền đi hay lưu trữ. Trong tình huống này, M là thông báo phải được mã hóa. Văn bản đã được mã hóa được biểu thò bằng C. Nó cũng là dữ liệu nhò phân: đôi khi cùng kích thước với M, và cũng có lúc lớn hơn rất nhiều. E được biểu thò cho công việc mã hóa và D dùng để thể hiện việc giải mã các thông báo đã được mã hóa gửi đến. Ta có: E (M) = C D (C) = M D (E(M)) =M Mật mã hiện đại giải quyết vấn đề với một khóa, khóa này được biểu thò bằng K. Khóa này có thể là một trong những con số lớn có giá trò lớn. Ta có: E K (M) = C D K (C) = M D K (E K (M)) = M - Quá trình mã hóa và giải mã dùng chung một khóa: - 3 - Giải thuật mã hoá mật mã RSA - Quá trình mã hóa và giải mã sử dụng hai khóa khác nhau: Ví dụ, một người muốn mã hóa những tập tin trên ổ cứng để ngăn chặn những kẻ xâm nhập vào có thể đọc được dữ liệu. Trong một hệ thống nhiều người sử dụng, việc mã hóa dữ liệu cho phép bảo mật thông tin trên một kênh truyền không an toàn. Trong một ngữ cảnh thông thường: Lan muốn gửi một thông báo cho Nam nhưng không muốn một ai khác ngoài Nam có thể đọc được nó. Lan mã hóa dữ liệu với một khóa mã hóa, thông báo đã mã hóa đã mã hóa gửi đi cho Nam. Nam giải mã thông báo đã mã hóa đó với một khóa giải mã và đọc được nó. Một người cố lấy cho bằng được khóa giải mã hoặc cố tình chuyển lại tình trạng cũ mà không cần phải có khóa bảo mật. Trong một hệ thống mã hóa an toàn, thông tin đã mã hóa không thể chuyển đổi lại thành thông tin ban đầu mà không có khóa giải mã. Hệ thống mật mã đối xứng chỉ có một khóa duy nhất vừa là khóa mã hóa vừa là khóa giải mã. 2. Giao thức mật mã a. Giới thiệu về giao thức: Mật mã giải quyết những vấn đề bao gồm tính bảo mật, tính xác thực, tính toàn vẹn. Bạn có thể học tất cả về thuật toán và kỹ thuật mã hóa, nhưng đó là những lý thuyết suông nếu bạn không thể giải quyết vấn đề. Đó lý do chúng ta quan tâm đến các giao thức số nguyên tố. Một giao thức là một chuỗi các bước bao gồm hai hay nhiều phần được thiết kế để thực hiện một tác vụ. Một “chuỗi các bước “có nghóa là giao thức có tính liên tục, từ lúc bắt đầu đến lúc kết thúc. Mỗi bước phải được thực thi lần lượt và bước sau không thể thực thi khi bước trước chưa thực thi xong. Giao thức mật mã là một giao thức sử dụng mật mã. Giao thức mật mã bao gồm vài giải thuật mật mã nhưng nhìn chung mục đích của giao thức đơn giản chỉ là bảo mật. - 4 - Giải thuật mã hoá mật mã RSA Bây giờ chúng ta hãy xem xét đến một giao thức được ứng dụng trong mạng máy tính ARPA để xây dựng một kênh truyền dẫn ảo được bảo mật. Chúng ta chọn lớp mạng của mô hình tham chiếu mạng hệ mở bảy tầng (OSI). Hình 1. Mô hình tham chiếu mạng hệ mở. Sơ đồ tổng quát cho việc trao đổi thông tin của giao thức này được mô tả theo hình ở sau. - 5 - Giải thuật mã hoá mật mã RSA Hình 2: Chuyển đổi thông tin giữa hai người sử dụng là A và B. Người sử dụng chương trình A dùng chương trình mã hoá, thông qua hệ điều hành đến mạng truyền thông. Thông qua giao diện này, chương trình qua hệ điều hành của người sử dụng chương trình B và người B sử dụng chương trình mã hoá để cho ra thông điệp mà người A gửi đến. b. Truyền thông sử dụng giao thức mã hóa đối xứng. Mã đối xứng là hệ mật mã sử dụng cùng một khóa cho cả việc mã hoá cũng như giải mã một thông điệp. Những hệ thống mã hoá đối xứng có những vấn đề cho phép sau: • Khóa phải được phân bổ một cách bí mật. Chúng có giá trò cho tất cả các thông điệp được mã hoá, biết khóa có thể biết hết tất cả các thông điệp. • Nếu khóa bò lấy cắp thì người thứ ba có thể giải mã được các thông điệp đã được mã hóa với một khóa. Người này có thể ng tạo một phần và tạo ra những thông điệp bò lỗi để lừa những người khác. • Một khóa bí mật được sử dụng cho một cặp người tham gia trên một mạng, tổng số những con số các khóa tăng một cách nhanh chóng khi số lượng người sử dụng tăng lên. Một mạng của n người sử dụng yêu cầu n(n- 1)/2 khóa. Ví dụ, với 10 người sử dụng yêu cầu 45 khóa khác nhau để nói chuyện với người khác và 100 người sử dụng cần 4950 khóa. Giải thuật đối xứng giống như một két sắt. Khoá là chìa khoá duy nhất để mở két sắt đó. Một người với một sự phối hợp có thể mở két sắt và đưa dữ liệu ra ngoài. Nếu có khoá này, bạn có thể mở két sắt để đưa dữ liệu vào và khoá két lại. c. Hàm một chiều. Hàm một chiều là hàm trọng tâm trong hệ mật mã dùng khóa công khai. Hàm một chiều là một hàm cơ bản cho hầu hết những giao thức. Hàm cửa bẫy một chiều là hàm một chiều đặc biệt, đóù là một cửa bẫy bí mật. Hàm này dễ dàng tính toán theo một hướng nhất đònh và rất khó khăn khi tính toán theo một hướng khác. Nhưng nếu bạn biết bí mật thì bạn có thể tính toán các hàm theo hướng khác đó. d. Hàm ánh xạ. Hàm ánh xạ có nhiều tên: hàm giảm, hàm thu gọn… Hàm này là trọng tâm của mật mã hiện đại. Hàm ánh xạ là một hàm cơ bản cho nhiều giao thức. Hàm ánh xạ được sử dụng trong ngành khoa học máy tính trong một - 6 - Giải thuật mã hoá mật mã RSA thời gian dài. Hàm ánh xạ làm việc theo một chiều, dễ dàng tính toán một giá trò băm từ một hình ảnh trứơc đó. Mã xác nhận thông tin (MAC), còn gọi là mã xác nhận dữ liệu, là một hàm ánh xạ kèm theo một khóa bí mật. Bạn có thể tạo ra một MAC ngoài một hàm ánh xạ hay một thuật giải mã hóa. e. Truyền thông sử dụng nghi thức mã khóa công khai Hệ mã khóa công khai hay còn gọi là hệ mã bất đối xứng. Mã bất đối xứng là hệ mật mã sử dụng một cặp khóa trong đó một khóa được công bố rộng rãi gọi là khoá công khai và một khóa được lưu giữ bí mật gọi là khóa riêng. Cặp khóa này dùng để mã hoá cũng như giải mã dữ liệu, trong đó khóa công khai sẽ dùng để mã hóa và khóa bí mật dùng để giải mã dữ liệu đã được mã hóa. Trong mạng có nhiều người sử dụng, hệ mã hoá khóa công khai mới là giải pháp bảo mật tối ưu. Người sử dụng sở hữu một khóa công khai và một khóa bí mật. Khóa công khai đó được phổ biến trong cơ sở dữ liệu ở một số nơi. Trên thực tế, giải thuật khóa công khai không phải là sự thay thế cho giải thuật đối xứng. Chúng không được sử dụng để mã hóa thông tin, chúng được sử dụng để mã hóa những khóa chẳng hạn như khoá DES. Giải thuật khóa công khai thường chậm. Những giải thuật mã hóa đối xứng nói chung nhanh hơn rất nhiều lần lần so với giải thuật mã hóa khóa công khai. Với những máy tính có bộ xử lý cao và trong vòng những năm tới có thể dùng giải thuật mật mã khóa công khai để mã hoá và giải mã dữ liệu với tốc độ có thể so sánh với mật mã đối xứng ngày nay. Với băng thông tăng lên và đó là điều cần thiết để mã hóa dữ liệu nhanh hơn mật mã khóa công khai có thể quản lý. 3. Các chế độ mật mã. Giải thuật mật mã khối mã hoá dữ liệu theo những khối. Kích thước khối thông dụng nhất là 8 byte. Mật mã khối bảo mật cao hơn mật mã dòng, tuy nhiên những giải thuật mật mã khối thực thi chậm hơn những mật mã khác. Những mật mã khối sử dụng cùng một giải thuật mã hoá cho mỗi khối. Do đó, một khối văn bản thường trả về cùng một văn bản mật mã khi mã hoá với cùng một khoá và một giải thuật. - 7 - Giải thuật mã hoá mật mã RSA • CBC ( Cipher Block Chaining mode): chế độ mắc xích những khối mã hóa. Chế độ CBC giới thiệu về thông tin phản hồi. Trước khi mỗi khối văn bản thường được mã hoá, nó kết hợp với văn bản mật mã của khối trước bằng một thao tác OR đối với từng bít. Điều này đảm bảo rằng ngay cả khi có nhiều khối văn bản thường giống nhau thì mỗi khối đó sẽ được mã hoá sang những khối văn bản mật mã khác nhau. Khởi tạo được kết hợp với khối văn bản thường số nguyên tố bằng thao tác OR cho từng bít trước khi khối được mã hoá. Nếu có một bít đơn của khối văn bản thường bò hư, khối văn bản thường tương ứng cũng sẽ bò hư. Thêm vào đó, một bít trong khối theo sau, ở cùng một vò trí như bít hư số nguyên tố sẽ bò hư. Hình 3: Chế độ mắc xích những khối mã hóa. • CFB (Cipher Feedback mode ): chế độ phản hồi mật mã. Chế độ CFB này sử dụng một thanh ghi dòch từng khối nhỏ trong văn bản và được chia thành nhiều phần, không xử lý nguyên một khối lớn. Ví - 8 - Giải thuật mã hoá mật mã RSA dụ, nếu kích thước của khối là 8 byte, với 1 byte xử lý vào lúc đầu, thanh ghi dòch được chia thành 8 phần và chế độ này xử lý 8 phần. Nếu một bít trong văn bản mật bò hư thì một bít trong văn bản thường cũng bò hư và thanh ghi dòch bò sai lạc. Điều này làm cho nhiều sự gia tăng của văn bản thường bò hư cho đến khi bít hư bò dòch ra khỏi thanh ghi dòch. • CTS (Cipher Text Stealing mode) chế độ sao chép nguyên văn mật mã. Chế độ CTS sử dụng một chiều dài bất kỳ của văn bản thường và tạo ra văn bản mật mã có chiều dài với chiều dài của văn bản tónh. Chế độ này thực thi cũng giống như chế độ CBC nhưng khác với hai khối cuối cùng của văn bản thường. • ECB ( Electronic Codebook mode): chế độ các ký hiệu điện tử Chế độ ECB mã hoá mỗi khối một cách riêng lẻ. Nghóa là những khối văn bản thường bất kỳ giống nhau và nằm trong cùng một thông báo hoặc nằm trong một thông báo khác được mã hoá với cùng một khoá sẽ bò biến đổi thành những khối văn bản mật mã giống nhau. Hình 4: Quá trình di chuyển của các ký hiệu điện tử. - 9 - Giải thuật mã hoá mật mã RSA Hình 5: Mô hình mã hóa bằng các ký hiệu điện tử. Nếu văn bản thường được mã hoá bản sao quan trọng, nó sẽ làm cho văn bản mật mã bò phá vỡ mỗi lúc một khối. Và kẻ đòch có thể thay đổi hoặc trao đổi những khối riêng mà không cần phải dò tìm. Nếu 1 bít trong khối văn bản mật mã bò hư, toàn bộ khối văn bản tónh tương ứng cũng sẽ bò hư. • OFB ( Output Feedback mode): chế độ phản hồi đầu ra. Chế độ OFB tương tự như chế độ CFB, sự khác biệt duy nhất giữa hai chế độ này là cách mà thanh ghi dòch được đưa vào. Nếu một bít trong văn bản mật mã bò hư, bít tương đương của văn bản thường cũng sẽ bò hư. Tuy nhiên, nếu có thêm hoặc mất những bít từ văn bản mật mã, văn bản thường chỉ bò hư từ vò trí đó. - 10 - [...]... ra khóa giải mã trong một thời gian chấp nhận được ngay cả khi sử dụng cả máy tính hiện đại Những mật mã - 12 - Giải thuật mã hoá mật mã RSA khóa công khai số nguyên tố tìm thấy là những mật mã dùng đến các hàm số học 4.2.1 Mã Ceasar Mật mã Cesar là mật mã mà mỗi ký tự thứ i trong bảng chữ cái được dòch tới ký tự thứ (i+j) Ta có qui trình mật mã như sau : Mã hóa : E : i ® i+j Giải mã : D : i ® i-j Mã. .. là khóa giải mã và khóa lập mã của cùng đối tượng thứ j Các đối tượng nếu nhận được văn bản mật cũng không thể nào giải mã được vì cho dù biết khóa lập mã Ekj thì không hẳn là tìm ra khóa giải mã Dkj 4.2.5 Sơ lược về RSA RSA là hệ thống bảo mật khóa công khai cho cả mã hóa và việc xác nhận; được phát minh vào năm 1977 bởi Ron Rivest, Adia và Leonard Adleman Được xây dựng trên cơ sở mã mũ trong đó khóa... tìm ra khóa chung k theo công thức: k k ≡ y 2 2 ≡ a k1k2 (mod p) 4.2.4 Mã khóa công khai Với các hệ mã trên thì khóa lập mã phải được giữ bí mật, nếu chẳng may khóa này bò tìm ra thì việc giải mã sẽ không gặp khó khăn lắm Một nguyên tắc mới được đưa ra là cho dù biết được khóa lập mã nhưng chưa chắc đã tìm ra khóa giải mã trong một thời gian có thể chấp nhận Mỗi đối tượng giữ bí mật khóa giải mã riêng... báo mật cho một đối tượng nào đó ta cần phải biết khóa lập mã của họ, vì vậy những người cùng một hệ mã đều biết bí mật của nhau dẫn đến không còn là bí mật nữa Các hệ thống mật mã hiện đại tức là mật mã khóa công khai đã khắc phục được những nhược điểm đó: người tham gia trong hệ thống chỉ cần giữ bí mật khóa giải mã riêng của mình trong khi khóa lập mã được thông báo công khai Việc biết khóa lập mã. .. (mod n) với ∀ M 4 Tính bảo mật Tính bảo mật của hệ mã hóa mật mã công khai RSA phần lớn dựa vào việc lấy thừa số các số nguyên lớn Kẻ xâm nhập có thể lấy thừa số - 32 - Giải thuật mã hoá mật mã RSA môđun n trong một khóa công khai thì kẻ xâm nhập đó có thể suy ra khoá bí mật từ khoá công khai này rồi lấy thừa số các số nguyên lớn dễ dàng thì việc bẻ khóa hệ mật mã công khai RSA cũng dễ dàng nhưng nếu... thiết Hình 7: Hệ thống mã hoá mật mã dùng khóa công khai Giải thuật RSA sử dụng hai khoá khác nhau để mã hoá và giải mã dữ liệu 5 Các ví dụ về giải thuật RSA a Ví dụ 1 Ta chọn: P = 61 . mã hóa dữ liệu với một khóa mã hóa, thông báo đã mã hóa đã mã hóa gửi đi cho Nam. Nam giải mã thông báo đã mã hóa đó với một khóa giải mã và đọc được nó. Một người cố lấy cho bằng được khóa giải. đầu mà không có khóa giải mã. Hệ thống mật mã đối xứng chỉ có một khóa duy nhất vừa là khóa mã hóa vừa là khóa giải mã. 2. Giao thức mật mã a. Giới thiệu về giao thức: Mật mã giải quyết những. nhất là 8 byte. Mật mã khối bảo mật cao hơn mật mã dòng, tuy nhiên những giải thuật mật mã khối thực thi chậm hơn những mật mã khác. Những mật mã khối sử dụng cùng một giải thuật mã hoá cho mỗi khối.