Bảo mật và xác thực bằng chữ ký số

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu kỹ thuật an toàn thông tin trong kiểm phiếu điện tử ứng dụng cho trường trung học phổ thông chuyên hạ long​ (Trang 26 - 32)

4. Nội dung và bố cục của luận văn

1.4.3 Bảo mật và xác thực bằng chữ ký số

Có thể nói ứng dụng quan trọng nhất của hệ mã hóa công khai là chữ ký số. Nó cung cấp khả năng bảo mật mà các hình thức khác khó có thể có được. Chữ ký số có vai trò tương tự chữ ký tay trong giao dịch số, giúp xác thực bản tin đến từ người gửi hợp pháp trong giao dịch [4]. Ngoài ra nó cũng đảm bảo tính toàn vẹn dữ liệu (integerity) và chống lại khả năng chối bỏ nguồn gốc (nonrepudiation) của người gửi. Chữ ký số mang một số đặc điểm sau:

- Phải xác minh được người ký và thời gian ký cụ thể. - Phải xác thực được nội dung tại thời điểm ký.

- Phải được xác minh bởi bên thứ ba để tránh những tranh chấp xảy ra.

Cơ sở hạ tầng chủ yếu để xây dựng hệ thống chữ ký số là các thuật toán mã hóa công khai và hàm băm (sẽ được trình bày trong chương 2).

1.4.3.1 Khái niệm về chữ ký số

Chữ ký số là xâu bit được dùng để xác thực một tài liệu số, đảm bảo người gửi không thể chối bỏ rằng mình đã gửi bản tin và người nhận không thể giả mạo bản tin hoặc chữ ký [3]. Đồng thời, người nhận có thể chứng minh với người khác nội dung bản tin là chính xác và do người gửi ban đầu gửi đến.

Hệ thống chữ ký số hoạt động dựa trên sự phối hợp giữa bên gửi và bên nhận thông điệp, nhằm thực hiện đồng bộ hai quá trình tạo và xác minh chữ ký.

1.4.3.2 Hoạt động của chữ ký số

Hoạt động của hệ thống chữ ký số gồm hai quá trình:

Hình 1.3. Hoạt động của hệ thống chữ ký số

Tạo chữ ký số (Digital signature creation):

Đầu vào của quá trình này chính là bản tin cần ký, bằng cách sử dụng khóa bí mật của người gửi, ta có thể tạo ra chữ ký cho bản tin hiện thời. Bản tin gửi đi bao gồm bản tin ban đầu được ký bằng chữ ký vừa tạo ra.

Xác minh chữ ký số (Digital signature verification):

Đây là quá trình sử dụng khóa công khai của người nhận giải để xác thực chữ ký.

A/ Quá trình tạo chữ ký

Quá trình tạo chữ ký thực hiện tại bên gửi, gồm hai bước sau đây:

Tính toán giá trị băm

Bước đầu tiên của quá trình tạo chữ ký là tạo giá trị băm của bản tin cần gửi. Các hàm băm có thể sử dụng là SHA-256, SHA-384, SHA-512…Kết quả thu được là một message digest có chiều dài cố định, nhỏ hơn rất nhiều lần bản tin ban đầu. Theo tính chất của hàm băm, xác suất để hai bản tin khác nhau có cùng một giá trị băm là rất nhỏ và có thể bỏ qua. Vì vậy nếu giá trị băm của hai bản tin trùng nhau thì bản tin ban đầu cũng trùng nhau (XemHình 1.4).

Tính toán chữ ký số

Kết quả băm thu được (message digest) được ký bằng khóa bí mật (private key) của bên nhận. Kết quả thu được này chính là chữ ký số. Các thuật toán tạo khóa có thể sử dụng là RSA (dựa trên bài toán số nguyên tố), Elgamal (dựa trên lí thuyết logic rời rạc), ECDSA (dựa trên bài toán logarit trên EC). Chữ ký này được gắn vào bản tin ban đầu (ký) và truyền đến người gửi trên môi trường mạng.

B/ Quá trình xác thực

Quá trình xác thực gồm các bước sau đây:

Hình 1.5. Quá trình xác thực chữ ký

Tính toán giá trị băm hiện thời

Sau khi nhận được bản tin bao gồm bản tin ban đầu (nói chính xác là bản tin mà bên nhận cho là bản tin ban đầu) và chữ ký gửi kèm, bên nhận tiến hành tách riêng hai phần của bản tin ra. Phần bản tin ban đầu trở thành đầu vào của thuật toán băm

giống với thuật toán băm khi tạo chữ ký số. Giá trị băm nhận được gọi là giá trị băm hiện thời vì nó được tính từ bản tin hiện thời.

Tính toán giá trị băm ban đầu

Trong bước thứ hai của quá trình giải mã, chữ ký số đính kèm được giải mã bằng khóa công khai (public key) tương ứng với khóa bí mật (private key) dùng để tạo chữ ký ở bên gửi. Kết quả thu được giá trị băm ban đầu.

So sánh giá trị băm hiện thời với giá trị băm ban đầu

Trong bước này ta tiến hành so sánh giá trị băm thu được từ bước 1 và bước 2 của quá trình xác thực.

- Nếu hai giá trị băm này trùng nhau: quá trình xác thực thành công, bản tin đã được ký bằng khóa bí mật tương ứng với khóa công khai khi xác minh, đồng thời bản tin cũng không bị thay đổi trong quá trình truyền đi.

