buy custom essays onlinebuy custom essays online

PKI & thương mại điện tử - Phần 1
Parajumpers sale www.airbrushhenk.nl Parajumpers sale http://www.unifem.ch canada goose sale Canada Goose jas http://www.canadagooseoutlets.be https://www.gasinc.nl
Home » Bảo mật » Giải pháp bảo mật » PKI & thương mại điện tử – Phần 1

PKI & thương mại điện tử – Phần 1

PKI & thương mại điện tử

Phỏng dịch từ “PKI Implementing and Managing E-Security” – các tác giả: Andrew Nash, William Duane, Celia Joseph và Derek Brink

PHẦN 1 – GIỚI THIỆU MẬT MÃ – MÃ HÓA THÔNG ĐIỆP (CRYPTOGRAPHY – MESSAGE ENCRYPTION)

Bà Sáu là một người nấu ăn cực kỳ ngon, bà đã mở một quán ăn tại số 105 Bà Huyện Thanh Quan với món bún mắm “độc chiêu” mà một khi đã thưởng thức thì thực khách không thể nào quên.

Sao lại bàn đến bún mắm ở đây trong khi bún mắm chẳng “ăn nhậu” gì với mật mã? Hay là trường Nhất Nghệ dự định kinh doanh bún mắm qua internet?

Số là bà Sáu có một người con – Ất – đang quản lý toàn bộ công việc kinh doanh và nắm giữ bí kiếp nấu món bún mắm lừng danh. Ất đang dự định khuếch trương việc kinh doanh sang … Mỹ. Một trong những việc quan trọng phải làm là gửi bí kiếp này cho em của Ất – Bính – hiện đang sống tại California. Lẽ dĩ nhiên cả Ất lẫn Bính đều muốn bảo vệ bí kiếp này, cụ thể là họ muốn bảo đảm những yếu tố sau:
– Nếu bí kiếp lọt vào tay một người khác thì người đó cũng không thể đọc được.
– Bí kiếp không bị thêm bớt hoặc sửa chữa.
– Bí kiếp mà Bính nhận được là thực sự do Ất gửi.

Nói một cách khác, thông tin trao đổi cần thỏa mãn những yếu tố:
1. Confidence: Riêng tư, bí mật.
2. Integrity: Toàn vẹn, không bị sửa đổi.
3. Authenticity / Non-repudiation: Có thể xác thực xuất xứ.

Rõ ràng là bí kiếp phải được xử lý trước khi gủi đi thì mới có thể thỏa mãn những yếu tố nêu trên. Cơ sở của quá trình xử lý là mật mã và cách kết hợp các thuật toán mật mã.

Trước tiên, ta hãy cùng tìm hiểu những nhu cầu tổng quát nhất liên quan đến mật mã.

Mật mã có thật sự cần thiết hay không?

Chúng ta thường nghe nói đến những nguy cơ liên quan đến việc dùng thẻ tín dụng để mua bán qua internet và chắc chắn ta cũng biết rằng mật mã được ứng dụng để bảo vệ quá trình truyền tải thông tin thẻ tin dụng khi giao dịch. Điều không may là hành động này chỉ bảo vệ thông tin khi chúng được truyền đi trên internet. Một khi người bán nhận được thông tin thẻ, họ sẽ lưu trữ chúng trên cơ sở dữ liệu trong hệ mạng của mình. Kết quả tất yếu là hầu hết các trường hợp đánh cắp thông tin thẻ đã được thống kê đều xảy ra vì tin tặc tìm được cách xâm nhập vào cơ sở dữ liệu của công ty bán hàng.

