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

Đường Cong Elliptic Và Ứng Dụng Trong Blockchain Báo Cáo Bài Tập Lớn An Toàn Phần Mềm Và Hệ Thống.pdf

25 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO BÀI TẬP LỚN

Môn học: An toàn phần mềm và hệ thốngGiảng viên hướng dẫn: PGS Nguyễn Khanh VănHọc viên: Hoàng Việt Bách – 20212236M

Hà Nội – 2022

Trang 2

Hệ mật trên đường cong Elliptic và ứng dụngtrong Blockchain

Để giải quyết tình hình trên, các vấn đề liên quan đến an toàn và bảo mật trở nênquan trọng hơn bao giờ hết Các ý tưởng về an toàn, bảo mật dẫn đến sự pháttriển của ngành mật mã học Kỹ thuật này đã có từ xa xưa nhưng thời điểm đó nócòn rất thô sơ, ngày nay khi mạng máy tính trở nên phổ biến, người ta sử dụng mậtmã học hiện đại Các chuyên gia trong lĩnh vực này đã nghiên cứu, phát minh ranhiều hệ mật mã khác nhau với mục đích che dấu thông tin để tránh việc kẻ xấu cốtình đánh cắp, phá hoại, ví dụ như RSA, Elgamal,… Các phương pháp này rất antoàn, tuy nhiên độ dài khóa lớn nên trong một vài trường hợp nhất định sẽ khôngthể đáp ứng được.

Hiện nay, hệt mật trên đường cong Elliptic (Elliptic Curve Cryptography, viết tắtlà ECC) là một trong những loại mật mã mạnh nhất hiện nay Phương pháp nàyđược sử dụng rộng rãi trong nhiều công ty tại Mỹ, như CloudFlare, đã sử dụngrộng rãi phương pháp đường cong Elliptic để bảo mật trên nhiều phương diện, từcác kết nối Https đến cách thức chuyển dữ liệu giữa các trung tâm dữ liệu Đặcbiệt, ECC được ứng dụng rất nhiều trong Blockchain.

Từ khóa: Đường cong Elliptic; ECC

Trang 3

I CƠ SỞ LÝ THUYẾT1 Hệ mật mã

Mật mã là một lĩnh vực khoa học chuyên nghiên cứu về các phương pháp và kỹthuật đảm bảo an toàn và bảo mật trong truyền tin liên lạc với mục đích đảm bảocác thế lực thù địch không thể ăn cắp thông tin để lợi dụng, phá hoại.

Một hệ mật mã bao gồm 4 thành phần cơ bản:

- Bản rõ (hay plaintext, là thông tin ở dạng đọc được)

- Thuật toán mã hóa (là một phép biến đổi với bản rõ là đầu vào, sử dụng mộtkhóa để cho ra một bản mã)

- Bản mã (hay ciphertext, là thông tin ở dạng không thể đọc được)

- Thuật toán giải mã (là phép biến đổi cho phép người nhận thu được bản rõ từbản mã bằng cách sử dụng một khóa)

Mục đích của mật mã là làm cho kẻ thù không thể tái tạo lại bản rõ từ bản mã.Hệ mật mã có khóa dùng chung cho cả thuật toán mã hóa và giải mã gọi là hệ mậtmã đối xứng, còn hệ mật mã có khóa dùng cho thuật toán mã hóa khác với khóadùng cho thuật toán giải mã gọi là hệ mật mã khóa phi đối xứng, hay còn gọi là hệmật mã khóa công khai

2 Hệ mật mã khóa đối xứng

Hệ mật má khóa đối xứng hay hệ mật mã khóa bí mật, là mô hình mà trong đó,khóa của hai thuật toán sinh mã và giải mã là giống nhau và ví mật đối với tất cảngười khác, nói cách khác, hai bên gửi và nhận chia sẻ chung một khóa bí mật duynhất Vai trò của hai bên gửi và nhận giống nhau và có thể hoán đổi vai trò chonhau.

Các thuật toán thông dụng được dùng trong hệ mật mã khóa đối xứng có thể kể đếnnhư DES, AES,…

Trang 4

Ưu điểm:

- Mô hình khá đơn giản

- Dễ dàng tạo ra thuật toán mã hóa đối xứng cho cá nhân- Dễ cài đặt, hoạt động hiệu quả

- Hoạt động nhanh do tốc độ mã hóa, giải mã cao

Tuy nhiên, hệ mật mã đối xứng cũng có những nhược điểm lớn như:

- Quản lý khóa: Số lượng khóa bí mật mà mỗi công ty hay cá nhân cần thiếtlập với các đối tác khác có thể khá lớn, do đó việc quản lý lưu trữ gặp nhiềukhó khăn

- Phân phối khóa: nếu hai bên gửi và nhận ở xa nhau và chỉ có thể liên lạc quamột kênh truyền tin thông thường, việc trao đổi khóa có thể bị nghe trộm

3 Hệ mật mã khóa công khai

Vấn đề phát sinh trong các hệ thống mã hóa đối xứng là việc quy ước chung mãkhóa k giữa người gửi A (Alice) và người nhận B (Bob) Trên thực tế, nhu cầu thayđổi nội dung của mã khóa k là cần thiết, do đó, cần có sự trao đổi thông tin về mãkhóa k giữa A và B Để bảo mật mã khóa k, A và B phải trao đổi với nhau trên mộtkênh liên lạc thật sự an toàn và bí mật Tuy nhiên, rất khó có thể bảo đảm được sựan toàn của kênh liên lạc nên mã khóa k vẫn có thể bị phát hiện bởi người C.Một hệ thống khóa công khai sử dụng hai loại khóa trong cùng một cặp khóa: khóacông khai (public key) được công bố rộng rãi và được sử dụng trong mã hóa thôngtin, khóa riêng (private key) chỉ do một người nắm giữ và được sử dụng để giải mãthông tin đã được mã hóa bằng khóa công cộng Các phương pháp mã hóa này khaithác những ánh xạ f mà việc thực hiện ánh xạ ngược f rất khó so với việc thực-1

hiện ánh xạ f Chỉ khi biết được mã khóa riêng thì mới có thể thực hiện được ánhxạ ngược f -1

Trang 5

Khi áp dụng hệ thống mã hóa khóa công cộng, người A sử dụng mã khóa côngcộng để mã hóa thông điệp và gửi cho người B Do biết được mã khóa riêng nên Bmới có thể giải mã thông điệp mà A đã mã hóa Người C nếu phát hiện được thôngđiệp mà A gửi cho B, kết hợp với thông tin về mã khóa công cộng đã được côngbố, cũng rất khó có khả năng giải mã được thông điệp này do không nắm được mãkhóa riêng của B.

3.1 Hệ mật mã RSA

Phương pháp RSA là một phương pháp mã hóa công khai phổ biến hiện nay RSAđược xem là phương pháp an toàn và có khả năng ứng dụng rộng rãi trong các lĩnhvực Dựa vào nền tảng lý thuyết về phân tích thừa số nguyên tố của số nguyên lớn,phương pháp RSA được ứng dụng các mô hình mã hóa, mô hình truyền nhận khóavà mô hình chữ ký điện tử Phương pháp RSA đòi hỏi mỗi thực thể sở hữu một cặpkhóa công khai - khóa riêng để sử dụng cho tất cả mô hình mã hóa.

3.1.1 Khởi tạo khóa RSA

Chọn các tham số:

- Chọn hai số nguyên tố lớn p và q Tính n = pq và m = (n) = (p-1)(q-1)- Chọn e, 1 e m -1, sao cho gcd (e, m) = 1

- Tìm d sao cho e * d = 1 (mod m), tức là tính d = e (mod m)-1

Khóa công khai (Public key) là (e, n) Khoá dùng riêng (Private key) là (d, p, q)

3.1.2 Sử dụng RSA

Để mã hóa bản rõ, người gửi:

- Lấy khóa công khai của người nhận (e, n)

Trang 6

- Tính C = M mod n (trong đó, 0 <= M < n)Để giải mã, người nhận:

- Sử dụng khóa riêng (d, p, q)- Tính M = C mod n (với n = pq)d

3.1.3 An toàn của RSA

Độ bảo mật của RSA dựa vào độ khó của bài toán phân tích một số lớn ra các thừasố nguyên tố.

- Để có thể giải mã cần phải có được các giá trị p, q tạo nên giá trị n

- Với các thuật toán hiện nay, thời gian cần thiết để phân tích một số lớn rathừa số nguyên tố tăng theo hàm mũ với số đó

- Với n đủ lớn, việc giải mã là không dễ ngay cả với các máy tính có tốc độtính toán cực lớn

Như vậy, hệ mật RSA có thể coi là an toàn.

3.1.4 Vấn đề của RSA

Vấn đề chọn p và q:

- p và q phải là những số nguyên tố lớn, ít nhất là 100 chữ số- Độ dài p và q phải xấp xỉ nhau

Tốc độ thuật toán trong cài đặt:

- Nếu so sánh với DES, RSA có tốc độ chậm hơn rất nhiều Trung bình, RSAchậm ít nhất 100 lần khi cài đặt bằng phần mềm và có thể chậm hơn 1000đến 10000 lần khi cài đặt bằng phần cứng (tùy theo cách cài đặt)

- Kích thước của khóa mật lớn hơn rất nhiều

3.2 Hệ mật trên đường cong Elliptic

Trang 7

Hệ mật mã khóa công khai dựa trên việc sử dụng các bài toán khó giải quyết, cácbài toàn này yêu cầu số lượng phép tính cần thiết để tìm ra lời giải là rất lớn Tronglịch sử 20 năm của ngành mã hóa bất đối xứng đã có nhiều đề xuất khác nhau chodạng bài toán như vậy, tuy nhiên chỉ có hai trong số các đề xuất đó còn tồn tại đếnngày nay Hai bài toán đó bao gồm: bài toán logarit rời rạc và bài toán phân tíchthừa số nguyên tố

Năm 1985, Neal Koblitz và Victor S.Miller đã nghiên cứu và đưa ra đề xuất ứngdụng đường cong elliptic trên trường hữu hạn

3.2.1 Cơ sở toán học

Đường cong elip là tập hợp các điểm thỏa mãn một phương trình toán học cụ thể.Phương trình cho một đường cong elip:

y2 = x + Ax + B3

Với điều kiện 4A + 27B # 0.32

Đồ thị được biểu diễn như sau:

Tính chất:

- Đồ thị đối xứng qua trục hoành, vì vậy các điểm nằm trên đường cong khi lấy đốixứng qua Ox vẫn sẽ nằm trên đường cong

- Một đường thẳng bất kỳ có thể cắt đường cong tại tối đa 3 điểm

Dựa trên những tính chất nói trên, người ta đã nghiên cứu và phát hiện ra mộtphương pháp mới cho kỹ thuật mã hóa nói chung và chứng thực nói riêng, kỹ thuậtmã hóa dựa trên đường cong elliptic.

3.2.2 Các phép toán trên đường cong elliptic

Trang 8

Phép cộng

Đường cong Elliptic có một tính chất: "Nếu hai điểm P và Q nằm trên đường cong,thì điểm P+Q cũng sẽ nằm trên đường cong".

Điểm này được xác định như sau:

- Vẽ đường thẳng nối 2 điểm P và Q, đường thẳng này sẽ cắt đường cong tạimột điểm –R = -(P+Q)

- Lấy đối xứng của điểm này qua trục hoành, ta sẽ có được điểm R = P + Q

Chú ý: Nếu 3 điểm trên đường cong Elliptic là thẳng hàng, thì tổng của chúngbằng 0.

Trong trường hợp 2 điểm P và Q trùng nhau, đường thẳng A là tiếp tuyến vớiđường cong tại điểm P Thực hiện tương tự ta được điểm 2P.

Trang 9

Do cách tính toán trên, ta có thể dễ dàng tính toán được phép nhân k*P khibiết k và P, nhưng hoàn toàn không thể tính toán được theo chiều ngược lại, tứcphép chia Đó cũng chính là tính chất đặc trưng của mã hoá bất đối xứng.Đường cong elliptic trên trường hữu hạn có thể được dùng để thực hiện lược đồtrao đổi khóa Diffie-Hellman, ElGamal và chữ ký NIST Những hệ thống này cókhả năng cung cấp tính an toàn tương đương với các hệ mật mã khóa công khaihiện tại nhưng với kích thước khóa nhỏ hơn (Ví dụ như một khóa trên ECC có độdài 160 bit thì tương ứng với khóa có độ dài 1024 bit trong RSA) Việc dùng khóacó kích thước nhỏ hơn sẽ giúp giảm băng thông và bộ nhớ yêu cầu

3.2.3 Bài toán logarith rời rạc trên đường cong elliptic

Độ khó của bài toán logarit rời rác trên đường cong Elliptic (ECDLP) là yếu tốquyết định cho mức độ an toàn của tất cả các lược đồ hệ mật đường cong Elliptic.Định nghĩa: Cho đường cong elliptic E Ta xét một điểm P và một điểm khác T.Bài toán logarigh rời rạc nhằm tìm số nguyên d thỏa mãn:

