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

Ứng dụng chữ ký số cho thiết bị di động

78 56 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 78
Dung lượng 4,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với sự phát triển nhanh chóng của công nghệ, các giao dịch, thông tin dần được thực hiện thông qua mạng Internet. Chữ ký số là một trong số các công cụ nhằm giúp các giao dịch hoặc thông tin trở nên minh bạch hơn. Chữ ký số có thể hiển đơn giản là chữ ký, con dấu đại diện cho một cá nhân hay một tập thể dùng để ký lên các hồ sơ, chứng từ điện tử. Chữ ký này chỉ do người sử dụng nắm giữ, không cần phải gửi đi cùng với văn bản được ký giúp đảm bảo tính bí mật cho chữ ký. Người nhận có thể định danh xác nhận được văn bản. Chữ ký số có thể được cung cấp bởi 1 bên thứ 3 nhằm giúp dễ dàng trong việc định danh người ký. Chữ ký số có chi phí thấp, độ an toàn cao, dễ dàng trong việc sử dụng. Chẳng hạn, khi công bố các văn bản phát hành của nhà nước, việc sử dụng chữ ký số để ký lên văn bản được công bố là điều cần thiết để tránh văn bản bị giả mạo. Tất cả mọi người đều có thể xác thực văn bản đó với khóa công khai do nhà nước cung cấp. Các thông tin của người ký có thể được định danh nhanh chóng nếu chữ ký được cung cấp bởi một bên thứ 3, bên cạnh đó người ký có thể thêm các thông tin của chính mình vào văn bản được ký. Với những tính năng này, người sở hữu chữ ký có thể ký trên mọi văn bản và có thể gửi đi bất cứ đâu. Người nhận có thể dễ dàng nhận và xác thực chữ ký, định danh người gửi mọi nơi, mọi lúc. Khóa bí mật chỉ do người ký nắm giữ nên việc đảm bảo tính bí mật cho chữ ký hoàn toàn khả thi và thuận tiện. ECDSA là một thuật toán sinh khóa bí mật và khóa công khai của chứ ký số. Thuật toán dự trên lý thuyết về Hệ mật dựa trên đường cong Elliptic (ECC). Đây là một trong số các thuật toán sinh chữ ký số được áp dụng trong thực tế và đạt hiệu quả cao. Ưu điểm của ECDSA là có độ an toàn cao cho khóa bí mật mà dung lượng lại nhỏ hơn rất nhiều so với các thuật toán khác. Với mục tiêu như vậy, bố cục của đồ án sẽ bao gồm bốn chương theo cấu trúc như sau:Chương 1: Tổng quan về chữ ký sốGiới thiệu tổng quan về chữ ký số, nguyên lý hoạt động của chữ ký số, quá trình ký và xác thực chữ ký số, ứng dụng của chữ ký số trong đời sống.Chương 2: Chữ ký số dựa trên đường cong EllipticTrình bày các lý thuyết về Hệ mật trên đường cong Elliptic, cách hoạt động của chữ ký sô dựa trên lý thuyết về đường cong Elliptic.Chương 3: Xây dựng ứng đụng phần mềm ký số ECDSA trên điện thoại AndoridTrình bày quá trình xây dựng ứng dụng ký số ECDSA trên điện thoại Andorid. Đánh giá ưu điểm, nhược điểm của ứng dụng. Kết luận và hướng phát triểnTổng kết, tóm tắt những kết quả đã đạt được và còn chưa đạt được. Từ đó đề xuất các hướng phát triển tiếp theo.

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHỮ KÝ SỐ

CHO THIẾT BỊ DI ĐỘNG

Giảng viên hướng dẫn :TS ĐẶNG MINH TUẤN

Sinh viên thực hiện : NGUYỄN MINH ĐỨC

Trang 2

LỜI CẢM ƠN

Để đạt được thành quả tốt đẹp như ngày hôm nay, trước tiên em xin gửi lời cảm ơnchân thành nhất đến TS Đặng Minh Tuấn – đã tận tình chỉ bảo và hướng dẫn em hoàn thànhtốt đồ án tốt nghiệp của mình trong thời gian qua

Em xin gửi lời cảm ơn chân thành đến các thầy cô giáo trong khoa Công nghệ thôngtin, các thầy cô giáo trong Học viện Công nghệ Bưu chính Viễn thông đã dạy dỗ, động viên

em trong suốt quá trình học tập 4 năm tại học viện

Cuối cùng em rất biết ơn gia đình và bạn bè luôn tạo điều kiện, quan tâm, giúp đỡ để

em vượt qua những khó khăn trong quá trình học tập và cuộc sống

Em xin chân thành cảm ơn!

Hà Nội, ngày 16 tháng 10 năm 2020Nguyễn Minh Đức

Trang 3

MỤC LỤC

LỜI CẢM ƠN i

DANH MỤC CÁC HÌNH ẢNH v

DANH MỤC BẢNG BIỂU vii

DANH MỤC TỪ VIẾT TẮT viii

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ CHỮ KÝ SỐ 3

1.1 Giới thiệu về chữ ký số 3

1.1.1 Lịch sử hình thành 3

1.1.2 Chữ ký số là gì 4

1.1.3 Yêu cầu cần thiết để trở thành một chữ ký số 4

1.1.4 Luật pháp và thực tế 4

1.2 Nguyên lý hoạt động của chữ ký số 5

1.3 Các đặc điểm của chữ ký số 7

1.3.1 Khả nâng xác thực nguồn gốc 7

1.3.2 Tính toàn vẹn của thông điệp 7

1.3.3 Tính không thể phủ nhận 7

1.4 Ứng dụng chữ ký số trong thực tế 7

1.5 Sự nổi bật của thuật toán chữ ký số ECDSA với RSA 9

1.5.1 Chữ ký số dựa trên RSA 9

1.5.2 Chữ ký số dựa trên ECC 11

1.5.3 So sánh các kết quả thử nghiệm 13

1.5.4 Kết luận và đánh giá sự phát triển trong tương lai 17

CHƯƠNG 2: CHỮ KÝ SỐ DỰA TRÊN ĐƯỜNG CONG ELLIPTIC 19

Trang 4

2.1.1 Hàm băm là gì 19

2.1.2 Tính chất của hàm băm 19

2.1.3 Hàm băm SHA-256 20

2.2 Kiến thức cơ sở về đường cong Elliptic 20

2.2.1 Tổng quan về đường cong Elliptic 20

2.2.2 Cộng các điểm trên đường cong Elliptic 22

2.2.3 Nhân vô hướng các điểm trên đường cong Elliptic 24

2.2.4 Đường cong hữu hạn trên trường Fq 25

2.3 Ứng dụng của đường cong elliptic trong chữ ký số 29

2.3.1 Quá trình sinh khoá 29

2.3.2 Thuật toán ký trên bản rõ 29

2.3.3 Kiểm tra chữ ký 29

2.3.4 Tính đúng đắn của thuật toán 30

2.3.5 Đánh giá bảo mật 30

2.4 Đảm bảo tính bí mật cho khóa bí mật 31

2.4.1 Tầm quan trọng của việc bảo mật khóa bí mật 31

2.4.2 Ưu điểm của hệ mật AES 31