Một ví dụ điển hình là trường hợp của CD Universe vào năm 2000. Một tin tặc tự xưng là ở Nga đã xâm nhập cơ sở dữ liệu của CD Universe và đánh cắp 300.000 số thẻ tín dụng. Khi bị CD Universe từ chối khoảng tiền chuộc, tin tặc này đã công bố 25.000 số thẻ trên internet. Các ngân hàng phát hành những thẻ bị công bố này đã có nhiều cách ứng phó khác nhau. Một số ngân hàng tái phát hảnh thẻ bị lộ với giá khoảng 20 USD một thẻ, trong khi một số ngân hàng khác chỉ cảnh báo khách hàng nên lưu tâm thường xuyên đến tình trạng tài khoản thẻ.
Đối với khách hàng của CD Universe, nguy cơ không lớn vì thẻ của họ đã được bảo vệ bởi hạn mức 50 USD. Tuy nhiên, uy tín của CD Universe bị sút giảm làm ảnh hưởng nghiêm trọng đến doanh số. Bên cạnh đó, đa số khách hàng không biết rằng các công ty bán hàng trực tuyến phải chịu trách nhiệm pháp lý khi xảy ra lừa đảo trực tuyến. Kết quả của quy định này là các công ty bán hàng trực tuyến phải gánh chịu toàn bộ chi phí phát sinh từ các thương vụ chi trả bằng thẻ tín dụng đánh cắp. Cuối cùng thì các công ty bán hàng trực tuyến lại tìm nhiều cách để chuyển chi phí này cho khách hàng gánh chịu. Nếu cơ sở dữ liệu lưu trữ số thẻ tín dụng được mã hóa thì tin tặc sẽ chẳng thể có được thẻ nào cho dù họ có đánh cắp được cơ sở dữ liệu.
CD Universe không hề là một trường hợp cá biệt vì hầu hết các công ty đều không có cơ chế phù hợp để bảo vệ thông tin. Tháng ba năm 2000, người ta phát hiện 485.000 số thẻ tín dụng đánh cắp từ một trang bán hàng trực tuyến được lưu trữ trong một trang web của cơ quan nhà nước Mỹ. Tháng chín năm 2000, Western Union báo cáo bị tin tặc tấn công trang web và đánh cắp 15.700 thẻ. Tháng mười năm 2000, tin tặc đánh cắp 55.000 thẻ của Creditcards.com và dùng số thẻ này để tống tiền Creditcards.com. Trên đây chỉ là một vài ví dụ điển hình cho các vụ tấn công đã được báo cáo và có lẽ còn rất nhiều vụ khác mà khổ chủ im lặng gánh chịu.
Cho dù tin tặc tấn công trên internet hay tấn công trực tiếp vào dữ liệu lưu trữ thì việc bảo vệ thông tin thẻ bằng cách mã hóa rõ ràng là hữu dụng và cần thiết.

Ta có thể xem xét một trường hợp khác để thấy được góc độ tác hại kinh tế. Vào tháng mười một năm 1996, Visa International bị mất một máy tính xách tay. Cho dù người ta tin rằng tên trộm đánh cắp chiếc máy tính chỉ để lấy… chiếc máy tính, nhưng khổ thay trong máy lại lưu hơn 314.000 số thẻ tín dụng. Những ngân hàng phát hành số thẻ này phải tái phát hành và đối mặt với sự mất tín nhiệm của khách hàng. Chi phí tái phát hành là 20 USD một thẻ và rõ ràng là chỉ một tên trộm đã làm thiệt hại hơn 6 triệu USD. Giá như chỉ cần một thao tác đơn giản là mã hóa số thẻ này thì đã không thiệt hại đến hàng triệu USD như thế.

Ngẫm nghĩ lại, ta mới thấy rằng hầu như có rất ít thông tin có thể được xem là vô giá trị. Thế mà hằng ngày hằng giờ vẫn có vô số thông tin được truyền tải trên internet, ngay trước “mũi” của “bọn xấu”: phần mềm, nhạc, phim, ấn phẩm điện tử… và cả thư điện tử giao dịch kinh doanh nữa!

Quay lại chuyện gửi bí kiếp nấu bún mắm, hẵn là bạn đã thấy được sự cần thiết phải ứng dụng mật mã để bảo vệ. Bạn hãy hình dung chuyện gì sẽ xảy ra tiếp theo trong những tình huống sau đây:
– Bính nhận được một bí kiếp không phải do Ất gửi mà do công ty hóa màu chuyên sản xuất keo dính chuột!
– Ông nào chơi ác thêm vào công thức nấu nước lèo: 15 giọt nước mắt cá sấu, 5 sợi lông thằn lằn…!!
v v và v v…