- Nếu hai giá trị băm không trùng nhau: quá trình xác thực thất bại, có hai trường hợp mất an toàn đã xảy ra:

 Khóa bí mật của người gửi không được sử dụng khi tạo chữ ký.

 Bản tin đã bị thay đổi trong quá trình truyền đi.

1.4.3.3 Hàm băm mật mã

Hàm băm (hash function) là một kĩ thuật phục vụ quá trình xác thực. Chức năng chính của nó là thực hiện ánh xạ các bản tin có chiều dài khác nhau thành một miếng băm có kích thước cố định. Miếng băm mới tạo ra thường có kích thước nhỏ hơn rất nhiều so với bản tin ban đầu.

Một giá trị miếng băm h được sinh ra bởi hàm băm H có dạng: h= H (M) trong đó: M là bản tin có chiều dài tùy ý, h là giá trị băm chiều dài cố định.

Các yêu cầu đối với hàm băm

- Hàm H có thể áp dụng cho các khối dữ liệu với kích thước tùy ý. - Đầu ra của hàm H có độ dài xác định.

- Việc tính giá trị H(x) đủ đơn giản để việc cài đặt là khả thi đối với cả phần mềm và phần cứng.

- Hàm H là hàm một chiều, nghĩa là với x cho trước thì H(x) xác định nhưng với h cho trước thì việc tính x là cực kỳ khó khăn.

- Với hai giá trị đầu vào x ≠ y thì H(x) ≠ H(y)

Hiện nay, một số kỹ thuật băm được sử dụng phổ biến như: SHA-256, SHA- 384, SHA-512.

Kết luận chương 1

Qua nội dung chương 1, có thể thấy phương pháp bỏ phiếu và kiểm phiếu điện tử khẳng định được ưu việt vượt trội so với phương pháp truyền thống và là xu hướng tất yếu của tương lai. Hệ thống bỏ phiếu, kiểm phiếu điện tử cũng bao gồm các thành phần và cũng phải trải qua các giai đoạn như bỏ phiếu, kiểm phiếu thông thường.

Khi áp dụng bỏ phiếu điện tử, ta phải đối mặt với vấn đề an toàn thông tin. Tuy nhiên, nhờ sự trợ giúp của kỹ thuật mật mã và chữ ký số, bỏ phiếu điện tử có thể hạn chế thấp nhất các sai nhầm mang yếu tố con người khi đo lường kết quả kiểm phiếu như: đảm bảo sự ẩn danh trong lá phiếu của cử tri (tránh việc cử tri bị khống chế) bằng mật mã, ngăn ngừa việc mua bán phiếu bầu; tránh gian lận trong ban kiểm phiếu bằng sơ đồ chia sẻ khóa bí mật; xác thực cử tri bằng chữ ký số. Cơ sở toán học cho các phương pháp mật mã, các biện pháp an toàn thông tin được luận văn lựa chọn hướng đến sẽ được trình bày chi tiết trong chương 2.

CHƯƠNG 2

SỬ DỤNG MẬT MÃ ĐẢM BẢO AN TOÀN THÔNG TIN TRONG KIỂM PHIẾU ĐIỆN TỬ

Giới thiệu chương

Mục tiêu của luận văn là áp dụng mật mã và chữ ký số để đảm bảo an toàn thông tin cho việc triển khai phiếu hỏi điện tử tại trường PTTH chuyên Hạ Long. Việc triển khai phiếu hỏi điện tử phải đảm bảo yêu cầu bí mật, toàn vẹn, xác thực của lá phiếu. - Bí mật tức là ngoài học sinh bỏ phiếu thì chỉ có người kiểm phiếu biết được kết quả mà không cần biết ai cụ thể danh tính của người bỏ phiếu cũng như nội dung cụ thể của lá phiếu. Hệ mã hóa khóa công khai Elgamal cho phép thực hiện điều này thông qua tính đồng cấu của nó [10].

- Toàn vẹn là đảm bảo lá phiếu không bị thay đổi khi kiểm phiếu. Điều này có thể thực hiện được khi áp dụng sơ đồ chia sẽ khóa bí mật Shamir [11].

- Xác thực là lá phiếu phải hợp lệ, đúng là người được quyền bỏ phiếu và có thể nhận ra lá phiếu của mình. Sử dụng chữ ký số Elgamal cho phép thực hiện điều đó [3].

Chính vì vậy, chương 2 sẽ đi sâu vào phân tích chi tiết các kỹ thuật liên quan. Phần đầu của chương sẽ trình bày cơ sở toán học chung của mật mã. Hai bài toán bỏ phiếu thường gặp là bỏ phiếu dạng có/không và bỏ phiếu chọn L/K [2]. Vì vậy, các phần tiếp theo của luận văn sẽ trình bày chi tiết về việc lựa chọn hệ mã hóa công khai Elgamal để mã hóa phiếu trả lời cho hai dạng câu hỏi này. Tiếp đó, luận văn đề cập đến việc tránh gian lận cần áp dụng kỹ thuật chia sẻ khóa bí mật Shamir kết hợp với mật mã Elgamal. Phần cuối của chương trình bày việc xác định người dùng bằng chữ kỹ số Elgamal.

Cơ sở toán học của mật mã

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu kỹ thuật an toàn thông tin trong kiểm phiếu điện tử ứng dụng cho trường trung học phổ thông chuyên hạ long​ (Trang 26 - 32)

Tải bản đầy đủ (PDF)

(71 trang)