2.4.3 Mã hóa và giải mãi file khóa bí mật sử dụng AES 33

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG PHẦN MỀM KÝ SỐ ECDSA TRÊN ĐIỆN THOẠI ANDROID 35

3.1 Khảo sát yêu cầu về ứng dụng 35

3.1.1 Khảo sát sơ bộ 35

3.1.2 Khảo sát chi tiết 35

3.2 Phân tích yêu cầu ứng dụng 40

3.2.1 Biểu đồ Usecase chính 40

3.2.2 Sinh khoá dựa trên thuật toán ECDSA 41

Trang 5

3.2.4 Xác thực chữ ký số sử dụng thuật toán ECDSA 42

3.2.5 Các chức nâng phụ trợ 43

3.2.6 Các giao diện chính của ứng dụng 45

3.3 Thiết kế ứng dụng 50

3.3.1 Quá trình tạo mật khẩu 50

3.3.2 Quá trình sinh khoá 51

3.3.3 Quá trình đổi mật khẩu 54

3.3.4 Quá trình ký số 55

3.3.5 Quá trình xác thực 59

3.4 Đánh giá 61

3.4.1 Ưu điểm của ứng dụng 61

3.4.2 Nhược điểm của ứng dụng 63

KẾT LUẬN 64

TÀI LIỆU THAM KHẢO 66

Trang 6

DANH MỤC CÁC HÌNH ẢN

Hình 1 1 Biểu diễn sơ đồ từng bước của quá trình tạo chữ ký và xác minh thuật toán

Chữ ký số tổng quát 6

Hình 1 2 Hình ảnh USB token của nhà cung cấp Viettel 8

Hình 1 3 Quy trình sinh chữ ký RSA được sử dụng ký lên văn bản 10

Hình 1 4 Triển khai từng bước của Thuật toán xác minh chữ ký RSA 10

Hình 1 5 Sơ đồ quá trình tạo chữ ký ECDSA 12

Hình 1 6 Sơ đồ xác thực chữ ký ECDSA 13

Hình 1 7 Biểu đồ thời gian sinh khóa của RSA 14

Hình 1 8 Biểu đồ thời gian sinh khóa của ECC 14

Hình 1 9 Biểu đồ thời gian sinh chữ ký của RSA 15

Hình 1 10 Biểu đồ thời gian sinh chữ ký của ECC 16

Hình 1 11 Biểu đồ thời gian xác thực chữ ký số của RSA 17

Hình 1 12 Biểu đồ thời gian xác thực chữ ký số của ECC 17

Y Hình 2 1 Cộng hai điểm trên đường cong Elliptic 23

Hình 2 2 Phép nhân đôi trong đường cong Elliptic 24

Hình 2 3 Đường cong E trên trường hữu hạn F 2 m 26

Hình 2 4 Sơ đồ mã hóa và giải mã của thuật toán AES 33

Hình 3 1 Giao diện ứng dụng Adope Fill & Sign 36

Hình 3 2 Hình ảnh chữ ký trên ứng dụng khảo sát Adobe Fill & Sign 37

Hình 3 3 Các trường thông tin trong chữ ký số của ứng dụng Adobe Fill & Sign37 Hình 3 4 Ký bằng cách ghi thông tin lên văn bản cần ký (Ứng dụng Adobe) 38

Hình 3 5 Ký bàng cách sử dụng chữ ký đã được tạo từ trước (Ứng dụng Adobe)39 Hình 3 6 Biểu đồ usecase của ứng dụng 40

Hình 3 7 File publicKey.pem và thư mục PrivateKey trên điện thoại Mi8 Lite 41 Hình 3 8 Chức năng ký số của ứng dụng 42

Hình 3 9 Chức năng xác thực chữ ký số của ứng dụng 42

Hình 3 10 Màn hình đăng nhập khi bị khoá 43

Hình 3 11 Giao diện chức năng tạo/thay đổi mật khẩu 44

Trang 7

Hình 3 13 Giao diện đăng nhập 45

Hình 3 14 Giao diện sinh khoá 46

Hình 3 15 Giao diện đổi mật khẩu 47

Hình 3 16 Giao diện ký số 48

Hình 3 17 Giao diện xác thực 49

Hình 3 18 Giao diện tạo mật khẩu cho ứng dụng 50

Hình 3 19 Biểu đồ tuần tự cho quá trình tạo mật khẩu 51

Hình 3 20 Thông số N và tọa độ điểm G 51

Hình 3 21 Phần xử lý sinh khóa công khai 52

Hình 3 22 File khoá bí mật được đọc sau khi đã được mã hoá 52

Hình 3 23 Quá trình sinh khóa 53

Hình 3 24 Biểu đồ tuần tự cho quá trình sinh khoá 53

Hình 3 25 Thông báo về độ mạnh yếu của mật khẩu nhập vào 54

Hình 3 26 File khoá bí mật sau khi được giải mã trên một ứng dụng khác 54

Hình 3 27 Biểu đồ tuần tự cho quá trình thay đổi mật khẩu 55

Hình 3 28 File HeMatDuongCongElliptic.pdf được chọn 55

Hình 3 29 Thông báo tạo khoá trước khi ký số 56

Hình 3 30 Xử lý quá trình ký số 57

Hình 3 31 Lưu file ký vào trong bộ nhớ 57

Hình 3 32 Hình ảnh file chữ ký đã được lưu vào bộ nhớ thiết bị 57

Hình 3 33 Hỗ trợ chia sẻ nhiều file 58

Hình 3 34 Biểu đồ tuần tự cho quá trình ký số 58

Hình 3 35 Chọn file để xác thực chữ ký 59

Hình 3 36 Hàm xác thực theo thuật toán ECDSA 60

Hình 3 37 Kết quả xác thực đúng 60

Hình 3 38 File tài liệu bị chọn sai ở file khoá công khai và được thông báo lỗi 61 Hình 3 39 Biểu đồ tuần tự cho quá trình xác thực 61

Trang 8

DANH MỤC BẢNG BIỂU

Bảng 1 1 So sánh thời gian sinh khóa của RSA và ECDSA 13

Bảng 1 2 So sánh thời gian ký số của RSA và ECDSA 15

Bảng 1 3 So sánh thời gian xác thực chữ ký số của RSA và ECDSA 16

Bảng 2 1 Bảng chấm điểm các thuật toán dự thi tuyển chọn AES 32

Trang 9

DANH MỤC TỪ VIẾT TẮT

Standard

Tiêu chuẩn mã hóa tiên tiến

machine

Máy rút tiền tự động

Cryptography

Hệ mật dựa trên đường cong Elliptic

Thuật toán chữ kí số đường cong Elliptic

Agreement

Thoả thuận người dùng cuối

Viện Tiêu chuẩn và Công nghệ

Algorithm

Thuật toán băm an toàn

Trang 10

Adleman tích ra thừa số nguyên tố do

Rivest-Shamir-Adleman phát triển

Trang 11

LỜI MỞ ĐẦU