Mật mã đối xứng (symmetric cryptography)

Có 2 loại thuật toán mật mã chính là mật mã đối xứng (symmetric cryptography) và mật mã bất đối xứng (asymmetric cryptography). Mật mã đối xứng đã được sử dụng từ rất lâu đời. Căn cứ các dữ liệu khảo cổ, người ta tin rằng người Ai Cập cổ đã biết dùng loại mật mã này.
Có thể bạn đã từng nghe nói rằng mật mã đối xứng không thể “mạnh” bằng mật mã bất đối xứng. Thật ra thì không phải như thế, tự thân cả hai loại đều có những ưu nhược điểm. Các hệ thống mật mã hiện đại sử dụng cả hai loại nhằm tận dụng ưu điểm và tiết giảm nhược điểm.

Mã khóa (cryptographic key) là thành phần quan trọng trong thuật toán mật mã. Mã khóa có thể ví như chìa của một ổ khóa. Ta có thể lắp được rất nhiều chìa (có cùng chiều dài, chiều rộng, kích thước rãnh…) vào một ổ khóa nhưng chỉ chìa nào có các răng cưa thích hợp mới có thể mở được ổ khóa. Tương tự, mỗi thuật toán mật mã cần một mã khóa có chiều dài (dung lượng tính bằng bit) chính xác. Ta có thể thực thi một thuật toán mật mã với một mã khóa bất kỳ có chiều dài như yêu cầu nhưng chỉ duy nhất mã khóa có cách sắp xếp các bit phù hợp mới có thể mã hóa hoặc giải mã văn bản.
Mã khóa dùng trong mật mã đối xứng thực chất là một chuỗi (chiều dài xác định) các bit được sắp xếp ngẫu nhiên. Nếu thuật toán đối xứng dùng mã hóa đối xứng 40 bit thì dung lượng mã khóa là 40 bit. Mã khóa dung lượng 128 bit được dùng cho mã hóa đối xứng 128 bit…

Một chuỗi 40 bit sẽ có thể cho ta 2 lũy thừa 40 mã khóa hay 1.1E12 mã khóa, tức là có hơn 1.000 tỷ mã khóa.
Một chuỗi 60 bit sẽ có thể cho ta 2 lũy thừa 60 mã khóa hay 1.8E19 mã khóa, tức là có gần 20 tỷ tỷ mã khóa.
Hiện nay, mã khóa đối xứng chuẩn có chiều dài 128 bit. Vậy ta có thể có 3.4E38 mã khóa, tức là có hơn 340 tỷ tỷ tỷ tỷ mã khóa. (Bạn thử viết số 340 và 36 số 0 kèm theo xem sao!)

Thuật toán mật mã đối xứng dùng một mã khóa cho 2 quá trình mã hóa và giải mã. Mật mã đối xứng lại có thể được chia thành 2 hình thức: block cipher và stream cipher.

Block cipher: Block cipher chia thông tin thành những đoạn ngắn có chiều dài cố định (thường là 64 bit) và mã hóa từng đoạn này. Một số thuật toán block cipher: DES, 3-DES, RC2, RC5, RC6 và Rijndaen (còn được gọi là AES).
Thuật toán DES (Data Encryption Standard) phổ biến nhất và là thuật toán tiêu biểu cho mật mã đối xứng, được IBM phát triển vào cuối thập niên 1970. DES chia thông tin thành chuỗi 64 bit và mã hóa bằng mã khóa 56 bit. Do sự gia tăng mạnh mẽ năng lực của máy tính, mã khóa 56 bit hiện nay trở nên thiếu an toàn nếu bị tấn công brute-force. 3-DES (viết tắt của Triple DES) được phát triển để lấp yếu điểm này bằng cách mã hóa 3 lần hoặc phối hợp 3 phép toán.
Các thuật toán họ RC được phát triển bởi Ron Rivest (chữ R trong RSA). RC là từ viết tắt của Ron’s Code hoặc Rivest Cipher. RC2 được phát triển để thay thế cho DES và có tốc độ nhanh gấp đôi DES. RC5 mã hóa chuỗi dữ liệu 64 hoặc 128 bit và có thể sử dụng nhiều chiều dài mã khóa, tối đa đến 2.048 bit. RC6 được phát triển trên cơ sở RC5, mã hóa chuỗi 128 bit với mã khóa 128 bit. RC6 cũng nhằm thay thế cho DES và có thể được xem là thuật toán cuối cùng trong thế hệ đầu của các chuẩn thuật toán mật mã đối xứng.
Thế hệ kế tiếp của các chuẩn mã đối xứng được gọi chung là AES – Advanced Encryption Standard – dùng mã khóa 128 bit có ưu thế vượt trội so với RC6. Thuật toán AES mạnh nhất là Rijindael do 2 người Bỉ đề xướng: Daemen và Rijmen. Một số thuật toán AES mới nhất gồm MARS (IBM), Serpent (Anderson, Riham và Knudsen), Twofish (Scheier, Kelsey, Whiting, Wagner, Hall và Ferguson)

