1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu ứng dụng mật mã khóa công khai trong môi trường mã nguồn mở

39 4 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 472,74 KB

Nội dung

MỤC LỤC MỤC LỤC MỞ ĐẦU CHƢƠNG 1: TÌM HIỂU HỆ ĐIỀU HÀNH MẠNG LINUX 1.1 Hệ điều hành mạng 1.1.1 Hệ điều hành Linux 1.1.2 Linux UNIX 1.1.3 Ƣu điểm sử dụng Linux 1.2 Một số đặc điểm hệ điều hành mạng Linux 1.2.1 Đặc điểm hệ thống 1.2.2 Các đặc điểm phần mềm 1.2.3 Linux mạng 10 1.3 Tìm hiểu nhân hệ điều hành Linux 11 1.3.1 Bộ phân thời cho tiến trình (Process Scheduler - SCHED) 11 1.3.2 Bộ quản lý nhớ (Memory Manager - MM) 11 1.3.3 Hệ thống file ảo (Virtual File System - VFS) 11 1.3.4 Giao diện mạng (Network Interface - NET) 11 1.3.5 Bộ truyền thông nội (Inter Process Communication IPC) 12 1.4 Các cấu trúc liệu hệ thống 12 1.5 Cấu trúc SCHED 12 CHƢƠNG 2: MẬT MÃ KHĨA CƠNG KHAI 14 2.1 Một số khái niệm 14 2.1.1 Số học modulo 14 2.1.2 Hàm Euler 15 2.1.3 Thuật toán Euclide 15 2.1.4 Các kiến thức cần thiết khác 17 2.2 Khái niệm mã hóa khóa công khai 18 2.3 Mơ hình bảo vệ thơng tin mật mã khóa cơng khai 20 2.3.1 Một số mơ hình bảo vệ thông tin 20 2.3.2 Các ứng dụng mật mã khóa cơng khai 22 2.3.3 Yêu cầu mật mã khóa cơng khai 23 2.4 Các phƣơng pháp phân phối khóa cơng khai 23 2.5 Dùng mật mã khóa cơng khai phân phối khóa bí mật 24 2.5.1 Phân phối khóa bí mật đơn giản 24 2.5.2 Phân phối khóa bí mật có bí mật xác thực 25 2.6 Trao đổi khóa DIFFIE – HELLMAN 26 2.7 Các hệ mật dùng khóa cơng khai 27 CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG TRÊN LINUX 28 3.1 Phát triển ứng dụng Linux 28 3.1.1 GNU sản phẩm miễn phí 28 3.1.2 Lập trình Linux 28 3.1.3 Chƣơng trình UNIX Linux 29 3.2 Hệ mật khóa cơng khai RSA (Rivest, Shamir Adlemam) 29 3.3 Mơ hình tốn tiền điện tử 31 3.4 Mô tả yêu cầu hệ thống 32 3.4.1 Đối tƣợng phục vụ 33 3.4.2 Chức thành phần hệ thống 34 3.5 Mơ hình ứng dụng RSA toán 34 3.6 Phạm vi ứng dụng 36 3.7 Chƣơng trình ứng dụng 36 KẾT LUẬN 38 TÀI LIỆU THAM KHẢO 39 MỞ ĐẦU Hiện giới, mạng máy tính ngày đóng vai trị thiết yếu lĩnh vực hoạt động toàn xã hội, trở thành phƣơng tiện trao đổi thơng tin liệu nhu cầu bảo mật thơng tin đƣợc đặt lên hàng đầu Nhu cầu máy An ninh, Quốc phịng, Quản lý nhà nƣớc mà trở thành thiết nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thƣơng mại … hoạt động thƣờng ngày nhƣ thƣ điện tử, tốn, tín dụng … Trên giới có nhiều giải pháp mã hóa thơng tin theo cơng nghệ dựa thuật tốn có độ phức tạp cao sản phẩm loại bắt đầu thƣơng mại hóa Tuy nhiên mức độ bảo mật tốc độ xử lý loại sản phẩm khác Mặt khác dù có thuật tốn tốt nhƣng khơng nắm bắt đƣợc khía cạnh cơng nghệ bảo mật khơng có cách bịt hết đƣợc kẽ hở mà tin tặc dễ dàng cơng.Vì để bảo mật thơng tin “nhậy cảm” giải pháp tự xây dựng chƣơng trình bảo mật thơng tin cho Nhu cầu địi hỏi đặt cho chuyên gia CNTT thách thức mới: làm để vừa thỏa mãn yêu cầu đòi hỏi tốc độ xử lý, dải thông đƣờng truyền truy cập ngƣời sử dụng, đồng thời đảm bảo an toàn bảo mật hệ thống thông tin, với việc mở rộng kết nối tới hệ thống khác khơng nằm tầm kiểm sốt mình, để đảm bảo cho tốc độ phát triển chung việc khai thác tiềm năng, hiệu to lớn mạng máy tính đem lại CHƢƠNG 1: 1.1 TÌM HIỂU HỆ ĐIỀU HÀNH MẠNG LINUX Hệ điều hành mạng 1.1.1 Hệ điều hành Linux Linux bắt nguồn từ hệ điều hành lớn có tên UNIX UNIX hệ điều hành đƣợc sử dụng rộng rãi giới tính ổn định khả hỗ trợ Về nguyên tắc hệ điều hành software, nhƣng software đặc biệt – đƣợc dùng để điều phối tài nguyên (resource) hệ thống (bao gồm hardware software khác) Linux đƣợc gọi Open Source Unix (OSU), Unix – like Kernel, clone of the UNIX operating system Linux phiên UNIX đƣợc cung cấp miễn phí, ban đầu đƣợc phát triển Linus Torvalds năm 1991 (sinh viên trƣờng đại học Helsinki, Phần Lan) Khi Linus tung phiên miễn phí Linux (0.02) Internet tạo sóng phát triển phần mềm lớn từ trƣớc đến phạm vi toàn cầu Hiện Linux đƣợc phát triển bảo trì nhóm hàng nghìn lập trình viên cộng tác chặt chẽ với qua Internet Tháng 11/1991 Linus đƣa thức Linux (0.02), chạy bash gcc (trình dịch C GNU – GNU’s Not UNIX) Nhƣng hệ thống chƣa có hỗ trợ ngƣời dùng tài liệu hƣớng dẫn Tháng 3/1994 phiên Linux 2.2.6, làm việc mơi trƣờng đồ họa với ứng dụng cao cấp nhƣ tiện ích đồ họa tiện ích khác Linux khó thành cơng đƣợc nhƣ khơng có cơng cụ GNU tổ chức phần mềm miễn phí (Free Software Foundation) Trình dịch gcc GNU giúp cho việc viết mã Linux dễ dàng nhiều Hiện Linux hệ điều hành UNIX đầy đủ độc lập Nó chạy X Window, TCP/IP, Emacs, Web, thƣ điện tử phần mềm khác 1.1.2 Linux UNIX UNIX hệ điều hành mạnh, UNIX qua thử thách chạy máy chủ môi trƣờng xí nghiệp rộng rãi thời gian dài Hệ điều hành UNIX đến chƣa có đối thủ đứng ngang với tầm vóc nhƣ chịu đựng thời gian Windows Microsoft trƣớc dùng cho máy để bàn (desktop) Họ sản phẩm Microsoft chƣa mang tính máy chủ (server) thực thụ Windows NT Windows 2000 đời Tuy nhiên UNIX, NT Windows 2000 sản phẩm có quyền Linux trở lên phổ biến rộng rãi đƣợc ủng hộ nhiều lập trình viên giới Điểm bật Linux mã nguồn mở tính ổn định kế thừa từ kiến trúc UNIX qua thử thách Linux hạt nhân cung cấp chức cần thiết tối thiểu hệ điều hành tựa UNIX Vì UNIX khơng có phiên chạy PCs theo kiến trúc vi xử lý Intel nên Linux đƣợc xem sản phẩm giá trị 1.1.3 Ƣu điểm sử dụng Linux Linux hệ điều hành mã nguồn mở, đƣợc cung cấp miễn phí cho ngƣời sử dụng Nó có khả đa nhiệm, đa xử lý, hỗ trợ mạng, khả tƣơng thích phần cứng nhiều tính khác: Tính ổn định: Linux có tính ổn định cao, bị lỗi sử dụng so với hầu hết hệ điều hành khác Ngƣời sử dụng Linux lo lắng đến việc máy tính bị “treo cứng” sử dụng Tính bảo mật: Linux hệ điều hành đa nhiệm, đa ngƣời dùng (nhiều ngƣời sử dụng vào phiên làm việc máy thời điểm) Linux cung cấp mức bảo mật khác cho ngƣời sử dụng Mỗi ngƣời sử dụng làm việc không gian tài nguyên dành riêng, có ngƣời quản trị có quyền thay đổi máy Tính hồn chỉnh: Bản thân Linux đƣợc kèm theo trình tiện ích cần thiết Tất trình tiện ích mà ngƣời sử dụng mong đợi có sẵn dạng tƣơng đƣơng giống Trên Linux, trình biên dịch nhƣ C, C++, … hạt nhân hay TCP/IP đƣợc chuẩn hóa Tính tƣơng thích: Linux tƣơng thích hầu nhƣ hồn tồn với số chuẩn UNIX nhƣ IEEE POSIX.1, UNIX System V BSD UNIX Trên Linux tìm thấy trình giả lập DOS Window, cho phép chạy ứng dụng quen thuộc DOS Window Linux hỗ trợ hầu hết phần cứng máy PC Hệ điều hành 32 bit đầy đủ: khơng cịn phải lo lắng giới hạn nhớ, trình điều khiển EMM hay nhớ mở rộng… sử dụng Linux Dễ cấu hình: Ngƣời sử dụng hầu nhƣ toàn quyền điều khiển cách làm việc hệ thống, bận tâm giới hạn 640K tiến hành tối ƣu hóa nhớ lần cài đặt trình điều khiển Khả làm việc nhiều loại máy: Cấu hình phần cứng tối thiểu chip 80386, 2MB nhớ, 10-20 MB khơng gian đĩa để bắt đầu Linux có khả chạy nhiều dòng máy khác nhƣ Apple Macintosh, Sun, Dec Alpha Power PC Giống nhƣ UNIX, Linux hệ điều hành đa nhiệm, sử dụng quản lý nhớ tinh vi điều khiển tất tiến trình, chƣơng trình bị hỏng loại bỏ tiếp tục làm công việc khác Linux gần nhƣ miễn dịch với công loại virus Với phát triển thay đổi liên tục công nghệ giao diện, Linux làm cho nhiều cơng ty, phủ, tổ chức ngƣời sử dụng quan tâm đến Hàng ngàn website giới sử dụng Linux nhƣ webserver, nhiều công ty lớn nhƣ HP, Ericssion sử dụng Linux nhƣ hệ điều hành chạy sản phẩm họ mà biết thuật ngữ Linux Embedded Gần phủ nhiều quốc gia chọn Linux chiến lƣợc phát triển công nghệ bảo mật (security) chống lại công tin tặc Có nhiều phiên Linux phát triển thành sản phẩm thƣơng mại có độ ổn định cao, đáp ứng nhiều công việc nhƣ Red Hat Linux, Caldera, SuSE Với việc làm trên, ta thấy Linux hệ điều hành tƣơng lai đáp ứng đƣợc nhiều yêu cầu ngƣời tiêu dùng khắp giới 1.2 Một số đặc điểm hệ điều hành mạng Linux 1.2.1 Đặc điểm hệ thống Các version khác Linux: thông thƣờng nhân Linux (Linux kernel) có số hiệu phiên riêng Tại thời điểm có hai phiên phiên ổn định (Stable) phiên phát triển (development) Phiên ổn định dành cho hầu hết ngƣời dùng, phiên phát triển thay đổi nhanh đƣợc chạy thử nhà phát triển Internet Phiên ổn định thƣờng có số hiệu nhỏ Các đặc tính hệ thống:  Linux hệ điều hành đa nhiệm đa ngƣời dùng  Tƣơng thích gần nhƣ hoàn toàn với UNIX nhƣ chuẩn IEEE POSIX.1, System V, BSD  Có thể đƣợc cài đặt với hệ điều hành khác nhƣ Windows 95/98, Windows NT, OS/2, phiên khác Linux Chƣơng trình tải hệ thống Linux (LILO) cho phép chọn hệ điều hành khởi động  Linux chạy nhiều cấu trúc CPU khác nhƣ Intel, SPAERC, Alpha, Power PC, MIPS m68k  Hỗ trợ nhiều hệ thống file khác nhƣ: hệ thống file mở rộng (ext2fs) dành riêng, MS DOS file, Windows, OS2, Apple, …  Mạng điểm mạnh Linux Linux cung cấp đủ dịch vụ giao thức mạng TCP/IP, bao gồm Drive thiết bị cho card Ethernet, PPP SLIP, PLIP (Parallel Line Internet Protocol) NFS (Network file system) Hỗ trợ dịch vụ nhƣ FTP, Telnet, NNTP SMTP (Simple Mail Transfer Protocol) Kernel Linux hỗ trợ tƣờng lửa (firewall) cho mạng, ngƣời sử dụng đặt cấu hình máy Linux nhƣ filewall Kernel: phần chính, trái tim hệ điều hành, điều khiển giao diện chƣơng trình ngƣời sử dụng với thiết bị phần cứng, xếp lịch tiến trình nhiều tác vụ khác hệ thống Kernel khơng phải tiến trình chạy riêng biệt hệ thống mà tập trình đơn nằm nhớ, tiến trình gọi đến chúng Trên nhiều cấu trúc máy tính, kernel mô lệnh dấu phẩy động (PFU) nhớ khơng có đồng xử lý tốn học Kernel Linux hỗ trợ kỹ thuật nhƣ: phân trang nhớ, nhớ ảo, cache đĩa, … 1.2.2 Các đặc điểm phần mềm Các lệnh tiện ích: tất tiện ích lệnh UNIX đƣợc chuyển sang Linux Các lệnh nhƣ ls, awk, tr, sed, bs, more, phần mềm nhƣ Perl, Python, Java Deverlopment Kit Các trình soạn thảo văn nhƣ: vi, ex, GNU emacs Một tiện ích quan trọng Linux shell Shell chƣơng trình cho phép đọc thƣc lệnh ngƣời dùng Trong shell ngƣời ta viết shell script, tƣơng tự nhƣ file Bat MSDOS, tệp chứa chƣơng trình ngơn ngữ lệnh Shell Linux nhƣ C shell, Bash shell (GNU Bourne Again shell), ksh (Korn shell) Các ngơn ngữ lập trình: Linux cung cấp mơi trƣờng lập trình UNIX đầy đủ, bao gồm thƣ viện chuẩn, cơng cụ lập trình, trình dịch gỡ rối Hai ngơn ngữ lập trình phổ biến C C++ đƣợc hỗ trợ Linux với trình dịch gcc GNU Bộ Java Deverlopment Kit Sun đƣợc đƣa vào Linux Các ngơn ngữ lập trình khác nhƣ Smalltalk, Fortran, Pascal, Lisp,… Hệ thống X Window: giao diện đồ họa chuẩn cho máy UNIX Phiên X Window Linux XFree86 Các ứng dụng chuẩn X Window xterm (bộ mô đầu cuối dùng cho ứng dụng chế độ text), xdm (quản lý việc vào hệ thống ngƣời dùng), xclock (đồng hồ), xman (bộ đọc trang hƣớng dẫn đồ họa) Giao diện X Window đƣợc điều khiển chƣơng trình window manager (đặt cửa sổ, cho phép thay đổi kích thƣớc, đặt biểu tƣợng, di chuyển cửa sổ,đặt kiểu khung cửa sổ) Giao diện X Window đƣợc đảm nhiệm chƣơng trình XFree86 Chƣơng trình XFree86 chứa chƣơng trình window manager chuẩn MIT twm, thƣ viện lập trình file includes cho nhà phát triển phát triển ứng dụng X Window X Window hỗ trợ Athena, Openlook, Xaw3D, công cụ đồ họa chiều nhƣ PEX, Mesa (phiên cài đặt miễn phí OpenGL 3D) KDE GNOME: hai dự án quan trọng giới Linux Hầu hết phiên Linux cho phép đặt cấu hình cách tự động hai chƣơng trình Mục tiêu KDE dễ sử dụng, ổn định giao diện ngƣời dùng tƣơng thích với môi trƣờng khác GNOME ý đến giao diện đẹp mắt có khả đặt cấu hình tối đa Giao tiếp với Windows MS-DOS: Linux có nhiều tiện ích cho phép giao tiếp với Windows MS-DOS nhƣ Wine – trình giả lập Microsoft Windows X Window Linux cho phép ứng dụng windows chạy Linux, trình giả lập MS-Dos Linux cho phép chạy ứng dụng dƣới DOS Linux 1.2.3 Linux mạng Linux hệ điều hành mạng mạnh nhất, hỗ trợ hai giao thức cho hệ thống UNIX: TCP/IP UUCP Hầu hết mạng TCP/IP sử dụng card mạng Ethernet để kết nối Linux hỗ trợ nhiều card Ethernet thông dụng nhƣ loại Fast Ethernet, Gigabit Ethernet, ATM, ISDN, mạng Lan không dây, Token Ring, packet ratio giao diện mạng hiệu cao khác Linux hỗ trợ PPP SLIP, cho phép kết nối Internet qua modem, hỗ trợ trình duyệt Web nhƣ: Netscape web server nhƣ Apache Samba gói phần mềm cho phép máy tính Linux hoạt động nhƣ file server print server Windows NFS cho phép hệ thống chia sẻ tệp máy tính với mạng Với NFS cho phép nhìn tệp xa giống nhƣ máy tính ngƣời sử dụng Giao thức FTP (File Transfer Protocol) cho phép truyền tệp máy tính mạng với Các dịch vụ truyền thƣ điện tử nhƣ: Send mail, exim, Smail, dịch vụ telnet, rlogin, ssh rsh cho phép truy nhập làm việc máy tính khác mạng Linux hỗ trợ TCP/IP cung cấp giao diện lập trình socket chuẩn Transmission Control Protocol Internet Protocol hai giao thức họ TCP/IP 10 2.5.2 Phân phối khóa bí mật có bí mật xác thực Hai thành viên muốn truyền thông với dùng mã khóa bí mật A muốn B gửi cho A khóa phiên Ks cách bí mật xác thực cách dùng mật mã khóa cơng khai Giả thiết A B trao đổi khóa cơng khai với trƣớc Hình 3.9 Phân phối khóa bí mật có bí mật xác thực Các bƣớc tiến hành:  A dùng khóa cơng khai B EKUb lập mã thơng báo có chứa thơng tin IDa nonce N1 (giá trị ngẫu nhiên không lặp lại)  B gửi cho A mã EKUa[N1 || N2], có giá trị nonce N2 B  A gửi cho B N2 đƣợc mã hóa khóa cơng khai B để đảm bảo với B ngƣời đáp ứng A  A chọn khóa Ks gửi cho B mã Y=EKUb[EKRa[Ks]], KRa khóa riêng A Ks khóa bí mật chung A B  B tính DKUa[DKRb[Y]] để khơi phục khóa bí mật 25 2.6 Trao đổi khóa DIFFIE – HELLMAN Trong sơ đồ phân phối khóa riêng dùng mật mã khóa cơng khai trên, khóa phiên đƣợc tạo bên tham gia truyền thơng sau đƣợc mã khóa cơng khai truyền cho bên Điều dẫn đến lộ khóa bên sinh khóa đƣờng truyền Trong thuật tốn trao đổi khóa Diffie – Hellman, hai bên truyền thông cung cấp cho thông tin bí mật để tạo khóa phiên chung, mục đích giúp trao đổi khóa cách an tồn để mã giải mã thông báo Dùng giao thức Diffie – Hellman để trao đổi khóa K, giao thức thực nhƣ sau: Giả sử chọn đƣợc trƣớc số nguyên tố p phần tử nguyên thủy α Zp , bƣớc giao thức là: A chọn ngẫu nhiên Xa thỏa mãn ≤ Xa ≤ p-2, giữ kín Xa, tính Ya = αXa mod p gửi Ya cho B B chọn ngẫu nhiên Xb thỏa mãn ≤ Xb ≤ p-2, giữ kín Xb, tính Yb = αXb mod p gửi Yb cho A Cả A B tính đƣợc khóa chung K = αXaXb mod p, A tính K = YbXa mod p, B tính K = YaXb mod p Kẻ cơng muốn có khóa K phải tính đƣợc Xa Xb, phải đối mặt với toán logarit rời rạc Zp Thuật tốn Diffie - Hellman có hai đặc trƣng sau:  Các khóa bí mật đƣợc tạo cần thiết, khơng phải giữ khóa bí mật thời gian dài  Việc thỏa thuận dựa tham số chung Tuy nhiên thuật tốn Diffie – Hellman có số điểm yếu sau:  Nó khơng cung cấp thơng tin định danh bên 26  Nó an tồn việc cơng thụ động nghĩa ngƣời thứ ba biết Ya, Yb khơng tính đƣợc K, nhiên giao thức khơng an tồn việc cơng chủ động cách đánh tráo đƣờng Trong ngƣời C mạo danh B truyền thông với A mạo danh A truyền thông với B Cả A B thỏa thuận với C, sau C nghe thơng tin đƣợc trao đổi A B 2.7 Các hệ mật dùng khóa cơng khai Hệ mật RSA: độ bảo mật hệ RSA dựa độ khó việc phân tích thừa số nguyên tố số nguyên lớn Hệ mật xếp ba lơ Merkle – Hellman: dựa tính khó giải toán tổng hợp tập (bài toán NP đầy đủ) Hệ mật McEliece: dựa lý thuyết mã đại số - toán giải mã cho mã tuyến tính Hệ mật ElGamal: dựa tính khó giải toán logarit rời rạc đƣờng hữu hạn Hệ mật Chor – Rivest : loại hệ mật xếp ba lô Hệ mật đƣờng cong Elliptic: biến tƣớng hệ mật nhƣng chúng làm việc đƣờng cong Elliptic Hệ mật đảm bảo độ mật với khóa số nhỏ hệ mật khóa cơng khai khác 27 CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG TRÊN LINUX 3.1 Phát triển ứng dụng Linux 3.1.1 GNU sản phẩm miễn phí Cộng đồng mã nguồn mở GNU (GNU’s Not UNIX) xây dựng nhiều ứng dụng có khả chạy UNIX Linux gồm: trình soạn thảo, trị chơi, đồ họa, ứng dụng Internet, trình chủ web, ngơn ngữ lập trình, trình biên dịch, thơng dịch… GNU cung cấp cơng cụ biên dịch C/C++ gồm: gcc Trình biên dịch C g++ Trình biên dịch C++ gdb Trình gỡ lỗi GNU make Trình quản lý mã nguồn trợ giúp biên dịch GNU Emacs Trình soạn thảo văn (hỗ trợ cho việc chỉnh sửa nguồn lập trình) bash Hệ vỏ Shell hỗ trợ dòng lệnh hệ điều hành Bision Bộ phân tích tƣơng thích với yacc UNIX 3.1.2 Lập trình Linux C ngơn ngữ lập trình có vai trị quan trọng UNIX Linux, nguyên thủy UNIX đƣợc viết từ C phần lớn ứng dụng UNIX dùng C để viết Tuy nhiên dùng nhiều ngơn ngữ khác nhƣ Java, JavaScript, SQL, Pascal, Prolog, Fortran… C/C++ pascal có khả biên dịch mạnh gần gũi Trình biên dịch C Pascal Linux hồn tồn có khả biên dịch mã nguồn viết ngơn ngữ máy Assembler Vì luận văn C ngôn ngữ đƣợc chọn để phát triển ứng dụng 28 3.1.3 Chƣơng trình UNIX Linux Chƣơng trình ứng dụng chạy UNIX Linux tồn hai dạng: dạng thực thi (file nhị phân) dạng thơng dịch script File chƣơng trình thực thi dạng mã máy nhị phân tƣơng tự nhƣ file exe, file script tƣơng tự nhƣ file bat DOS Hầu nhƣ script chƣơng trình nhị phân có khả sức mạnh ngang Khó phân biệt đƣợc đâu lệnh gọi chƣơng trình nhị phân đâu lệnh gọi chƣơng trình ứng dụng script UNIX Linux (trừ xem nội dung nó) Chúng hốn chuyển cho nhau, chƣơng trình script chuyển thành chƣơng trình nhị phân ngôn ngữ biên dịch C hay Pascal Chƣơng trình UNIX/Linux đƣợc thực bạn có quyền 3.2 Hệ mật khóa cơng khai RSA (Rivest, Shamir Adlemam) a Hệ mật RSA: sử dụng tính tốn Zn, n tích hai số nguyên tố phân biệt p q (n) = (p-1)(q-1) Mơ tả hình thức hệ mật nhƣ sau: Cho n=pq p, q số nguyên tố Đặt P = C = Zn định nghĩa: K = {(n, p, q, a, b) | n = pq, p, q số nguyên tố, ab ≡ 1(mod (n)), < b < (n) UCLN(b, (n)) = 1} Với K = (n, p, q, a, b) ta xác định: eK(x) = xb mod n = y dK(x) = ya mod n (x,y Є Zn), giá trị n b đƣợc công khai giá trị p, q, a đƣợc bí mật Phép mã phép giải mã phép toán nghịch đảo vì: ab ≡ (mod n) ↔ ab = t (n) + với t nguyên lớn 29 Giả sử x Є Z*n ta có: ((x)b)a ↔ xt ↔ (x (n) + (mod n) (n) t ) x (mod n) ↔ (1)t x (mod n) (theo hệ định lý lagrage) ↔ x (mod n) Với x Є Zn\Z*n hoàn toàn tƣơng tự b Độ mật RSA Độ mật hệ RSA dựa hàm mã eK(x) = xb mode n hàm chiều, thám mã khơng có khả mặt tính tốn để giải mã Nếu hai số p, q đƣợc chọn lớn cỡ chừng 100 chữ số thập phân, b đƣợc chọn cho 0 n, khơng, xảy khả xb < n nhƣ để tìm x cần khai bậc b thơng thƣờng y tìm đƣợc x Nếu ta chọn số p q chừng 100 chữ số thập phân n khoảng 200 chữ số thập phân Để phân tích số nguyên cỡ lớn nhƣ với thuật toán nhanh máy tính đại phải hàng tỷ năm Thực tế thấy RSA an toàn nhƣng cần ý chọn p, q cho p-1, q-1 khơng tồn ƣớc ngun tố nhỏ, ngồi UCLN(p-1)(q-1) số nhỏ, p q phải có chữ số khai triển thập phân khác không nhiều c Thực hệ mật RSA Để thiết lập hệ thống ngƣời nhận B thực bƣớc sau:  Bƣớc 1: B tạo hai số nguyên tố lớn p q  Bƣớc 2: B tính n=pq (n)=(p-1)(q-1)  Bƣớc 3: B tạo số ngẫu nhiên b: 0

Ngày đăng: 06/04/2021, 18:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w