Với sự phát triển nhanh chóng của công nghệ, các giao dịch, thông tin dần đượcthực hiện thông qua mạng Internet Chữ ký số là một trong số các công cụ nhằm giúpcác giao dịch hoặc thông tin trở nên minh bạch hơn Chữ ký số có thể hiển đơn giản làchữ ký, con dấu đại diện cho một cá nhân hay một tập thể dùng để ký lên các hồ sơ,chứng từ điện tử Chữ ký này chỉ do người sử dụng nắm giữ, không cần phải gửi đicùng với văn bản được ký giúp đảm bảo tính bí mật cho chữ ký Người nhận có thểđịnh danh xác nhận được văn bản Chữ ký số có thể được cung cấp bởi 1 bên thứ 3nhằm giúp dễ dàng trong việc định danh người ký Chữ ký số có chi phí thấp, độ antoàn cao, dễ dàng trong việc sử dụng Chẳng hạn, khi công bố các văn bản phát hànhcủa nhà nước, việc sử dụng chữ ký số để ký lên văn bản được công bố là điều cần thiết

để tránh văn bản bị giả mạo Tất cả mọi người đều có thể xác thực văn bản đó với khóacông khai do nhà nước cung cấp

Các thông tin của người ký có thể được định danh nhanh chóng nếu chữ ký đượccung cấp bởi một bên thứ 3, bên cạnh đó người ký có thể thêm các thông tin của chínhmình vào văn bản được ký

Với những tính năng này, người sở hữu chữ ký có thể ký trên mọi văn bản và cóthể gửi đi bất cứ đâu Người nhận có thể dễ dàng nhận và xác thực chữ ký, định danhngười gửi mọi nơi, mọi lúc Khóa bí mật chỉ do người ký nắm giữ nên việc đảm bảotính bí mật cho chữ ký hoàn toàn khả thi và thuận tiện

ECDSA là một thuật toán sinh khóa bí mật và khóa công khai của chứ ký số.Thuật toán dự trên lý thuyết về Hệ mật dựa trên đường cong Elliptic (ECC) Đây làmột trong số các thuật toán sinh chữ ký số được áp dụng trong thực tế và đạt hiệu quảcao Ưu điểm của ECDSA là có độ an toàn cao cho khóa bí mật mà dung lượng lại nhỏhơn rất nhiều so với các thuật toán khác

Với mục tiêu như vậy, bố cục của đồ án sẽ bao gồm bốn chương theo cấu trúc như sau:

Chương 1: Tổng quan về chữ ký số

Trang 12

Giới thiệu tổng quan về chữ ký số, nguyên lý hoạt động của chữ ký số, quá trình

ký và xác thực chữ ký số, ứng dụng của chữ ký số trong đời sống

Chương 2: Chữ ký số dựa trên đường cong Elliptic

Trình bày các lý thuyết về Hệ mật trên đường cong Elliptic, cách hoạt động củachữ ký sô dựa trên lý thuyết về đường cong Elliptic

Chương 3: Xây dựng ứng đụng phần mềm ký số ECDSA trên điện thoại Andorid

Trình bày quá trình xây dựng ứng dụng ký số ECDSA trên điện thoại Andorid.Đánh giá ưu điểm, nhược điểm của ứng dụng

Kết luận và hướng phát triển

Tổng kết, tóm tắt những kết quả đã đạt được và còn chưa đạt được Từ đó đề xuấtcác hướng phát triển tiếp theo

Trang 13

CHƯƠNG 1: TỔNG QUAN VỀ CHỮ KÝ SỐ

1.1 Giới thiệu về chữ ký số

1.1.1 Lịch sử hình thành

Tại sao người ta lại chọn chữ ký số?

 Tiết kiệm thời gian: Chúng ta không cần phải in bất kỳ tài liệu nào

 Tiết kiệm cho phí: Các chi phí liên quan đến dịch vụ chuyển phát nhanhđược giảm xuống

 Hiệu quả của quy trình làm việc: Cải thiện hiệu quả và tính lặp lại củacác hoạt động

 Phòng trống giả mạo: Chữ ký điện tử sẽ là duy nhất cho mọi người dùng

do đó không thể giả mạo Điều đó sẽ giúp đảm bảo tính toàn vẹn của dữliệu[1]

Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay vớiviệc sử dụng mã Morse và điện tín Vào năm 1889, tòa án tối cao bang NewHampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký điện tử Tuy nhiên, chỉ vớinhững phát triển của khoa học kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộcsống một cách rộng rãi

Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax đểtruyền đi các tài liệu quan trọng Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trêngiấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử

Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các

số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị mànhình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khicài đặt phần mềm máy tính, ký các hợp đồng điện tử online [2]…

1.1.2 Chữ ký số là gì

Chữ ký số là một chương trình toán học cho việc xác minh tính xác thực củathông điệp hoặc văn bản số Để tạo ra một chữ ký điện tử hợp lệ là đảm bảo người

Trang 14

nhận có thể chắc chắn rằng văn bản được ký bởi đúng người đã gửi đi (tính xác thực)

và thư không bị thay đổi khi chuyển tiếp (tính toàn vẹn)

Chữ ký điện tử chỉ cung cấp tính toàn vẹn, tính xác thực và tính trống chối bỏ tàiliệu hoặc email, nhưng không thể cung cấp tính bảo mật

1.1.3 Yêu cầu cần thiết để trở thành một chữ ký số

Chữ ký số là một cách có độ hiệu quả tương tự như chữ ký thực Nó giúp ngườinhận có thể xác định và chắc chắn chính xác đó là của người gửi đã ký Giống như chữ

ký thực, chữ ký số dùng để xác nhận nội dung của một thông điệp[3]

Chữ ký số cần phải đạt được các điều kiện cơ bản sau:

 Không thể giả mạo: Nếu A ký vào thông điệp M với chữ ký S của A, thì khôngmột ai có thể giả mạo được cặp M và S

 Xác thực: Nếu bên nhận nhận được cặp M và S thì bên nhận có thể kiểm trađược chính xác đó là chữ ký và văn bản của người gửi

 Không thể thay đổi: Sau khi được gửi đi, thông điệp M không thể được thay đổibởi bất kỳ ai, nếu có bất kỳ sự thay đổi nào bên nhận sẽ phát hiện ra ngay lậptức[4]

 Chất lượng của phần mềm/ phần cứng thực hiện thuật toán;

 Khóa bí mật phải được giữ an toàn;

 Quá trình phân phối khóa công khai phải đảm bảo mối liên hệ giữa khóa

và thực thể sở hữu khóa là chính xác Việc này thường được thực hiện bở

hạ tần khóa công khai (PKI) và mối liên hệ khóa tương đương với người

sở hữu được chứng thực bởi những người điều hành PKI Đối với hệthống PKI mở, nơi mà tất cả mọi người đều có thể yêu cầu chứng thực

Trang 15

trên khi khả năng sai sót rất thấp Tuy nhiên các PKI thương mại cũng đãgặp phải nhiều vấn đề có thể dẫn đến văn bản bị ký sai

 Nhưng người sử dụng (và phần mềm) phải thực hiện các quá trình đúngthủ tục (giao thức)

Chỉ khi tất cả các điều khiện trên được thỏa mãn thì chữ ký số mới là bằng chứngxác định người chủ (hoặc người có thẩm quyền) của văn bản