Stream cipher: Stream cipher mã hóa từng bit của thông tin. Stream cipher thông dụng nhất là RC4 có thể dùng nhiều chiều dài mã khóa và có tốc độ nhanh hơn rất nhiều so với block cipher

Một khi đã có thuật toán mật mã đối xứng và một số ngẫu nhiên dùng làm mã khóa, quá trình mã hóa có thể tóm lược như sau:
M + K = C
Trong đó:
– M: Công thức nấu bún mắm viết bằng ngôn ngữ thông thường, ai cũng đọc được (bạch văn – văn bản thuần – plain text)
– K: Mã khóa và thuật toán mật mã đối xứng.
– C: Bản mật mã, nhìn vào chẳng ai biết là cái chi (cipher text)
Ất (thật ra là máy tính của Ất) sẽ phát sinh một mã khóa ngẫu nhiên và dùng mã khóa đó để mã hóa công thức. Ất có thể an tâm gửi bản mật mã cho Bính. Khi nhận được, Bính sẽ tiến hành giải mã cũng bằng chính mã khóa đã dùng để mã hóa:
C – K = M

Ất và Bính đã dùng chung 1 mã khóa để mã hóa và giải mã, đó chính là quá trình triển khai mật mã đối xứng.

Trải qua thử thách của thời gian và biết bao lần “vạch lá tìm sâu” của các chuyên gia phân tích mật mã (cryptanalyst), các thuật toán mật mã đối xứng đã chứng minh được mức độ bảo mật rất cao của chúng. Mật mã đối xứng còn có tốc độ hoạt động nhanh. Điều này đồng nghĩa với hiệu suất hoạt động của máy tính không hề bị ảnh hưởng nhiều cho dù phải triển khai mã hóa một lượng thông tin lớn. Bên cạnh đó, mã hóa đối xứng còn có thêm một ưu điểm là dung lượng của bản mã gần như tương đương với dung lượng của văn bản thuần.

Mọi chuyên xem ra có vẻ xuôi chèo mát mái, thế nhưng vẫn có một vấn đề rất lớn mà ta đã vô tình không xét đến. Để Bính có thể giải mã Ất phải gửi mã khóa kèm theo bản mã… Nếu làm thế thì chẳng khác nào bỏ vàng vào tủ sắt, khóa tủ lại rồi … treo chìa khóa ngay bên cạnh!…
Vẫn có một cách để giải quyết, đó là Ất, sau khi đã gửi bản mã đi, sẽ đáp máy bay qua Mỹ để giao mã khóa tận tay Bính. Nếu thế thì Ất cũng có thể giao công thức tận tay Bính cho rồi cần chi phải mã hóa.

