Khóa luận có trình bày về một số vấn đề của an toàn thông tin hiện đại. Các vấn
đề đó đều dẫn đến một nhu cầu bức thiết là phải xây dựng một hệ thống chứng thực số,
tạo điều kiện cho các ứng dụng chữ ký số phát triển. Phần tiếp theo làcác lý thuyết về
chứng thực và chữ ký số, hệ thốngchứng thực số CA ứng dụng hệ mã RSA mà cốt lõi
là quá trình sinh khóa. Thực chất của quá trình sinh khóa là sinh ra một cặp số nguyên
tố q p, thỏa mãn được các tính chất là số nguyên tốxác suất mạnh. Với yêu cầu về số
nguyên tố như thế, phần tiếp theo khóa luận có đề cập đến các lý thuyết về số nguyên
tố, việc kiểm tra số nguyên tố, và các tính chất để một số nguyên tố được gọi là mạnh.
Với một khối lượng tính toán trên số nguyên lớn như vậy, xử lý tuần tự là không đáp
ứng được nhu cầu về thời gian, cho nên một phương pháp xử lý song song trên CPU
(central processing unit) đã được nhắc đến. Đó chính là bộ công cụ Visual Studio 2010
của Microsoft. Phần cuối của khóa luận là các kết quả đạt được và định hướng cho
tương lai.
52 trang |
Chia sẻ: nhungnt | Lượt xem: 2001 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Xử lý song song quá trình sinh khóa của hệ thống cấp phát chứng thực số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thanh Hào
XỬ LÝ SONG SONG QUÁ TRÌNH SINH KHÓA
CỦA HỆ THỐNG CẤP PHÁT CHỨNG THỰC SỐ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thanh Hào
XỬ LÝ SONG SONG QUÁ TRÌNH SINH KHÓA
CỦA HỆ THỐNG CẤP PHÁT CHỨNG THỰC SỐ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: PGS.TSKH Phạm Huy Điển
HÀ NỘI - 2010
3
TÓM TẮT NỘI DUNG
Khóa luận có trình bày về một số vấn đề của an toàn thông tin hiện đại. Các vấn
đề đó đều dẫn đến một nhu cầu bức thiết là phải xây dựng một hệ thống chứng thực số,
tạo điều kiện cho các ứng dụng chữ ký số phát triển. Phần tiếp theo là các lý thuyết về
chứng thực và chữ ký số, hệ thống chứng thực số CA ứng dụng hệ mã RSA mà cốt lõi
là quá trình sinh khóa. Thực chất của quá trình sinh khóa là sinh ra một cặp số nguyên
tố qp, thỏa mãn được các tính chất là số nguyên tố xác suất mạnh. Với yêu cầu về số
nguyên tố như thế, phần tiếp theo khóa luận có đề cập đến các lý thuyết về số nguyên
tố, việc kiểm tra số nguyên tố, và các tính chất để một số nguyên tố được gọi là mạnh.
Với một khối lượng tính toán trên số nguyên lớn như vậy, xử lý tuần tự là không đáp
ứng được nhu cầu về thời gian, cho nên một phương pháp xử lý song song trên CPU
(central processing unit) đã được nhắc đến. Đó chính là bộ công cụ Visual Studio 2010
của Microsoft. Phần cuối của khóa luận là các kết quả đạt được và định hướng cho
tương lai.
4
MỤC LỤC
LỜI MỞ ĐẦU .............................................................................................................5
NỘI DUNG .................................................................................................................3
Chương 1. Những vấn đề của an toàn thông tin hiện đại ..........................................3
1.1. An toàn thông tin hiện đại .............................................................................3
1.2. Chứng thực và chữ ký số ...............................................................................3
1.2.1. Hệ mã khóa công khai và việc tạo chữ ký số ..........................................3
1.2.2. Chứng thực số ........................................................................................8
1.3. Vai trò của CA và vấn đề then chốt trong thiết lập CA ................................10
1.3.1. Vai trò của CA .....................................................................................10
1.3.2. Sử dụng chứng thực số .........................................................................10
1.3.3. Các chức năng cơ bản của CA .............................................................11
1.3.4. Vấn đề then chốt trong thiết lập CA......................................................13
Chương 2. Một số công cụ toán học liên quan........................................................15
2.1. Số nguyên tố và hệ mã khóa công khai RSA ...............................................15
2.1.1. Hệ mã khóa công khai RSA..................................................................15
2.1.2. Lý thuyết toán học về số nguyên tố và các vấn đề liên quan .................17
2.2. Việc tính toán số nguyên tố và khái niệm số giả nguyên tố. Kiểm tra số giả
nguyên tố mạnh..................................................................................................20
2.2.1. Thuật toán kiểm tra số nguyên tố thông thường và khái niệm số giả
nguyên tố .......................................................................................................20
2.2.2. Kiểm tra số giả nguyên tố mạnh ...........................................................20
2.2.3. Tính nguyên tố mạnh của một số ..........................................................25
2.3. Chìa khóa an toàn........................................................................................26
Chương 3. Tính toán song song..............................................................................28
3.1. Xử lý song song, cơ hội và thách thức [8]....................................................28
3.1.1. Cơ hội ..................................................................................................29
3.1.2. Những thách thức: Các vấn đề khó khăn gặp phải khi xử lý song song .30
3.1.3. Giải pháp: Các công nghệ song song trong Visual Studio 2010 Microsoft
.......................................................................................................................32
3.2. Lập trình song song với Visual Studio 2010 [8]...........................................33
3.2.1. Thư viện ...............................................................................................33
3.2.2. Các mô hình lập trình song song và ví dụ .............................................34
3.2.3. Kết luận................................................................................................38
Chương 4. Kết quả triển khai và tính thử nghiệm ...................................................39
4.1. Giới thiệu về chương trình ứng dụng ...........................................................39
4.1.1. Mục đích và hoạt động của chương trình ..............................................39
4.1.2. Một số hình ảnh về chương trình ..........................................................40
4.2. Một số thống kê khi chạy chương trình trên chip intel core2duo 2.2 GHZ...43
PHỤ LỤC ..................................................................................................................44
A. Thuật toán Miller-Rabin....................................................................................44
B. Thuật toán Lucas ...............................................................................................44
C. Thuật toán kiểm tra nguyên tố mạnh..................................................................45
KẾT LUẬN ...............................................................................................................47
TÀI LIỆU THAM KHẢO..........................................................................................48
5
LỜI MỞ ĐẦU
Hiện nay, ở các nước phát triển cũng như đang phát triển, mạng máy tính đóng
vài trò quan trọng trong mọi lĩnh vực hoạt động của xã hội, và một khi nó trở thành
phương tiện điều hành các hệ thống thì nhu cầu bảo mật thông tin được đặt lên hàng
đầu. Nhu cầu này không chỉ có ở các bộ máy của nhà nước, mà đã trở thành bức thiết
trong nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại … Những ứng
dụng trong dân sự của an toàn thông tin ngày càng được phát triển, mở rộng đặc biệt là
chữ ký số. Khi các văn bản tài liệu đã được số hóa, được chuyển đi rất nhanh trong hệ
thống mạng thì ký tay thông thường là một trở ngại cho các hoạt động trao đổi thông
tin. Bên cạnh đó, một hệ thống chứng thực thông tin, chứng thực số là cần thiết được
phát triển khi mà nhu cầu trao đổi thông tin, xác thực thông tin của các cơ quan, xí
nghiệp, ngân hàng,… ngày càng tăng đi kèm với sự phát triển mạnh của cơ sở hạ tầng
mạng. Hệ thống chứng thực số CA (certificate authority) là một giải pháp cho vấn đề
này.
Với CA, mỗi người tham gia vào hệ thống được cấp phát một cặp chìa khóa bí
mật, công khai. Khi muốn gửi thông tin người sử dụng lấy chìa khóa bí mật mã hóa
văn bản và gửi đi, người nhận sẽ lấy chìa khóa công khai của người gửi để giải mã.
Đồng thời với sự chứng thực của hệ thống CA, đoạn thông tin đó sẽ được đảm bảo là
thuộc về người gửi. Ngoài ra, với những giấy tờ, hợp đồng kinh tế, … cần có chữ ký
của các bên liên quan, người ký có thể sử dụng chìa khóa bí mật để mã hóa văn bản.
(Hành động này giống như ký tay trên giấy tờ hành chính thông thường). Như vậy,
việc xây dựng hệ thống CA là quan trọng, cần thiết trong đời sống xã hội mà công
nghệ thông tin đóng vài trò chủ chốt trong giao dịch, buôn bán.
Một ví dụ cụ thể, trung tâm tin học thuộc viện nghiên cứu khoa học và công nghệ
Việt nam đang có dự án xây dựng hệ thống CA để phát triển các ứng dụng của chữ ký
số và chứng thực điện tử. Kết quả của khóa luận này sẽ được dùng trong quá trình rất
quan trọng của hệ thống CA sắp tới được phát triển – cấp phát khóa.
Vấn đề then chốt của hệ thống CA là quá trình cấp phát và chứng thực một khóa
có thuộc về một cá thể nào đó hay không. Quá trình cấp phát khóa về thực chất là sinh
ra một cặp số nguyên tố thỏa mãn các yếu cầu để được là nguyên tố mạnh. Những tính
toán trên số nguyên lớn đòi hỏi thời gian rất lâu để sinh ra một cặp số như vậy, chưa
kể đến thời gian kiểm tra thỏa mãn tính nguyên tố mạnh. Hơn thế nữa, một hệ thống
CA khi được triển khai nếu gặp tình trạng có nhiều người sử dụng truy cập tại một thời
2
điểm và yêu cầu cấp phát khóa, sẽ xảy ra hiện tượng nghẽn mạng, tắc cổ chai nếu phần
sinh khóa không đáng ứng được về thời gian. Hệ thống như thế được xem là không đạt
yêu cầu. Một giải pháp được đưa ra là xử lý song song trong quá trình sinh khóa của
hệ thống CA.
Thời gian trước, công nghệ xử lý song song được thực hiện trên các cụm nhiều
máy chủ do thời ấy một CPU (central processing unit) không có nhiều nhân. Ngày
nay, với sự phát triển vượt bậc của công nghệ phần cứng, các hãng phần cứng nổi
tiếng thế giới đã nghiên cứu và liên tục cho ra đời nhiều bộ xử lý tích hợp nhiều lõi
bên trong (2, 4, 8 thậm chí 16 lõi). Đây là một thời điểm thuận lợi để ứng dụng công
nghệ xử lý song song trên một CPU có nhiều nhân. Một phương án khác có lợi hơn về
mặt kinh tế là tính toán trên card đồ họa (graphic card). Card đồ họa tuy có thế mạnh
về xử lý vector (xử lý nhiều bộ số một lúc) nhưng công nghệ song song còn chưa phát
triển (chưa có thư viện cần thiết để sinh được một cặp số nguyên tố lớn và kiểm tra
tính nguyên tố mạnh của chúng). Vì vậy, xử lý song song trên CPU nhiều nhân là một
phương án hợp lý, cân đối về mặt kinh tế và công nghệ hỗ trợ cũng như là tốc độ. Tập
đoàn Microsoft mới cho ra đời bộ công cụ Visual Studio 2010 hỗ trợ xử lý song song
trên CPU nhiều nhân, đồng thời có thư viện xử lý số nguyên lớn. C Sharp (C#) – một
ngôn ngữ lập trình trong bộ công cụ này sẽ được sử dụng để phát triển giai đoạn quan
trọng ban đầu của một hệ thống CA – sinh khóa.
Chương 1. Những vấn đề của an toàn thông tin hiện đại
3
NỘI DUNG
Chương 1. Những vấn đề của an toàn thông tin hiện đại
1.1. An toàn thông tin hiện đại
Hiện nay, ở tất cả các nước phát triển cũng như đang phát triển, mạng máy tính
đang đóng vài trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, và một khi
nó trở thành phương tiện điều hành các hệ thống thì nhu cầu bảo mật thông tin được
đặt lên hàng đầu. Nhu cầu này không chỉ có ở các bộ máy An ninh, Quốc phòng, Quản
lý Nhà nước, mà đã trở thành bức thiết trong nhiều hoạt động kinh tế xã hội: tài chính,
ngân hàng, thương mại …
An toàn thông tin ngày nay không đơn thuần là việc giữ bí mật những thông tin
quan trọng (được áp dụng trong quân đội, bộ quốc phòng, an ninh quốc gia …) mà còn
là chứng thực thông tin (thông tin đó thuộc về một cá nhân, tập thể cụ thể nào đó).
Những ứng dụng của an toàn thông tin dân sự, đặc biệt là chữ ký số ngày càng phát
triển, mở rộng và có phần áp đảo so với quân sự. Bởi lẽ những thành phần tham gia
hoạt động mã hóa thông tin trong quân đội hay bộ quốc phòng chỉ là một nhóm người
còn tham gia vào hoạt động này ở dân sự là tất cả những ai có nhu cầu chứng thực
thông tin, cung cấp, tiếp nhận thông tin trên hệ thống mạng máy tính. Một hệ thống
chứng thực thông tin, chứng thực số là cần thiết được phát triển khi mà nhu cầu trao
đổi thông tin, xác thực thông tin ngày càng tăng đi kèm với sự phát triển mạnh của cơ
sở hạ tầng mạng.
1.2. Chứng thực và chữ ký số
1.2.1. Hệ mã khóa công khai và việc tạo chữ ký số
Nguyên lý hoạt động của hệ mã khóa công khai [4]
Hệ mã khóa công khai (hay còn gọi là các hệ mã phi đối xứng) được phát minh ra
trong những thập kỷ cuối của thế kỷ vừa qua. Nó sử dụng 2 chìa khóa riêng biệt cho
việc lập mã và giải mã văn bản. Chìa dùng cho việc lập mã có thể được công bố cho
mọi người biết (chìa công khai), còn chìa dùng cho việc giải mã thì được giữ bí mật
tuyệt đối. Việc biết được chìa khóa công khai không cho phép tính ra chìa khóa giải
mã. Mỗi cá thể k tham gia vào hệ thống được cấp phát riêng một cặp chìa khóa
( , )k kE D , trong đó kE là chìa khóa lập mã, còn kD là chìa khóa giải mã. Khi mã hóa
một văn bản P (bằng chìa kE ) ta sẽ được một văn bản mã ký hiệu là ( )kC E P= .
Văn bản này chỉ có thể được giải mã bằng chìa khóa kD (cùng cặp với kE ), nghĩa là
( ) ( ( ))k k kD C D E P P= = .
Chương 1. Những vấn đề của an toàn thông tin hiện đại
4
Khi một cá thể i nào đó muốn giử thông điệp M cho đối tác k thì anh ta dùng
chìa khóa lập mã kE của đối tác k (đã được biết công khai) để mã hóa văn bản và gửi
đi dưới dạng thông điệp mã ( )kC E M= . Khi đối tác k nhận được thông điệp này thì
dùng chìa khóa giải mã của mình (là kD ) để giải mã ra theo nguyên lý đã nêu
( ) ( ( ))k k kD C D E M M= = .
Các cá thể khác trong hệ thống, nếu nhận được văn bản mã C , thì cũng không thể nào
giải mã ra M , vì họ không có chìa khóa giải mã kD của cá thể K .
Ký điện tử trong hệ mã khóa công khai [3][5][13]
Với hệ mã khóa công khai, một quy trình ký văn bản điện tử được thiết lập dựa
trên ý tưởng của hai nhà khoa học Diffie và Hellman [5][13]:
Người gửi (chủ nhân văn bản) ký văn bản bằng cách mã hóa nó với khóa bí mật
của mình rồi gửi cho người nhận.
Người nhận văn bản (đã ký) tiến hành kiểm tra chữ ký bằng cách sử dụng chìa
khóa công khai của người gửi để giải mã văn bản. Nếu giải mã thành công thì
văn bản ký là đúng của người gửi.
Giao thức này mang đầy đủ các thuộc tính của thủ tục ký thông thường. Thật vậy:
Chữ ký là sản phẩm của người đã chủ động tạo ra nó, tức là người đã dùng
chiếc chìa khóa bí mật của mình để mã hóa văn bản.
Chữ ký cho biết chủ nhân của nó chính là người sở hữu chiếc chìa khóa bí mật
đã được dùng để mã văn bản (kiểm tra bằng cách cho giải mã bằng chìa khóa
công khai của người đó). Không ai làm giả được “chữ ký” vì rằng chỉ có duy
nhất một người có chìa khóa bí mật đã dùng để “ký” (mã hóa).
Chữ ký cho văn bản này không thể “tái sử dụng” cho văn bản khác. Thật vậy,
việc biết chữ ký (văn bản mã) không cho phép tìm ra được chìa khóa bí mật của
người gửi (để có thể ký một văn bản khác).
Văn bản đã ký không thể thay đổi (xuyên tạc) được nội dụng. Thật vậy, nếu đã
mở ra để thay đổi thì không thể “ký lại” được nữa, vì không có chiếc chìa khóa
bí mật của “người đã ký” (như đã nói ở trên).
Người ký văn bản không thể thoái thác việc mình “đã ký”, vì ngoài ông ta ra
không còn ai có cái chìa khóa đã được dùng để “ký” văn bản.
Chương 1. Những vấn đề của an toàn thông tin hiện đại
5
Rõ ràng, về mặt logic thì quy trình ký như trên là rất hợp lý. Mọi thành viên tham gia
sử dụng một hệ mã khóa công khai đều có được khả năng ký văn bản điện tử (bằng
chìa khóa bí mật của riêng mình) và kiểm tra chữ ký của những người khác (bằng chìa
khóa công khai mà họ đã công bố).
Việc dùng chìa khóa bí mật để mã hóa văn bản được gọi là ký điện tử, và kết quả
tạo ra là một dữ liệu dạng số, sẽ được gọi là chữ ký số [6]..
Trong thực tiễn triển khai, mọi người đều biết tốc độ mã hoá của các hệ mã
khoá công khai là vô cùng chậm. Cho nên, việc ký một văn bản dài (như thông tư,
nghị định, văn kiện,...) theo quy trình nêu trên là không khả thi trên thực tiễn.
Để khắc phục khó khăn này, người ta sử dụng một hàm “chiết xuất” đặc trưng
văn bản. Hàm này nhận giá trị đầu vào là văn bản (độ dài tùy ý) và cho đầu ra là một
dãy số có độ dài xác định, gọi là mã băm (message digest). Hàm chiết xuất có thuộc
tính quan trọng là rất “nhạy” đối với các thay đổi của văn bản, theo đó chỉ cần một
thay đổi cực nhỏ trong văn bản (như thay dấu chấm, dấu phẩy,…) cũng sẽ kéo theo sự
thay đổi rõ rệt trong giá trị mã băm của nó. Chính vì vậy mã băm có tính đặc trưng rất
cao, và thường được gọi là đặc trưng văn bản. Để nhận biết sự toàn vẹn của một văn
bản người ta chỉ cần xem đặc trưng của nó có bị thay đổi hay không. Hai thuộc tính
quan trọng khác của hàm chiết xuất là tính một chiều và tốc độ nhanh. Tính một chiều
thể hiện ở chỗ không thể tạo ra được một văn bản có mã băm (đặc trưng) là một xâu số
cho trước, và do đó không thể mạo ra một “văn bản giả” có cùng đặc trưng với một
văn bản cho trước. Tốc độ nhanh có nghĩa là thời gian tính đặc trưng cho văn bản là
không đáng kể [3][13].
Rõ ràng, việc đặc trưng văn bản không bị thay đổi cũng đồng nghĩa với việc bản
thân văn bản không bị thay đổi. Từ đây ta có một quy trình ký các văn bản dựa vào đặc
trưng của nó. Theo quy trình này, khi một cá thể A muốn ký một văn bản P thì cần
phải thực hiện các bước sau đây [3][13]:
Tính đặc trưng văn bản của P (bằng hàm chiết xuất có sẵn trên hệ thống).
Dùng chìa khóa bí mật của mình để mã hóa dãy số đặc trưng văn bản thu được
ở bước trên. Đặc trưng văn bản sau khi được mã (bằng chìa bí mật của A) thì
được gọi là chữ ký số (của ông A đối với văn bản P ).
Tức là tuân theo sơ đồ sau:
Chương 1. Những vấn đề của an toàn thông tin hiện đại
6
Hình 1.1: Quy trình ký điện tử [13]
Dễ dàng thấy rằng chữ ký số được tạo ra trong quy trình trên có đầy đủ các thuộc
tính đã nêu trong mục đầu. Thời gian tạo chữ ký được giảm đi rất nhiều và gần như
không phụ thuộc vào độ dài của văn bản. Thật vậy, do thời gian tính đặc trưng văn bản
là không đáng kể, thời gian tạo chữ ký chỉ còn là việc mã hóa đặc trưng của văn bản
(có độ dài như nhau với mọi văn bản, và nhỏ hơn độ dài văn bản nhiều lần).
Một người nào đó, nhận được văn bản P cùng với chữ ký số đi kèm, muốn tiến
hành kiểm tra thì cần tiến hành các bước sau [3][13]:
Tính đặc trưng của văn bản P (bằng hàm chiết xuất có sẵn trên hệ thống).
Giải mã chữ ký số (bằng chìa khóa công khai của ông A) để có một đặc trưng
nữa của P , rồi so sánh nó với đặc trưng thu được ở bước trên. Nếu chúng khớp
nhau thì chứng tỏ văn bản nhận được chính là văn bản đã được ông A ký và nội
dung của nó không bị thay đổi so với khi ký.
Tức là tuân theo sơ đồ sau:
Chương 1. Những vấn đề của an toàn thông tin hiện đại
7
Hình 1.2: Quy trình kiểm tra chữ số ký số [13]
Như vậy, chữ ký số không phải là một nét vẽ ngoằn ngoèo khó bắt chước (như
chữ ký tay thông thường trên giấy) mà là một dãy số được tạo nên từ đặc trưng của
văn bản bằng phép mã hóa với chìa khóa bí mật của người ký.
So với thủ tục ký thông thường (trên văn bản giấy), thủ tục ký điện tử có những
ưu thế vượt trội. Hơn thế:
Chữ ký số là chính xác tuyệt đối (không còn mối e ngại về việc chữ ký không
giống nhau trong mỗi lần ký, như khi phải ký bằng tay).
Trong khi việc kiểm định chữ ký viết tay, con dấu giả,… là không đơn giản (vì
thường đòi hỏi phương tiện kỹ thuật đặc biệt) thì chữ ký số có thể được kiểm
định một cách dễ dàng và chính xác (bằng thiết bị luôn có sẵn trong chương
trình). Mọi sự giả mạo, gian lận vì thế đều bị phát hiện tức khắc.
Như vậy, bằng việc triển khai giải pháp ký điện tử ta có thể nói lời kết thúc cho
các loại văn bằng chứng chỉ giả, mở đường cho các dịch vụ giao dịch trực tuyến với độ
tin cậy cao. Tuy nhiên, điều này chỉ có thể đạt được nếu như mỗi người sở hữu đúng
cặp chìa khóa công khai và bí mật của chính mình. Nếu như có một ông B nào đó có
thể đánh lừa được mọi người rằng cặp chìa khóa công khai (mà ông đang có) là của
ông A, thì sẽ xảy ra hiện tượng “mạo danh” vô cùng nguy hiểm. Một mặt, ông B sẽ
đọc được tất cả các tin mật mà người khác muốn gửi cho ông A nếu tin được mã bằng
chìa khóa công khai của ông B, và mặt khác ông B có thể ký các văn bản “vô tội vạ”
và đánh lừa mọi người rằng ông A đã ký n