Một số cơ quan luật pháp, dưới tác động của các doanh nghiệp hy vọng thu lợi từPKI hoặc với mong muốn là người đi tiên phong trong lĩnh vực mới, đã ban hành cácđiều luật cho phép, xác nhận hay khuyến khích việc sử dụng chữ ký số Các nước kháccũng thông qua những đạo luật và quy định và cả Liên hợp quốc cũng có những dự ánđưa ra những bộ luật mẫu trong vấn đề này Tuy nhiên, các quy định này lại thay đổitheo từng nước trùy theo điều kiện và trình độ khoa học (mật mã học) Chính sự khácnhau này làm bối rối những người sử dụng tiềm năng, gây khó khăn cho việc kết nốigiữa các quốc gia và do đó làm chậm lại tiến trình phổ biến chữ ký số

1.2 Nguyên lý hoạt động của chữ ký số

Để thực hiện được chữ ký số, người ta xây dựng trên cơ sở kết hợp mã hóa khóacông khai với hàm băm như được mô tả trong hình dưới đây

Trang 16

Hình 1 1 Biểu diễn sơ đồ từng bước của quá trình tạo chữ ký và xác minh thuật toán

Chữ ký số tổng quát.

Bên gửi cần tạo chứ ký số cho thông điệp (văn bản cần ký) Đầu tiên bên gửi sẽbăm thông điệp bằng hàm băm không khóa, khi đó ta được một mã băm đầu ra, mãbăm này được mã hóa bằng một hệ mật khóa công khai bằng khóa bí mật của bên gửi.Kết quả ta thu được chữ ký số của A Cuối cùng chữ ký này được ghép với thông điệp

và chuyển cho người nhận

Bên người nhận tiến hành kiểm tra chữ ký số bằng cách:

 Tách chữ ký số ra khỏi thông điệp

 Dùng khóa công khai của bên gửi để giải mã chữ ký thu được hàm băm củathông điệp khi chưa mã hóa với khóa bí mật

 Tiến hành băm thông điệp gốc theo đúng thuật toán của bên gửi để thu được mãbăm của thông điệp nhận được

 Tiến hành so sánh 2 hàm băm đó để xác thực chữ ký và thông điệp có hợp lệkhông

Trang 17

Qua sơ đồ chữ ký số ta nhận thấy rằng việc sử dụng hàm băm để xác thực nộidung thông điệp, còn hệ mật khóa công khai dùng để xác thực chủ thể đã ký văn bản

thông điệp cần phải được mã hóa bằng hàm băm sau đó sử dụng khóa bí mật của

người chủ sở hữu để mã hóa, khi đó ta được chữ ký số Khi cần kiểm tra, người nhận

sẽ sử dụng khóa công khai để giải mã thông điệp để ra hàm băm của bản ký Sau đó kiểm tra với hàm băm của văn bản nhận được Nếu 2 giá trị băm này khớp nhau thì bên nhận có thể tin tưởng chữ ký được ký bởi người sở hữu khóa bí mật

1.3.2 Tính toàn vẹn của thông điệp

Cả 2 bên tham gia trao đổi chữ ký số đều có thể tin tưởng rằng văn bảo khôngthể bị sử đổi, bởi vì khi văn bản bị sử đổi, nội dung hàm băm cũng sẽ bị thay đổi ngaylập tức Quá trình truyền đi không thẻ tránh được việc bên thứ 3 có thể sử đổi vàotrong văn bản truyền đi Việc ký số sẽ đảm bảo tính toàn vẹ cho văn bản gửi đi

1.3.3 Tính không thể phủ nhận

Trong giao dịch bên nhận có thể từ chối trách nghiệm với chính văn bản domình gửi đi Để ngăn ngừa khả năng này, bên nhân có thể yêu cầu bên gửi gửi kèmtheo chữ ký số với văn bản Khi có tranh chấp, bên nhận sẽ sử dụng chữ ký này nhưmột bằng chứng cho bên thứ 3 giải quyết tranh chấp Nhưng tuy nhiên khóa bí mật vẫn

có thể bị lộ nên tính không thể phủ nhận không được đáp ứng hoàn toàn[5]

1.4 Ứng dụng chữ ký số trong thực tế

Nhằm đảm bảo an toàn cho những giao dịch điện tử, nên sử dụng chữ ký số làcần thiết Chữ ký số được sử dụng để bảo đảm tính toàn vẹn, tính chống chối bỏ củacác thông tin giao dịch trên mạng Internet Chữ ký số tương đương với chữ ký tay nên

Trang 18

có giá trị sử dụng trong các ứng dụng giao dịch điện tử với máy tính và mạng Internetcần tính pháp lý cao.

Tại Việt Nam hiện nay, chữ ký số có thể sử dụng cho các giao dịch như muahàng trực tuyến, chuyển tiền ngân hàng, thanh toán trực tuyến Hơn nữa Bộ Tài Chínhcũng đã áp dụng ứng dụng chữ ký số vào kê khai thuế, nộp thuế trực tiếp qua mạngInternet

Với việc sắp tới Chính Phủ sẽ làm việc với người dân hoàn toàn toàn trựctuyến, nên có thể trong tương lai chữ ký số sẽ có thể sử dụng với các ứng dụng củachính phủ khi làm thủ tục hành chính hay một sự xác nhận với cơ quan nhà nước

Đối với dịch vụ chứng thực chữ ký số công cộng chỉ có thể sử dụng trong cácgiao dịch điện tử liên quan đến người sử dụng cá nhân và tổ chức, doanh nghiệp, trongcác giao dịch giữa người dân, doanh nghiệp với các cơ quan nhà nước Riêng các giaodịch nội bộ của các cơ quan nhà nước hoặc giữa các cơ quan nhà nước với nhau là cácgiao dịch đặc thù, không dùng được hệ thống chứng thực công cộng mà phải dùng hệthống riêng[6]

Tính tới thời điểm ngày 13/6/2019 đã có 12 công ty được cấp phép cung cấpchữ ký số trên thị trường[7] Chữ ký số thường được lưu trong các USB token của nhàcung cấp Nhà cung cấp sẽ cung cấp chứng chỉ và chữ ký số cho người dùng và bánchữ ký đó theo các gói từ 1 đến 3 năm

Trang 19

Hình 1 2 Hình ảnh USB token của nhà cung cấp Viettel.

1.5 Sự nổi bật của thuật toán chữ ký số ECDSA với RSA

Chữ ký số hiện đang thay thế công việc trên giấy tờ để giúp cuộc sống củakhách hàng và nhân viên trong cách ngành khác nhau trở nên dễ dàng hơn RSA vàElliptic Curve CrCryptography (ECC) là các thuật toán nghiêm ngặt về bảo mật được

sử dụng cho các thuật toán mật mã khóa công khai Ngày nay, ECDSA (Thuật toánchữ ký số trên đường cong Elliptic) đang trở nên phổ biến hơn thuật toán RSA vì hiệusuất của ECDSA tốt hơn Ưu điểm chính của ECC so với RSA là trong khi ECC cungcấp cùng mức độ bảo mật nhưng với chi phí và kích thước khóa thấp hơn so với RSA.Dưới dây sẽ trình bày ngắn gọn về hiệu suất của RSA với ECDSA trong các khía cạnhkhác nhau như thời gian, bảo mật và năng lượng tiêu thụ Và sẽ cho thấy lý do tại saoECC đã và đang trở thành xu hướng được sử dụng mới nhất trong hiện tại và tươnglai[1]