Tình hình thật ra còn tệ hơn nữa vì người ta không hề khuyên dùng một mã khóa nhiều lần. Nói một cách khác, mỗi lần muốn mã hóa thì phải dùng một mã khóa khác nhau. Điều này tất yếu dẫn đến việc phải giải quyết vấn đề gửi mã khóa mỗi khi gửi một bản mã.
Ta hãy giả định Bính nhận được công thức nấu bún mắm và làm ăn phát đạt, mở 20 chi nhánh bún mắm Bà Sáu trên toàn nước Mỹ. Các chi nhánh tìm cách hoàn thiện món ăn thơm tho này và trao đổi các “bí kiếp” cho nhau (dĩ nhiên là mã hóa trước khi gửi đi). Mỗi lần gửi, một chi nhánh sẽ phải phát sinh 19 mã khóa khác nhau để gửi cho 19 chi nhánh còn lại. 20 chi nhánh sẽ phải phát sinh 20 x 19 = 380 mã khóa (xấp xỉ bằng bình phương số chi nhánh).
Nếu muốn lưu lại các bản mã, Bính tất nhiên sẽ phải lưu cả các mã khóa. Để bảo đảm an toàn, bản mã và mã khóa phải được lưu riêng biệt. Thêm một vấn đề phát sinh là phải có một hệ thống quản lý mã khóa để có thể xác định được mã khóa nào dùng giải bản mã nào.

Đến đây thì có lẽ Ất đã … bó tay vì không thể gửi được mã khóa cho Bính một cách an toàn.
Trước khi bàn đến cách giải quyết của Ất, ta có thể tóm lược những nét chính của mật mã đối xứng như sau:

Trích:
– Dùng chỉ 01 mã khóa cho cả 02 quá trình mã hóa và giải mã.
– Độ bảo mật cao.

– Tốc độ thực hiện nhanh.
– Bản mã có dung lượng tương đương bản gốc.

– Việc chuyển mã khóa đến người nhận có thể khiến cho bản mã chẳng còn gì là bí mật đối với mọi người.
– Số lượng mã khóa phải quản lý gần bằng bình phương số đối tượng tham gia trao đổi thông tin, vì thế không phù hợp với giao dịch trên quy mô lớn.
– Việc quản lý mã khóa phức tạp, tốn nhiều công sức.

Mật mã bất đối xứng (asymmetric cryptography)

Dùng mật mã đối xứng có vẻ không ổn, ta hãy cùng xét đến mật mã bất đối xứng xem sao.

Nếu muốn đạt được cùng một mức độ bảo mật thì mật mã bất đối xứng buộc phải dùng mã khóa dài hơn nhiều so với mã khóa của mật mã đối xứng.

Số lượng thuật toán mật mã bất đối xứng là khá ít và chúng thường là những quá trình tính toán rất phức tạp và dài dòng.

Vào giữa thập niên 1970, Whitfield Diffie và Martin Hellman là những người đầu tiên đưa ra khái niệm mật mã bất đối xứng. Thuật toán mật mã Diffie – Hellman được xây dựng trên cơ sở logarit rời rạc nhằm mục đích giải quyết vấn đề bảo vệ quá trình trao đổi mã khóa đối xứng.

Thuật toán mật mã bất đối xứng thành công nhất là RSA. RSA được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT – Massachusetts Institute of Technology). Tên của thuật toán lấy từ 03 chữ cái đầu của tên 03 tác giả. RSA là thuật toán được nghiên cứu nhiều nhất và cho đến nay nó vẫn đứng vững trước những thử nghiệm tấn công của các chuyên gia mật mã. RSA thường dùng mã khóa 1024 bit và là thuật toán mật mã bất đối xứng được dùng phổ biến nhất trong công nghệ máy tính hiện nay.

ECC (Elliptic Curve Cryptography) được Neal Koblitz và Victor S. Miller đề xướng vào năm 1985. ECC có thời gian xử lý nhanh hơn RSA và tuy ra đời sau RSA nhưng ECC cũng đã trải qua rất nhiều thử nghiệm tấn công của các chuyên gia mật mã. ECC có rất nhiều biến thể nên có thể được xem như một “họ” thuật toán chứ không chỉ là một thuật toán. Để đạt được cùng một cấp độ bảo mật như RSA, ECC có thể dùng một mã khóa ngắn hơn và ít hao tổn hiệu suất máy tính hơn.