Hay nói cách khác, d = logPT.Số điểm của EC:

Theo định lý Hass, cho đường cong E modun p, số điểm trên đường cong ký hiệu bởi #E và bị chặn bởi:

Trang 10

Khi đó, #E p Nếu ta cần một đường cong với số điểm 2 , ta phải sử dụng số ≈

nguyên tố cỡ 160 bitTính an toàn:

- Mọi giao thức EC dựa trên tính khó giải của bài toán ECDLP

- Nếu EC được chọn cẩn thận, thuật toán tốt nhất để tính ECDLP cần xấp xỉ √pbước Ví dụ, với p ≈ 2160, kẻ tấn công cần thực hiện ≈ 280 bước.

3.3.3 So sánh giữa hai phương pháp mã hóa RSA và ECC

Mã hóa khóa công cộng dựa trên hai vấn đề lớn của toán học là bài toán logarit rờirạc và bài toán phân tích thừa số của số nguyên Phương pháp RSA dựa trên bàitoán phân tích thừa số của số nguyên tố Trong khi đó, phương pháp ECC dựa trênbài toán logarit rời rạc trên trường số của đường cong elliptic (ECDLP).

Một ưu điểm của ECC là khả năng bảo mật cao với kích thước khóa nhỏ dựa vàomức độ khó giải quyết của vấn đề ECDLP Đây chính là một tính chất rất hữu íchđối với xu hướng hiện nay là tìm ra phương pháp tăng độ bảo mật của mã hóa khóacông khai với kích thước khóa được rút gọn Kích thước khóa nhỏ giúp các hệthống bảo mật dựa trên ECC giảm thời gian tạo khóa Thời gian tạo khóa thườngrất lớn ở các hệ thống RSA Ngoài ra, việc mã hóa và giải mã trong ECC cũngđược thực hiện nhanh hơn.

Thời gian cần đểtấn công vào

Trang 11

Biểu đồ so sánh kích thước khóa và mức độ bảo mật giữa ECC với RSA/DSA

Như bảng trên, có thể thấy được mặc dù cùng một mức độ bảo mật nhưng độ dàicủa khóa sử dụng thuật toán ECDSA lại nhỏ hơn rất nhiều so với khóa sử dụngthuật toán RSA Đối với các doanh nghiệp lớn, họ cần lưu trữ lại rất nhiều khóa,khi đó đòi hỏi doanh nghiệp cần có đủ nguồn lực về hạ tầng để đáp ứng nhu cầulưu trữ trên Giả sử, có 1 thiết bị lưu trữ với dung lượng 2048 bit, nếu sử dụngRSA, ta chỉ có thể lưu trữ được 1 khóa duy nhất, còn đối với ECDSA, ta có thể lưutới 9 khóa cùng mức độ bảo mật, mở rộng không gian lưu trữ gấp 9 lần và còn tiếtkiệm được chi phí

Đối với thuật toán ECDSA, quá trình mã hóa và giải mã được rút ngắn, đồng thờicũng giảm bớt năng lượng cần sử dụng trong quá trình, hơn hẳn so với việc sửdụng thuật toán RSA Cụ thể, khóa của ECDSA nhỏ, nên việc tạo chữ ký số sẽnhanh hơn, giảm tải chu kỳ xử lý của CPU, không chỉ vậy, với việc sử dụng khóacủa thuật toán ECDSA, chứng chỉ an toàn sẽ nhỏ và ít dữ liệu hơn, điều này hỗ trợđẩy nhanh quá trình kết nối, cải thiện tốc độ internet.

Do vậy, ECC rất được quan tâm để áp dụng cho các ứng dụng trên môi trường giớihạn về thông lượng truyền dữ liệu, khả năng tính toán, khả năng lưu trữ ECC thíchhợp với các thiết bị di động kỹ thuật số, điện thoại di động và thẻ thông minh.

III ECDSA - Chữ ký số dựa trên đường cong Elliptic1 Giới thiệu

Trang 12

ECDSA là viết tắt của Elliptic Curve Digital Signature Algorithm - thuật toán chữký số dựa trên đường cong Elliptic ECDSA được sử dụng để tạo chữ kí số cho dữliệu, giúp chống lại sự giả mạo cũng như làm sai lệch dữ liệu, cung cấp mộtphương pháp xác thực mà không ảnh hưởng đến tính bảo mật của dữ liệu gốc.ECDSA được ứng dụng rộng rãi trong rất nhiều lĩnh vực cần tính bảo mật và sựriêng tư dữ liệu, đặc biệt như trong Blockchain.