1.5.1 Chữ ký số dựa trên RSA

Thuật toán chữ ký số RSA là một thuật toán khóa bất đối xứng được sử dụng để

ký tài liệu Quy trình gồm 3 bước: Sinh khóa RSA, Sinh chữ ký RSA, Xác thực chữ kýRSA

a) Sinh khóa RSA:

Trang 20

Bước đầu tiên, hàm sinh khóa RSA xuất ra cặp khóa công khai và khóa bí mậtcho người gửi với khóa bí mật là (d) và khóa công khai (e) Các bước bao gồm nhưsau:

BƯỚC 1: Lấy hai số nguyên tố phân biệt rất lớn là a và b sao cho chúng khác

BƯỚC 1: Lấy thông điệp m.

BƯỚC 2: Tạo mã băm của thông điệp m, h = H (m).

BƯỚC 3: Tạo chữ ký điện tử bằng khóa riêng [d, n] S = h.d mod n.

BƯỚC 4: Gửi thông điệp có chữ ký [m, S].

Hình 1 3 Quy trình sinh chữ ký RSA được sử dụng ký lên văn bản.

c) Xác thực chữ ký RSA

BƯỚC 1: Chấp nhận [m, S].

BƯỚC 2: Lấy khóa công khai [e, n].

Trang 21

BƯỚC 3: Tạo mã băm từ thông điệp: h1 = S e mod n

BƯỚC 4: Chỉ chấp nhận nếu h1 = h.

Hình 1 4 Triển khai từng bước của Thuật toán xác minh chữ ký RSA.

1.5.2 Chữ ký số dựa trên ECC

Thuật toán chữ ký số trên đường cong Elliptic (ECDSA) là một cách tiếp cầnhoạt động theo cách tương tự như chữ ký số RSA, nhưng với kích thước khóa nhởhơn Nó sử dụng phương trình đường cong Elliptic để mã hóa thông điệp và sau đóđính kèm chữ ký lên đó để đảm bảo tài liệu an toàn trước việc sửa đổi trái phép.ECDSA phụ thuộc vào đường cong Elliptic trong bài toán logarit rời rạc (ECDLP)[4]

Nó được định nghĩa: Cho các tham số miền đường cong Elliptic và một số điểm

trên đường cong Elliptic P ∈ E (Fp), tìm số nguyên ngẫu nhiên và duy nhất k, 0 ≤ k≤

n, sao cho P = kG, trong đó n là bậc của Đường cong Elliptic và G là điểm sinh.

a) Sinh cặp khóa bằng thuật toán ECDSA:

BƯỚC 1: Chọn ngẫu nhiên một số nguyên phân biệt d trong khoảng [1, n-1] BƯỚC 2: Tìm Q = d.G (trong đó d là Khóa riêng của người gửi)

BƯỚC 3: Khóa công khai của người gửi bao gồm (E, G, n, Q)

b) Tạo chữ ký sử dụng ECDSA:

Trang 22

BƯỚC 1: Chọn một số nguyên k riêng biệt và ngẫu nhiên trong khoảng [1, 1].

n-BƯỚC 2: Xác định kG = (x, y), với x là số nguyên.

BƯỚC 3: Xác định R = x mod n; Nếu R = 0, lặp lại các bước với giá trị khác nhau của k.

BƯỚC 4: Xác định h = H (m), trong đó H là hàm băm.

BƯỚC 5: Xác định s = k−1 (h + dr) mod n; Nếu s = 0 thì chuyển sang bước 1 BƯỚC 6: Chữ ký cho thông điệp m là (r, s).

Hình 1 5 Sơ đồ quá trình tạo chữ ký ECDSA

c) Xác thực chữ ký số sử dụng ECDSA:

BƯỚC 1: Lấy khóa công khai của người gửi (E, q, n, Q)

BƯỚC 2: Xác minh rằng các giá trị r và s nằm trong khoảng [1, n-1]

Trang 23

BƯỚC 8: Xác định V = x1 mod n

BƯỚC 9: Chỉ chấp nhận khi và chỉ khi V = R

Hình 1 6 Sơ đồ xác thực chữ ký ECDSA

1.5.3 So sánh các kết quả thử nghiệm

 Thuật toán chữ ký số ECDSA hoạt động tốt hơn về việc tạo khóa

 Không có nhiều sự khác biệt về thời gian giữa RSA và ECC trong quá trình tạochữ ký số cho tới khi kích thước khóa tăng lên thì ECC cho thấy hiệu quả tốthơn RSA

 Chỉ một số tham số của RSA vượt trội hơn ECC nhất là trong quá trình xácminh chữ ký

Các thông số trong các bảng dưới đây sẽ cho ta thấy tổng thời gian cần thiết để

ký và xác minh tài liệu được ký điện tử bằng chữ ký điện tử dựa trên RSA vàECDSA

a) Quá trình sinh khóa

Bảng 1 1 So sánh thời gian sinh khóa của RSA và ECDSA

Độ dài khóa (bit) Thời gian (s)

Trang 24

3072 283 9.80 0.27

Hình 1 7 Biểu đồ thời gian sinh khóa của RSA

Hình 1 8 Biểu đồ thời gian sinh khóa của ECC

b) Sinh chữ ký

Trang 25

Bảng 1 2 So sánh thời gian ký số của RSA và ECDSA

Độ dài khóa (bit) Thời gian (s)

Trang 26

Hình 1 10 Biểu đồ thời gian sinh chữ ký của ECC

c) Xác thực chữ ký

Bảng 1 3 So sánh thời gian xác thực chữ ký số của RSA và ECDSA

Độ dài khóa (bit) Thời gian (s)

Trang 27

Hình 1 11 Biểu đồ thời gian xác thực chữ ký số của RSA

Hình 1 12 Biểu đồ thời gian xác thực chữ ký số của ECC

1.5.4 Kết luận và đánh giá sự phát triển trong tương lai.

Từ các nghiên cứu trên, chúng ta có thể kết luận rằng thuật toán chữ ký sốECDSA tốt hơn RSA về khả năng tạo khóa cũng như tạo chữ ký trong khi về việc xácthực chữ ký, RSA vượt trội hợn ECDSA Do đó, RSA vẫn là một lựa chọn tốt hơn khiviệc xác thực chữ ký phổ biến hơn việc tạo khóa và tạo chữ ký Hơn nữa, ECDSA cầnkích thước khóa bé hơn so với RSA trong khi có cùng mức độ bảo mật tương tự nhau,

Trang 28

vì vậy RSA được ưu tiên hơn trong các ứng dụng sử dụng tài nguyên hạn chế như thểthông minh và hệ thống nhúng Đã có một số cuộc tấn công vào ECDSA như Pollard’sRho và Pohlig-Hellman nhưng nó rất chậm so với các cuộc tấn công vào RSA Trongtương lai người ta có thể được thực hiện theo hướng làm cho ECDSA an toàn hơnbằng cách áp dụng số học phức tạp hơn trong ECC[8].

