Giới thiệu về lược đồ ký số và mã hóa SignCryption

15:02 | 06/04/2010

Signcryption là một nguyên thuỷ mật mã mới có thể đồng thời cung cấp cả tính bí mật và tính xác thực. Trước đây, hai mục đích này được xem xét một cách riêng biệt với một lược đồ mã hoá cung cấp tính bí mật và một lược đồ chữ ký số cung cấp tính xác thực.

Trong trường hợp cả hai tính chất đều được yêu cầu thì các phép tính mã hoá và chữ ký số cùng được thực hiện. Việc kết hợp cả hai mục đích trên trong một nguyên thuỷ mật mã đã được chứng minh là có thể tiết kiệm được chi phí tính toán và chi phí truyền thông, từ đó nhiều lược đồ Signcryption được đề xuất. Bài viết này trình bày về ưu, nhược điểm của Signcryption, so sánh giữa lược đồ “ký - mã” (Signcryption) với lược đồ “Ký rồi mã” (signature then encryption) và các ứng dụng của signcryption.
. Giới thiệu
Sự khám phá ra mật mã khoá công khai đã giúp cho việc truyền thông giữa các thực thể chưa biết nhau trên một mạng công khai, không an toàn có thể bảo đảm bí mật và được xác thực. Để gửi một thông điệp đòi hỏi có bảo mật và xác thực, người gửi thực hiện các bước sau:
-  Ký thông điệp sử dụng một lược đồ chữ ký số.
-  Mã hoá thông điệp và chữ ký sử dụng một thuật toán mã hoá khoá bí mật, với khoá mã được lựa chọn ngẫu nhiên.
-  Mã hoá khoá dùng để mã thông điệp, sử dụng khoá công khai của người nhận.
-  Gửi các thông điệp kết quả trong bước 2 và bước 3.
Cách tiếp cận này được biết đến như là phép “ký rồi mã” (signature then encryption). Nhược điểm lớn nhất của phương pháp này là làm tăng khối lượng công việc cần tính toán và làm giãn nở độ dài thông điệp. Do đó, ở bên người nhận, việc giải mã và kiểm tra chữ ký cũng yêu cầu về năng lực tính toán nhiều tương tự. Có thể nói chi phí cho việc chuyển phát một thông điệp sử dụng ký rồi mã bị ảnh hưởng bởi tổng chi phí của phép tính toán chữ ký số và phép mã hoá khoá công khai.
Liệu có thể gửi một thông điệp với độ dài bất kỳ với chi phí nhỏ hơn chi phí của cách “ký rồi mã”?
“Ký - mã” Signcryption là một mô hình mới của mật mã khoá công khai thực hiện đồng thời cả hai chức năng chữ ký số và mã hoá khoá công khai trong cùng một bước logic, với một chi phí thấp hơn chi phí yêu cầu bởi cách tiếp cận ký sau đó mã truyền thống. Cụ thể, theo các nghiên cứu đã công bố:
-  Với mật mã dựa trên bài toán logarit rời rạc, ký - mã có thời gian tính toán trung bình nhỏ hơn 58% và sự giãn nở độ dài nhỏ hơn 70% so với phương pháp ký rồi mã.
-  Sử dụng hệ mật mã RSA, thời gian tính toán trung bình nhỏ hơn 50% và sự giãn nở độ dài nhỏ hơn 91% so với phương pháp ký sau đó mã.
II. Signcryption sử dụng chữ ký Elgamal
Lược đồ ký-mã này sử dụng một lược đồ chữ ký ngắn Elgamal và một thuật toán mã hoá dữ liệu với hàm mã hoá giải mã được ký hiệu tương ứng là là E và D.
So sánh với Lược đồ chữ ký số DSS (Digital Signature Standard), SDSS1 (Shortened DSS 1) và SDSS2 (Shortened DSS 2) (hai phiên bản chữ ký được làm ngắn của DSS), lược đồ này có một số lợi thế sau:
- Các chữ ký ngắn hơn
- Không sử dụng một phép tính nghịch đảo modulo hoặc phép chia nào trong quá trình kiểm tra chữ ký.
- An toàn chứng minh được trong mô hình tiên đoán ngẫu nhiên
Các tham số sử dụng cho thuật toán Signcryption:
1. Các bước ký - mã một thông điệp (Signcryption)
Giả sử Alice muốn gửi cho Bob một thông điệp m, sử dụng lược đồ ký -  mã. Dưới đây là qui trình ký - mã (Signcrypting) thông điệp.
1. Alice chọn một giá trị x trong khoảng [1, ...,q-1]
2. Sau đó Alice sử dụng khoá công khai của Bob và giá trị x để tính giá trị băm của khóa công khai nó. Kết quả sẽ cho Alice 128 bit K = Hash (yxbmod p)
3. Alice chia K thành hai phần 64 bit và gọi là k1 và k2.
4. Alice mã hoá m sử dụng thuật toán mã hoá E với khoá k1. Kết quả cho bản mã c=Ek1(m)
5. Sử dụng k2 cho hàm băm có khoá KH để có giá trị băm của m. Kết quả cho Alice 128 bit, gọi là r. r=KHk2(m)
6. Cũng như trong SDSS, Alice tính giá trị s. Sử dụng giá trị x, khoá bí mật xa, số nguyên tố q và giá trị r. s=(x/(r +xa))(mod q)
7. Kết quả Alice có ba giá trị: a, r, s. Alice gửi ba giá trị này cho Bob.
2. Các bước giải mã kiểm tra chữ ký (unsigncryption)
Sau khi nhận được 3 giá trị : a, r, s từ Alice, Bob thực hiện như sau:


1. Bob tính 128 bit K: K=Hash ((yagr)sxbmod p, chia k thành hai phần mỗi phần 64 bit (k1, k2).
2. Sử dụng k1 để giải mã c. m=Dk1(c)
Áp dụng hàm băm một chiều có khoá KH đối với m sử dụng khoá k2 và so sánh kết quả đầu ra với giá trị r nhận được. Nếu chúng giống nhau thì kết luận m được ký và gửi bởi Alice. Nếu kết quả ngược lại Bob kết luận thông điệp m không được ký bởi Alice hoặc được ký bởi Alice nhưng đã bị sửa đổi trên đường truyền.
III. Các đặc tính của Signcryption
Signcryption thực hiện chữ ký số và mã hoá khoá công khai trong một bước logic, với chi phí ít hơn so với trường hợp các bước trên được thực hiện một cách riêng biệt. Giả sử rằng S là thuật toán Signcryption và U là thuật toán Unsigncryption. Dưới đây là ba đặc tính của Signcryption:
Giá trị unsigncryption là duy nhất: Một thông điệp m có độ dài bất kỳ đã được Signcrytion sử dụng thuật toán S. Cho đầu ra là bản Signcryption c. Người nhận có thể áp dụng thuật toán Unsigncryption U đối với c để kiểm tra thông điệp m. Unsigncryption là duy nhất đối với thông điệp m và người gửi.
Độ an toàn: Signcryption là sự kết hợp của hai lược đồ an toàn, dường như nó an toàn hơn và có thể đảm bảo thông điệp được gửi không bị giả mạo, giữ bí mật nội dung và đảm bảo chống chối bỏ.
Tính hiệu quả:  Chi phí tính toán và truyền thông nhỏ hơn nhiều so với các lược đồ ký rồi mã.
IV. Đánh giá Signcryption
Ưu điểm
- Chi phí tính toán thấp: Signcryption là một lược đồ hiệu quả, chỉ thực hiện hai bước trong suốt quá trình Signcryption và Unsigncryption. Khi một người gửi một thông điệp đã được Signcryption cho một người khác sử dụng thiết bị di động, khi đó chi phí tính toán thật sự không còn là một vấn đề lớn.
- Độ an toàn cao hơn: Vẫn còn có tranh luận xung đột vấn đề:  khi nào thì việc kết hợp hai lược đồ an toàn sẽ làm tăng hoặc giảm độ an toàn. Theo cách nhìn của một số tác giả, lược đồ Signcryption chỉ làm tăng độ an toàn. Vì khi kết hợp hai lược đồ an toàn, mà bản thân chúng là đủ phức tạp chống lại các tấn công, thì chúng chỉ đưa đến một độ an toàn cao hơn.
Xét các yếu tố dưới đây:
X là một thuật toán chữ ký số bất kỳ
Y là thuật toán mã hoá bất kỳ
X’ tổng số các thuật toán chữ ký số đã biết
Y’ tổng số các thuật toán mã hoá đã biết.
Việc kết hợp các lược đồ X và Y cho chúng ta lược đồ Signcryption S. S= XY
Nếu chúng ta đã có cả X và Y là các hàm toán học phức tạp, thì sự kết hợp của X và Y sẽ làm tăng độ phức tạp. Và như vậy sẽ làm tăng độ khó cho việc mã thám.
Một điểm cần chú ý ở đây là X, thuật toán chữ ký số, có thể được chọn trong một tập lớn các thuật toán chữ ký số đã có, X’. Tương tự thuật toán mã hoá Y có thể được chọn từ bất kỳ một thuật toán mã hoá nào, ví dụ như DES, 3DES, ... thuộc Y. Bởi vậy Signcryption có thể được cài đặt sử dụng bất kỳ một thuật toán nào thuộc X’ và Y’. Điều này làm cho các nhà mã thám khó khăn hơn trong việc đoán thuật toán chữ ký số nào và thuật toán mã hoá dữ liệu nào đã được sử dụng trong thuật toán Signcryption.  
- Khôi phục bản rõ: Xem xét kịch bản sau đây: Alice ký và mã hoá thông điệp và gửi nó cho Bob. Một thời gian sau, Alice muốn sử dụng nội dung của thông điệp. Để thoả mãn yêu cầu của Alice, hệ thống thư điện tử cần lưu lại một số thông tin liên quan đến thông điệp Alice đã gửi. Phụ thuộc vào thuật toán mật mã đã được sử dụng, hệ thống thư điện tử có thể:
- Lưu giữ bản copy của thông điệp đã được mã và ký như một bằng chứng của việc truyền nhận.
- Cùng với bản copy trên, lưu một bản copy của thông điệp nguyên thuỷ, hoặc ở dạng rõ hoặc ở dạng mã.
Một thuật toán hoặc một giao thức mật mã được gọi là hỗ trợ khả năng “khôi phục quá khứ” nếu người gửi có thể khôi phục thông điệp từ thông điệp đã được mã ký chỉ sử dụng duy nhất khoá bí mật của anh ta. Khi sử dụng khóa tĩnh thì cả lược đồ ký – mã và ký rồi mã đều hỗ trợ khôi phục quá khứ. Khi dùng với khóa tức thời thì lược đồ ký – mã khôi phục được quá khứ, còn lược đồ ký rồi mã thì không khôi phục được. Có thể xem ký rồi mã như một “hố  đen” (black hole) thông tin đối với người gửi: bất cứ người gửi nào để rơi thông tin vào “hố đen” thì sẽ không bao giờ nhận lại được, trừ phi người gửi tự lưu một phiên bản sao chép riêng.
Nhược điểm
Trong lược đồ Signcryption người gửi (Alice) phải dùng khóa công khai của người nhận (Bob) để ký - mã một thong
điệp, điều này sẽ là một nhược điểm khi cần gửi đi cho nhiều người một thông điệp được ký - mã. Giả sử một ngân hàng muốn gửi một thông điệp đã được ký -  mã cho một số khách hàng. Với lược đồ hiện tại, cần phải ký -  mã thông điệp với từng khóa công khai của khách hàng và gửi chúng riêng rẽ cho từng người nhận. Cách tiếp cận này sẽ làm tăng băng thông và yêu cầu tính toán.
Có một kết quả nghiên cứu nhằm giải quyết vấn đề này là thông qua khóa nhóm giữa ngân hàng và các máy trạm cho phép truyền đi đồng thời các thông điệp đã được ký - mã.
V. Các ứng dụng của Signcryption
1. Ứng dụng trong giao thức bắt tay WTLS
Truyền thông di động hiện đang phát triển một cách nhanh chóng và khả năng kết nối Internet là một đặc tính chính thu hút người dùng. Điều đó có nghĩa là các thiết bị truyền thông di động và các thiết bị trạm di động hiện nay có thể sẵn sàng cho việc truy cập Web. Nhưng còn một câu hỏi lớn đối với người dùng là liệu các công nghệ này có an toàn không? Vì vậy, các nhà sản suất đã thiết lập một diễn đàn WAP (Wireless Application Protocol).
Diễn đàn WAP đã phát triển tầng WTLS (Wireless Transport Layer Security) cho việc truyền thông an toàn trong môi trường WAP. Thành công chính của WTLS là cung cấp tính riêng tư, toàn vẹn dữ liệu, khả năng xác thực và thỏa thuận khóa (Authentication and Key Agreement - AKA) giữa các thực thể truyền thông.
Hiện tại, giao thức bắt tay WTLS được sử dụng cho truyền thông an toàn giữa các thiết bị di động. Việc bắt tay này dùng giao thức AKA với các kết nối đầu cuối. Trong chu trình các thông điệp bắt tay, chứng thư số được gửi tới người nhận mà không được mã hóa. Trong trường hợp này kẻ tấn công có thể nhận được chứng thư số thông qua việc nghe trộm đường truyền và suy luận ra thông tin của người dùng từ chứng thư số. Từ đó kẻ tấn công có thể có được thông tin về địa điểm và phạm vi hoạt động của người dùng.
Sử dụng lược đồ Signcryption để gửi các thông điệp giữa các thiết bị di động sẽ khắc phục được điểm yếu này. Khi đó, băng thông sử dụng và yêu cầu tính toán có thể được giảm thiểu mà không làm tổn thương đến độ an toàn của thông điệp.


2. Sử dụng Signcryption trong thiết lập khóa không thể giả mạo trên các mạng ATM
Chế độ truyền không đồng bộ (ATM) là kỹ thuật mạng tốc độ cao sử dụng cho các mạng công cộng có khả năng hỗ trợ  nhiều phương thức truyền thông.
Về bản chất công nghệ chuyển mạch gói là sử dụng các gói độ dài cố định ngắn được gọi là các cell trong truyền thông. Các cell độ dài cố định của một ATM hoạt động ở tốc độ chuyển mạch rất cao. Việc lựa chọn cell độ dài cố định ngắn sẽ làm giảm thời gian trễ. ATM có khả năng hỗ trợ một dải rộng các kiểu truyền thông như tiếng nói, video, ảnh và các loại dữ liệu khác.
Các gói dữ liệu mạng ATM thông thường là 53 byte. Chỉ có 48 byte trong số 53 byte đó được dùng để truyền dữ liệu, còn 5 byte sử dụng cho việc truyền thông tin điều khiển. Bởi vậy, nếu truyền nguyên liệu khóa lớn hơn 384 bit (48 byte) qua mạng ATM thì yêu cầu bằng hoặc nhiều hơn hai cell ATM. Trong các mạng tốc độ nhanh như ATM, nếu các gói dữ liệu được chia nhỏ sẽ ảnh hưởng đến độ trễ do việc chia gói, lưu bộ đệm và tập hợp lại các đối tượng dữ liệu. Bởi vậy, cần phải thiết kế một giao thức thiết lập khóa có xác thực sao cho:
- Không  dựa vào một hệ thống phân phối khóa.
- Yêu cầu tài nguyên ít.
- Thông điệp ngắn nhất có thể. - Chống giả mạo và chống chối bỏ.
Trong hoàn cảnh đó, Signcryption hoặc một cải biên của Signcryption có thể giải quyết được bài toán này thông qua việc tối thiểu hóa độ dài thông điệp, đảm bảo chống chối bỏ, chống giả mạo. Hiện tại, các công trình nghiên cứu lớn về việc sử dụng Signcryption trong thiết lập khóa trên các mạng ATM đang được tiến hành.
VI. Kết luận

Signcryption là một ý tưởng mới, nếu được cài đặt, triển khai đúng cách nó sẽ rất hữu dụng trong bảo mật truyền thông di động. Trong lĩnh vực an toàn thông tin, thông qua việc kết hợp hai hàm toán học phức tạp sẽ làm tăng thêm độ phức tạp và như vậy sẽ làm tăng độ an toàn của các lược đồ bảo mật. Signcryption vẫn còn  cả một quãng đường dài trước khi nó có thể được triển khai một cách rộng rãi. Việc nghiên cứu về Signcryption vẫn đang được tiến hành bởi nhiều nhóm nghiên cứu về mật mã trên thế giới nhằm tìm ra các phương pháp triển khai, cài đặt hiệu quả trên thực tế