Vào tháng tư năm 2000, RSA Laboratories (trực thuộc RSA Security) công bố “A Cost-Based Security Analysis of Symmetric and Asymmetric Key Lengths” bao gồm một bảng thống kê:
– Các chiều dài mã khóa cần thiết của mỗi thuật toán để đạt cùng một cấp độ bảo mật.
– Số máy tính dùng để bẻ khóa.
– Dung lượng RAM.
– Thời gian để bẻ khóa thành công.

Thống kê trên đây là kết quả của một số giả định và công thức tính khá phức tạp. Thông qua kết quả cuối cùng, có thể nêu một vài nhận xét như sau:
– Để tăng cường bảo mật, nên thay thế DES (mã khóa 56 bit) bằng AES (mã khóa 128 bit) cũng như nên thay mã khóa RSA 768 bit bằng mã khóa RSA 1024 bit.
– Để đạt cùng cấp độ bảo mật, mã khóa cần dùng của mật mã đối xứng luôn luôn ngắn nhất và của mật mã bất đối xứng RSA luôn luôn dài nhất.
– Tuổi của vũ trụ là 15 x 10E9 năm còn thời gian bẻ khóa thành công ở dòng cuối cùng là 10E16 năm!!!

Người ta cũng phát triển một số thuật toán mật mã bất đối xứng khác, ví dụ NTRU, Arithmetica… Những anh chàng này vẫn còn là “lính mới”, tuy có triển vọng nhưng chưa hể trải qua thời gian “thử lửa” lâu dài như ECC và càng không thể so sánh với RSA.

Quá trình phát sinh mã khóa đối xứng chỉ đơn thuần là chọn một số ngẫu nhiên có dung lượng xác định.
Quá trình phát sinh mã khóa bất đối xứng cũng dựa trên yếu tố ngẫu nhiên nhưng phức tạp hơn rất nhiều. Tên gọi bất đối xứng là do hai quá trình mã hóa và giải mã dùng 02 mã khóa khác nhau. Hai mã khóa là hai giá trị khác nhau nhưng lại có quan hệ toán học và phải được phát sinh đồng thời. Một khóa được gọi là mã khóa công khai (public key), khóa còn lại được gọi là mã khóa cá nhân (private key). Điểm thú vị của mã khóa bất đối xứng là khi thông tin được mã bằng khóa công khai thì chỉ có thể giải mã bằng khóa cá nhân và ngược lại.

Mã khóa công khai là mã khóa mà sở hữu chủ công bố cho mọi người.
Mã khóa cá nhân là mã khóa mà sở hữu chủ sẽ giữ kín, không cho ai biết. Thậm chí trong một số trường hợp, ngay cả sở hữu chủ cũng không có cách nào để biết mã khóa cá nhân của mình..

Ta có thể hình dung mã khóa công khai như là số điện thoại của anh Tèo được đăng trong một danh bạ công cộng, còn mã khóa cá nhân là chiếc sim mà anh Tèo đang lắp trong điện thoại của mình.
Bất cứ ai cũng có thể tra số số điện thoại của anh Tèo trong danh bạ và gọi cho Tèo: mã hóa dữ liệu bằng mã khóa công khai mà Tèo đã công bố.
Chỉ một mình Tèo có thể nhận cuộc gọi vì đang sở hữu sim tương ứng: chỉ một mình Tèo có thể giải mã được bằng mã khóa cá nhân của mình.

Đến đây có vẻ ta đã tìm được giải pháp:
– Bính (máy tính của Bính) phát sinh một cặp mã khóa. (Pb, Qb)
– Bính gửi mã khóa công khai (Pb) vừa phát sinh cho Ất.
– Bí kiếp nấu bún mắm được Ất mã hóa bất đối xứng bằng mã khóa công khai của Bính: M + Pb = C
– Ất gửi bản mã cho Bính.
– Chỉ Bính giải được bản mã vì chỉ Bính mới có mã khóa cá nhân của mình: C – Qb = M