Trang 29

CHƯƠNG 2: CHỮ KÝ SỐ DỰA TRÊN ĐƯỜNG CONG ELLIPTIC

2.1 Tổng quan về hàm băm

2.1.1 Hàm băm là gì

Hàm băm là các giải thuật để tạo ra các bản tóm tắt của thông điệp, thường

được sử dụng để nhận dạng và đảm bảo tính toàn vẹn của thông điệp Độ dài của thôngđiệp là bất kỳ, nhưng đầu ra thường có độ dài cố định

2.1.2 Tính chất của hàm băm

Hàm băm là một ánh xạ h(x) thoả mãn 2 tính chất chính:

Tính chất nén: h sẽ ánh xạ một dữ liệu đầu vào x có độ dài bit hữu hạn tuỳ

ý với một đầu ra h(x) có độ dài bit m hữu hạn.

Tính dễ dàng tính toán: với h cho trước và một đầu vào x, có thể dễ dàng tính được h(x)[9].

Bên cạnh các tính chất cô hữu trên hàm băm còn có các tính chất sau:

Tính trung độ: Theo định lý Diricle thì nếu có (n+1) con thỏ được bỏ vào

n cái chuồng thì phải tồn tại ít nhất một cái chuồng mà trong đó có ít nhất

2 con thỏ ở chung Rõ ràng với không gian giá trị băm nhỏ hơn nhiều so với không gian thông điệp về mặt kích thước thì chắc chắn sẽ tồn tại đụng

độ, tức là có hai tin x khác x' có giá trị băm giống nhau, khi đó h(x) = h(x')

 Tính chất hàm băm không va chạm yếu:

Hàm băm h là không va chạm yếu nếu khi cho trước một bức điện x, không thể tiến hành về mặt tính toán để tìm ra một bức điện x' khác x mà có h(x) = h(x')

 Tính chất hàm băm không va chạm mạnh:

Hàm băm h là không va chạm mạnh nếu không có khả năng tính toán để tìm ra