2 Cặp khóa ECDSA2.1 Tạo cặp khóa

Tham số miền được sử dụng để tạo cặp khóa bao gồm: G là điểm sinh, n là sốdương nhỏ nhất sao cho nG = n thường là số nguyên tố

Các bước tạo cặp khóa:

- Chọn một số ngẫu nhiên d nằm trong khoảng [1, n-1] Trên đường cong ellipticA

ta chọn một điểm G, gọi là điểm sinh (generator point).

- Tính public key Q = d G Theo tính chất đã nêu trên, Q cũng sẽ là một điểmAAA

nằm tên đường cong Elliptic Với Bitcoin hay Ethereum, giá trị của G được xácđịnh theo tiêu chuẩn secp256k1 như sau:

G = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D959F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448A6855419 9C47D08F FB10D4B8

- Ta thu được cặp khóa (d , Q ) Trong đó d là khóa bí mật, Q là khóa công khai.AAAA

Mối quan hệ giữa d và Q là một chiều, ta chỉ có thể tính được Q từ d Đó cũngAAAA

là lý do tại sao ta có thể sinh ra khóa công khai từ khóa bí mật và có thể chia sẻkhóa công khai này với người khác do không thể dùng khóa công khai để tìmngược ra khóa bí mật.

2.2 Tạo chữ ký

Tham số miền được sử dụng để tạo chữ ký bao gồm: h là hàm băm SHA-1, G làđiểm sinh và d là khóa bí mật, m là thông điệp cần ký

Trang 13

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

Bước 2: Tính kG = (x , y ) và r = x mod n Nếu r = 0, quay lại bước 1111

Bước 3: Tính k mod n-1

Bước 4: Tính s = k (h(m) + d.r) mod n-1

Bước 5: Nếu s = 0, quay trở lại bước 1

Bước 6: Ta thu được chữ ký cho thông điệp m (r, s)

2.3 Xác minh chữ ký

Khi người nhận nhận một thông điệp m có kèm theo chữ ký (r, s), để xác minhthông điệp m có phải của người gửi hay không, người nhận phải có được tham sốmiền và khóa công khai của người gửi Các bước thực hiện như sau:

Bước 1: Kiếm tra xem r, s có phải là các số nguyên nằm trong khoảng [1, n-1] haykhông.

Trang 14

- Hàm logarith rời rạc trong miền E(F ) là đủ khóq

- Hàm băm SHA-1 là hàm một chiều

- Hàm băm 1 là hàm chống xung đột, tức là không thể tồn tại 1(M1) = SHA-1(M )2

SHA Việc tạo k là không thể đoán được

Các hình thức tấn công trên ECDSA có thể kể đến như:

- Tấn công dựa trên vấn đề logaith rời rạc của đường cong elliptic- Tấn công lên hàm băm

- Các hình thức tần công khác

2.5 Đề xuất ứng dụng ECDSA

Với những ưu điểm như với độ dài khóa ngắn (tức bộ nhớ được dùng để lưu trữthông tin là ít hơn) nhưng vẫn giữ được độ an toàn cao (ví dụ với độ dài khóa 160bit tương đương với khóa có độ dài 1024 bit trong thuật toán RSA), tốc độ tínhtoán cao, thuật toán ECDSA được cho là thích hợp cho việc thực hiện ký và xácthực trên các thiết bị có tài nguyên hạn chế trong các công nghệ như NFC (NearField Communication), RFID (Radio Frequency Identification) hay IoT (Internet ofThings).

Ngoài ra, ECDSA cũng được ứng dụng rộng rãi trong rất nhiều lĩnh vực cần tínhbảo mật và sự riêng tư dữ liệu, và đặc biệt trong Blockchain.

IV Ứng dụng chữ ký số trong việc xây dựng ứng dụng xổ số bằng Blockchain1 Đặt vấn đề

Xổ số là một loại hình cờ bạc bằng việc chọn ra các con số cụ thể để giành đượccác giải thưởng lớn Người chơi xổ số bỏ ra một số tiền nhỏ với tỷ lệ trúng thưởngrất nhỏ để giành được giải thưởng Lợi nhuận thu được được dùng để trả thưởngcho người trúng, đóng góp cho ngân sách nhà nước để đầu tư nâng cấp về giáo dục,giao thông, ý tế, Theo The Business Research Company, thị trường cờ bạc toàn

Ngày đăng: 25/05/2024, 18:14

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w