Vì mọi người đều có thể biết mã khóa công khai của Bính nên “bọn xấu” có thể dùng mã khóa này để mã hóa công thức chế tạo keo diệt chuột và gửi bản mã đến cho Bính!!! Rõ ràng là Bính cần phải có một phương thức nào đó để có thể xác minh được xuất xứ của bí kiếp cũng như đoan chắc rằng bí kiếp đã không bị sửa đổi sau khi Ất gửi đi. Ta sẽ bàn đến vấn đề này sau.

Ta có thể thấy rằng việc quản lý mã khóa trở nên nhẹ nhàng hơn nhiều so với mã hóa đối xứng. Ta hãy quay lại với giả định 20 chi nhánh bún mắm trao đổi các “bí kiếp” cho nhau. Mỗi chi nhánh chỉ cần công bố mã khóa công khai của mình, vậy số mã khóa cần quản lý chỉ là 20 thay vì (20 x 19 =) 380 mã khóa.
Tuy thế nhược điểm của mã hóa bất đối xứng là tốc độ xử lý rất chậm. Nếu muốn đạt cùng cấp độ bảo mật với mã hóa đối xứng thì mã hóa bất đối xứng phải thực hiện trong khoảng thời gian gấp 10, thậm chí gấp 100 lần. Bên cạnh đó, dung lượng của bản mã bất đối xứng cũng lớn hơn nhiều lần so với văn bản gốc. Đây thực sự là vấn đề khi cần mã hóa dữ liệu có dung lượng lớn.

Tóm lược những nét chính của mật mã bất đối xứng:

Trích:
– Dữ liệu mã hóa bởi một mã khóa (công khai hoặc cá nhân) sẽ chỉ có thể được giải mã với mã khóa còn lại (cá nhân hoặc công khai).
– Độ bảo mật cao.

– Quá trình trao đổi mã khóa không ảnh hưởng đến việc bảo mật thông tin.
– Số lượng mã khóa phải quản lý bằng với số đối tượng tham gia trao đổi thông tin, do đó phù hợp với giao dịch trên mọi quy mô.

– Tốc độ thực hiện khá chậm.
– Bản mã có dung lượng lớn hơn nhiều so với bản gốc.

Giải pháp: phối hợp cả hai hình thức mã hóa đối xứng và bất đối xứng

Ta hãy so sánh ưu và nhược điểm của 2 loại thuật toán mật mã

Ta có thể thấy rằng nhược điểm của loại này lại là ưu điểm của loại kia. Từ đó, người ta nảy sinh ý tưởng kết hợp 2 loại thuật toán nhằm tận dụng ưu điểm và loại trừ khuyết điểm. Cụ thể, người ta tìm cách kết hợp mã khóa đối xứng và mã khóa bất đối xứng để đạt được các yếu tố:
1- Độ bảo mật cao.
2- Tốc độ thực hiện nhanh.
3- Bản mã có dung lượng tương đương bản gốc.
4- Quá trình trao đổi mã khóa không ảnh hưởng đến việc bảo mật thông tin.
5- Phù hợp với giao dịch trên mọi quy mô.

Quy trình xử lý như sơ đồ sau

– Ất phát sinh ngẫu nhiên một mã khóa đối xứng (K).
– Ất dùng mã khóa đối xứng để mã hóa bí kiếp, và có được một bản mã của bí kiếp (M + K = Cm).
– Đến đây ta có thể thấy rằng ưu điểm của mật mã đối xứng đã được ứng dụng (các yếu tố 1, 2, 3 đã nêu trên)
– Vấn đề kế tiếp cần giải quyết là làm sao để Bính có thể giải mã bằng mã khóa đối xứng mà Ất đã phát sinh ngẫu nhiên. Bây giờ là lúc cặp mã khóa công khai-cá nhân bắt đầu tham gia.
– Bính phát sinh một cặp mã khóa bất đối xứng (Pb, Qb).
– Bính gửi cho Ất mã khóa công khai (Pb) và giữ kín mã khóa cá nhân (Qb)
– Ất dùng mã khóa công khai của Bính để mã hóa mã khóa đối xứng và có được bản mã của mã khóa đối xứng (K + Pb = Ck). Hành động dùng một mã khóa để mã hóa một mã khóa khác còn được gọi là “key wrapping” (có thể tạm dịch: “đóng gói mã khóa”)
– Tuy mã hóa bất đối xứng có tốc độ rất chậm và dung lượng bản mã lớn hơn nhiều so với bạch văn gốc nhưng trong tình huống cụ thể này thì đó không phải là vấn đề vì mã khóa đối xứng (bạch văn gốc) có dung lượng rất nhỏ (thường chỉ là 128 bit).
– Ất gửi bản mã của khóa đối xứng và bản mã của bí kiếp (Ck và Cm) cho Bính. Sự kết hợp 2 loại bản mã này được gọi là “digital envelope” (có thể tạm dịch: “phong bì số”).
– Nếu “bọn xấu” có trộm được digital envelope này thì chúng cũng chẳng thể biết được mã khóa đối xứng và do đó chẳng thể đọc được bí kiếp. Riêng Bính thì chỉ cần quản lý 1 mã khóa cá nhân (Qb) của mình. Ta có thể thấy rằng ưu điểm của mật mã bất đối xứng đã được ứng dụng (các yếu tố 4, 5 đã nêu trên).