hai bức thông điệp x và x' mà x khác x' và h(x) = h(x')

 Tính chất hàm băm một chiều:

Hàm băm h là một chiều nếu khi cho trước một bản tóm lược của thông báo z, không thể thực hiện về mặt tính toán để tìm được bức điện x sao cho h(x) = z[10]

Trang 30

2.1.3 Hàm băm SHA-256

SHA-256 là Thuật toán băm bảo mật 256bit và dùng để tạo ra các hàm băm

không thể đảo ngược và duy nhất Số lượng hàm băm có thể có càng lớn, thì xác suất

để hai giá trị sẽ tạo ra cùng một giá trị băm càng nhỏ SHA-256 được sử dụng rộng rãi cho chữ ký số, và cũng góp phần vào sự thành công của các công nghệ như

Blockchain nói chung và đồng tiền ảo Bit Coin nói riêng

SHA-256 là một trong những hàm băm kế thừa của SHA-1 được gọi chung là

SHA-2, là một trong những hàm băm mạnh nhất hiện tại SHA-256 không phức tạp hơn nhiều so với thuật toán băm SHA-1 và chưa thể bị phá theo bất kỳ cách nào Nó được định nghĩa theo tiêu chuẩn NIST[11]

Tính chất của SHA-256:

Đối với một giá trị nhất định được tạo nên bởi một trong những thuật toán SHA, việc tính toán là không khả thi để:

 Tìm một thông điệp tương ứng với thông điệp đã được mã hóa

 Tìm được hai đoạn dữ liệu khác nhau có cùng kết quả băm[12]

2.2 Kiến thức cơ sở về đường cong Elliptic

2.2.1 Tổng quan về đường cong Elliptic

Hệ mật mã hoá khoá công khai dựa trên việc sử dụng các bài toán khó giải quyết

về số lượng phép tính cần để tìm ra lời giải cho bài toán là rất lớn Có rất nhiều bài

toán được đề xuất nhưng hiện tại chỉ còn 2 bài toán còn tồn tại bền vững tới thời điểm hiện tại bài toán Logarit rời rạc (discrete logarithhm problem) và bài toán phân tích thừa số của số nguyên

Năm 250 sau Công nguyên, Diophant khi giải bài toán tìm số tầng của tháp các quả cầu mà khi trải ra mặt đất có thể xếp thành một hình vuông đã dẫn đến giải

phương trình (y là số quả cầu trên 1 cạnh hình vuông; x là số tầng của tháp):

y2 = 12 +22 + 32 + · · · + x2 = x(x +1)(2 x+1)6

Trang 31

Phương trình y2 = x(x + 1)(2x + 1)/6 là một dạng của đường cong Elliptic Năm

1637, nhà toán học và vật lý học người Pháp Pierre de Fermat công bố định lý Fermat cuối cùng khi viết trên lề bản copy công trình của Diophant: Phương trình sau đây là

vô nghiệm:

x n + y n = z n , n > 2

Hơn ba thế kỷ, đã có rất nhiều nhà toán học cố gắng chứng minh định lý này

xong đều thất bại, mãi cho đến năm 1994, Andrew Wiles, giáo sư trường Princeton đã gây một tiếng vang lớn trong cộng đồng toán học thế giới vào thời điểm đó khi sử

dụng đường cong Elliptic có dạng y2 = x(x − a n )(x + b n ) cùng với lý thuyết về Modul

để chứng minh định lý Fermat cuối cùng[13]

Trong lĩnh vực mật mã, vào năm 1985, Victor S Miller công bố bài báo đầu tiên

về ứng dụng đường cong EC trong mật mã “Use of Elliptic Curves in Cryptography”

và sau đó là Neal Koblitz với “Elliptic curve cryptosystem” vào năm 1987 Từ đó cho đến nay đã có rất nhiều công bố nghiên cứu về EC về lý thuyết và trong thực tiễn càng ngày ứng dụng ECC càng được sử dụng rộng rãi

Một số điểm khác biệt của đường cong Elliptic trên trường hữu hạn với các bài toán khác:

 Tính bảo mật: Tính bảo mật của đường cong Elliptic dựa trên độ phức tạp của bài toán logarithm rời rạc trong hệ thống đại số Không giống như các bài toán logarithm khác, bài toán logarithm rời rạc trên đường cong Elliptic chưa có

thuật toán nào có thời gian thực hiện nhỏ hơn cấp lũy thừa

 Số hữu hạn các điểm: đường cong Elliptic phân bố trên trường hữu hạn sẽ có hữu hạn các điểm, điều này khác hoàn toàn trên trường số thực Do khi trên

trường số thực, đường cong chứa một số điểm rời rạc mà khi nối lại thì đồ thị sẽkhông rõ ràng là đường cong Bên cạnh đó, các quy luật đại số khi tình toán đều

có thể được chuyển về các đường cong Elliptic trên trường hữu hạn

 Tính toán: Các phép toán của đường cong Elliptic trên trường hữu hạn không chứa lỗi làm tròn – một đặc tính quan trọng yêu cầu cho một hệ thống mã hóa

Trang 32

Ưu điểm của hệ mật sử dụng đường cong Elliptic (ECC) là có độ dài khóa nhỏ (160bit tương đương với khóa độ dài 1024 Bit trong hệ mật RSA), do sử dụng độ dài khóa nhỏ nên tài nguyên phục vụ cho ECC thường nhỏ hơn rất nhiều, bên cạnh đó hiệunăng tính toán cũng được nâng cao rõ rệt Hiện nay ECC đang là xu thế để thay thế cho RSA

Hạn chế lớn nhất hiện nay của ECC là việc chọn sử dụng các tham số đường

cong và điểm quy ước chung như thế nào để đạt được độ bảo mật cần thiết Hầu hết các đường cong được đưa ra đều thất bại khi áp dụng vào thực tiễn Do đó hiện nay số lượng đường cong thật sự được sử dụng không được phong phú NIST đề xuất một số đường cong Elliptic đã được kiểm định là an toàn để đưa vào sử dụng thực tế trong tài liệu FIPS 186-2 Ngoài ra, đối với các tham số mang giá trị nhỏ, mức độ bảo mật của ECC không bằng RSA Đối với một số trường hợp, RSA vẫn là lựa chọn tốt do RSA

đã chứng minh được tính ổn định trong một khoảng thời gian khá dài[9]

2.2.2 Cộng các điểm trên đường cong Elliptic

Xét 2 điểm P1=(x1+y1)và P2=(x2+y2)trên đường cong Elliptic E:

y2+a1xy +a3y=x3+a2x2+a4x+a6.Phép cộng giữa hai điểm trên đường cong E được địnhnghĩa như sau:

P3(x3, y3)=P1(x1, y1)+P2(x2, y2)

Trong đó P3(x3, y3)=−P3(x3, y '

3)là giao điểm của đường cong E và đường thẳng điqua P1v à P2.Vì 2 điểm P3(x3, y3)v à−P3(x3, y '

3)đều nằm trên đường cong E nên

P3(x3, y3)v à−P3(x3, y '3)phải thỏa mãn phương trình y2+a1xy +a3y=x3+a2x2+a4x+a6 Công thức để tính các giá trị ( x3, y3) sẽ được chứng minh ở dưới đây.

Trang 33

Hình 2 1 Cộng hai điểm trên đường cong Elliptic.

Đường thẳng đi qua 2 điểm P1v à P2có phương trình là: y = λx + µx + µ

Trong đó λ là hệ số góc của đường thẳng đi qua P1, P2 Ta có:

Trang 34

Khi đó x1=x2v à y1=y2do đó công thức tính λ không sử dụng được vì xuất hiện phép chia số 0 Trong trường hợp này λ chính là hệ số góc của đường thẳng tiếp tuyến đường cong E tại P1h ay P2 K h i đó ta c ó :

Hình 2 2 Phép nhân đôi trong đường cong Elliptic.

Như vậy trong tất cả các trường hợp điểm P3 là tổng của 2 điểm P1, P2 sẽ là điểm có tọa độ là

P3(x3, y3)=(λ2

x1−x2+a1λ−a2,− y1+λ(x1−x3)−a1x3−a3)

2.2.3 Nhân vô hướng các điểm trên đường cong Elliptic

Với n ∈ N \ {0} định nghĩa phép nhân vô hướng của điểm P nằm trên đường cong

E là phép cộng n lần chính bản thân điểm P:

Trang 35

Một số điểm cần lưu ý:

 Không tồn tại phép nhân 2 điểm trên đường cong E, có nghĩa là không tồn tại P

× Q với P, Q ∈ E

Không tồn tại thuật toán chia vô hướng Q: n Biết rằng Q = nP, bài toán tìm số

n là bài toán Logarithm rời rạc Đây là bài toán khó, thông thường phải thử lần lượt n = 1, 2, , n − 1 phép cộng điểm P, cho đến khi tổng bằng Q, tuy nhiên

có một số thuật toán tối ưu hơn để tìm n nhưng vẫn không thể giải được bài

toán này trong thời gian đa thức vì thế dựa vào độ khó này có thể xây dựng ra

hệ mật đường cong Elliptic với các giao thức cho mã hóa, xác thực và trao đổi khóa

2.2.4 Đường cong hữu hạn trên trường F q

q là một số nguyên tố hoặc có dạng q = p m với p là một số nguyên tố và m là một

số nguyên dương Khi này p được gọi là đặc số char(q) = p và m là bậc mở rộng của Fq.

Trang 36

Đường cong E trên trường hữu hạn F2m là đường cong có các hệ số thuộc trường

F2m , đường cong này có chút khác biệt so với trên Fq: y2+xy= x3+ax=b với a,b,x,y ∈

F2m

Hình 2 3 Đường cong E trên trường hữu hạn F2m

Trong thực tế và đặc biệt trong các thiết bị phần cứng, người ta thường sử dụng trường hữu hạn F2m Khi đó phép cộng trong trường này đơn giản chỉ là phép toán

XOR (Exclusive OR) Nhiều tài liệu cho thấy làm việc với F2m hiệu quả hơn 40% so với làm việc với trường Fq Trường F2m thường được biểu diễn dưới dạng tổ hợp tuyến tính của các vector gồm m phần tử {α0, α1, , αm−1}, mọi phần tử α ∈ F2m đều có thể

được biển diễn dưới dạng:

α = a0α0 + a0α0 + + am-1αm-1, ai ∈ {0,1}

Có nhiều phương pháp để xây dựng cơ sở của F2m: đa thức cơ sở và cơ sở chuẩntắc Các thuật toán để thực hiện các phép toán trên EC có thể tìm thấy trong[14]

2.2.4.2 Đa thức cơ sở

Xét đa thức f(x) = x m + fm−1x m−1 + + f2x 2 + f1x + f0 (với fi ∈ F2,i = 0, , m−1) là một đa thức bất khả quy bậc m trên trường F2, nghĩa là không thể phân tích f(x) thành các đa thức thừa số khác có bậc nhỏ hơn m f(x) gọi là đa thức rút gọn Trường hữu hạn

F2m sẽ là tập tất cả các đa thức trên F2có bậc nhỏ hơn hoặc bằng m.

Trang 37

F2m = {am-1x m−1 + + a2x 2 + a1x + a0: ai ∈ {0,1}}

Các phần tử (am−1x m−1 + +a2x 2 +a1x+a0) thường được biểu diễn dưới dạng chuỗi bit (am−1 a1a0) có độ dài là m.

Các phép toán trong trường F2m:

a i β2i , a i ∈{0,1}và cũng được biểu diễn dưới dạng chuỗi bit (a0a1

am−1) có độ dài là m Với cơ sở này phép bình phương sẽ thực hiện rất đơn giản chỉ

bằng cách quay bit Các phép toán trong trường F2m:

Trang 38

2.2.4.4 Tổng số điểm của đường cong Elliptic trên trường hữu hạn Fq

E là đường cong Elliptic trên trường Fq, bởi vì cặp (x,y) với x,y ∈ Fq là hữu hạn

do đó nhóm E(Fq) cũng sẽ là nhóm hữu hạn Các giá trị x,y là các số nguyên, dễ dàng nhận thấy không phải với mọi giá trị x đều tìm được giá trị nguyên y bởi vì không phải bao giờ y2 cũng là một số nguyên dương Xác định số điểm trên đường cong E nhằm

xác định không gian khóa của hệ mật

Với E là đường cong Elliptic trên trường Fq, và #E(Fq) là tổng số điểm trên

đường cong đó

Ta có ánh xạ Probenius được định nghĩa như sau:

φq(x,y) = (x q ,y q ), φq(∞) = ∞ Khi đó số điểm trên đường cong E sẽ là:

#E(Fq) = deg(φq − 1) [13].

2.3 Ứng dụng của đường cong elliptic trong chữ ký số

2.3.1 Quá trình sinh khoá

Người gửi muốn gửi một thông điệp có chữ ký cho người nhận Ban đầu, họ phải đồng ý với nhau các tham số đường cong (CURVE, G, n) Ngoài các trường và

phương trình của đường cong, cần điểm cơ sở G; n là bậc của điểm G Người ký sẽ

chọn số d làm khóa bí mật và tạo ra khóa công khai là Q A = d A G

Trang 39

Bước 1: Chọn số ngẫu nhiên d trong khoảng [1, n-1] làm khóa bí mật

Bước 2: Tính Q A = d A G làm khóa công khai.

2.3.2 Thuật toán ký trên bản rõ

Người gửi sử dụng hàm băm H để tạo ra giá trị tóm lược văn bản e của văn bản

m Chữ ký số sẽ là cặp (r, s) được tính theo các bước như sau[9]:

Bước 1: Tính e = HASH(m), với HASH là hàm băm, ví dụ như SHA-256 Bước 2: Cho z bằng L n bit trái nhất của e, với L n là độ dài bit của n

Bước 3: Chọn một số nguyên ngẫu nhiên k trong khoảng [1, n-1]

Bước 4: Tính điểm C ( x1, y1¿=k G

Bước 5: Tính r = x1 mod n Nếu r = 0, quay lại bước 3

Bước 6: Tính s = k−1 (z + r d A )mod n Nếu s = 0 thì quay lại bước 3

sau[9]:

Bước 1: Kiểm tra r và s có thuộc khoảng [1, n-1] hay không

Bước 2: Tính e' = HASH(m'), với HASH là hàm băm

Bước 3: Cho z' bằng L n bit trái nhất của e

Bước 4: Tính w = s−1 mod n

Ngày đăng: 30/01/2021, 11:04

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] D. Toradmalle, R. Singh, H. Shastri, N. Naik, and V. Panchidi, “Prominence of ECDSA over RSA digital signature algorithm,” Proc. Int. Conf. I-SMAC (IoT Soc. Mobile, Anal. Cloud), I-SMAC 2018, pp. 253–257, 2019 Sách, tạp chí
Tiêu đề: Prominence ofECDSA over RSA digital signature algorithm,” "Proc. Int. Conf. I-SMAC (IoTSoc. Mobile, Anal. Cloud), I-SMAC 2018
[2] Nacencomm, “Lịch sử chữ ký số,” 2019. [Online]. Available:https://www.nacencomm.vn/tin-tuc/lich-su-chu-ky-so. [Accessed: 16-Oct-2020] Sách, tạp chí
Tiêu đề: Lịch sử chữ ký số
[3] J. Doerner, Y. Kondi, E. Lee, and A. Shelat, “Threshold ECDSA from ECDSA Assumptions: The Multiparty Case,” Proc. - IEEE Symp. Secur. Priv., vol. 2019- May, pp. 1051–1066, 2019 Sách, tạp chí
Tiêu đề: Threshold ECDSA from ECDSAAssumptions: The Multiparty Case,” "Proc. - IEEE Symp. Secur. Priv
[4] L. Angrisani, P. Arpaia, F. Bonavolonta, and A. Cioffi, “Experimental test of ECDSA digital signature robustness from timing-lattice attack,” I2MTC 2020 - Int. Instrum. Meas. Technol. Conf. Proc., pp. 1–6, 2020 Sách, tạp chí
Tiêu đề: Experimental test ofECDSA digital signature robustness from timing-lattice attack,” "I2MTC 2020 -Int. Instrum. Meas. Technol. Conf. Proc
[5] S. M. Farooq, S. M. Suhail Hussain, and T. S. Ustun, “Elliptic Curve Digital Signature Algorithm (ECDSA) Certificate Based Authentication Scheme for Advanced Metering Infrastructure,” 2019 Innov. Power Adv. Comput. Technol. i- PACT 2019, pp. 1–6, 2019 Sách, tạp chí
Tiêu đề: Elliptic Curve DigitalSignature Algorithm (ECDSA) Certificate Based Authentication Scheme forAdvanced Metering Infrastructure,” "2019 Innov. Power Adv. Comput. Technol. i-PACT 2019
[6] Dailythuecongminh.com, “Ứng dụng chữ ký số,” 2019. [Online]. Available:https://dailythuecongminh.com/chu-ky-so-va-nhung-ung-dung/. [Accessed: 16- Oct-2020] Sách, tạp chí
Tiêu đề: Ứng dụng chữ ký số
[8] X. Yang, M. Li, L. Wei, and Y. Han, “New ECDSA-verifiable multi-receiver generalization signeryption,” Proc. - 10th IEEE Int. Conf. High Perform.Comput. Commun. HPCC 2008, pp. 1042–1047, 2008 Sách, tạp chí
Tiêu đề: New ECDSA-verifiable multi-receivergeneralization signeryption,” "Proc. - 10th IEEE Int. Conf. High Perform."Comput. Commun. HPCC 2008
[11] movable-type, “SHA-256 Cryptographic Hash Algorithm,” 2019. [Online].Available: https://www.movable-type.co.uk/scripts/sha256.html Sách, tạp chí
Tiêu đề: SHA-256 Cryptographic Hash Algorithm
[13] Đặng Minh Tuấn, “Hệ mật mã hóa khóa công khai dựa trên đường cong elliptic,” p. 41, 2016 Sách, tạp chí
Tiêu đề: Hệ mật mã hóa khóa công khai dựa trên đường congelliptic
[17] J. Doerner, Y. Kondi, E. Lee, and A. Shelat, “Secure Two-party Threshold ECDSA from ECDSA Assumptions,” Proc. - IEEE Symp. Secur. Priv., vol.2018-May, pp. 980–997, 2018 Sách, tạp chí
Tiêu đề: Secure Two-party ThresholdECDSA from ECDSA Assumptions,” "Proc. - IEEE Symp. Secur. Priv
[18] Mkyong, “Java AES encryption and decryption,” 2020. [Online]. Available:https://mkyong.com/java/java-aes-encryption-and-decryption/#:~:text=TheAdvanced Encryption Standard (AES,%2C 192%2C or 256 bits Sách, tạp chí
Tiêu đề: Java AES encryption and decryption
[19] M. M. H. Shohag, “RealPathUtil.java,” 2020. [Online]. Available:https://gist.github.com/ImaginativeShohag/476a5ba87824f6e036f6bce10e229079 Sách, tạp chí
Tiêu đề: RealPathUtil.java
[20] mkyong, “Java – How to save byte[] to a file,” 2020. [Online]. Available:https://mkyong.com/java/how-to-convert-array-of-bytes-into-file/ Sách, tạp chí
Tiêu đề: Java – How to save byte[] to a file

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w