Vậy Bính sẽ làm gì khi nhận được digital envelope? Ta có thể quan sát sơ đồ sau:

– Bính dùng mã khóa cá nhân để giải bản mã của mã khóa đối xứng (Ck – Qb = K)
– Bính dùng mã khóa đối xứng vừa thu được để giải bản mã bí kiếp (Cm – K = M). Bính đã có được bí kiếp. Mã khóa đối xứng ngẫu nhiên mà Ất phát sinh bây giờ đã chấm dứt nhiệm vụ, Bính chẳng cần phải lưu giữa mã khóa đối xứng này.

Hâu hết các giải pháp mã hóa dữ liệu hiện tại đều dựa trên 2 quy trình mà chúng ta vừa nghiên cứu. Quy trình này được dùng mã hóa thư điện tử, giao dịch web và cả giao dịch trong mạng nội bộ.

Ất và Bính đã giữ kín bí kiếp nấu bún mắm gia truyền. Xin được tổng quát hóa quá trình thực hiện như sau:
Khi A muốn mã hóa thông điệp M để gửi cho B, A sẽ dùng mã khóa công khai Pb của B: Người gửi mã hóa bằng mã khóa công khai của người nhận:
A thực hiện:
1. M + K = Cm
2. K + Pb = Ck
A gửi B: Cm & Ck
B nhận và thực hiện:
1. Ck – Qb = K
2. Cm – K = M

Họ đã thỏa mãn yêu cầu thứ nhất: “confidence”. Tuy vậy vẫn còn 02 yêu cầu phải giải quyết: “integrity” và “authenticity”. Nếu họ gặp phải “bọn xấu-thực sự dữ dằn” thì câu chuyện chưa thể kết thúc ở đây. Bất cứ ai cũng có thể thực hiện quy trình tương tự như Ất đã thực hiện (vì Bính công bố mã khóa công khai nên ai cũng biết). Vậy “bọn xấu” sẽ có thể gửi đền Bính một phong bì số bao gồm bản mã Ck của khóa đối xứng và bản mã Cm của bí kiếp chế biến keo dính chuột. Sau khi Bính hoàn tất giải mã thì chắc chắn tiệm bún mắm của Bính sẽ là độc nhất vô nhị trên thế giới vì phục vụ món … keo dính chuột!!!

Vậy còn 2 vấn đề rất đáng quan ngại là làm sao để Bính có thể biết chắc rằng bí kiếp mà mình nhận được đã không bị chỉnh sửa và là do chính Ất gửi đến. Người ta giải quyết nhu cấu này bằng cách triển khai chữ ký số (digital signature). Xin được bàn đến chữ ký số trong phần 2.

Cảm ơn Quý vị đã theo dõi bài viết!

© 2012, Quản trị mạngNguồn: nhatnghe.

VN:F [1.9.17_1161]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.17_1161]
Rating: +3 (from 3 votes)
PKI & thương mại điện tử - Phần 1, 10.0 out of 10 based on 3 ratings
Post a Comment 

You must be logged in to post a comment.