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

Về tiền điện tử cryptocurrency và bitcoin

69 17 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 69
Dung lượng 1,37 MB

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

Nội dung

Bitcoin hoạt động dựa trên cơ sở lý thuyết mật mã và giao thức mạng ngang hàng Peer-to-Peer; tất cả các node mạng đều có thể tạo ra được đồng tiền mới chứ không có bất kỳ tổ chức, chính

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TÔN QUỐC BÌNH

XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ CHỦ TỊCH HỘI ĐỒNG CHẤM LUẬN

Trang 3

LỜI CAM ĐOAN Tôi tên là: Vũ Duy Hiến

Ngày sinh: 04 tháng 09 năm 1989

Học viên cao học khóa: 2012-2014

Chuyên ngành: Cơ sở Toán cho Tin học

Trường Đại học Khoa học Tự nhiên – Đại học Quốc gia Hà Nội

Tên đề tài luận văn: Về tiền điện tử, CryptoCurrency và Bitcoin

Cán bộ hướng dẫn khoa học: TS Tôn Quốc Bình

Tôi xin cam đoan luận văn này là công trình nghiên cứu của riêng tôi, các kết quả nghiên cứu độc lập, không sao chép và chưa được công bố nội dung này bất kỳ

ở đâu; các số liệu, các trích dẫn trong luận văn được chú thích có nguồn gốc rõ ràng, minh bạch

Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của tôi

Hà Nội, ngày 11 tháng 11 năm 2015

Học viên

Vũ Duy Hiến

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, em xin được gửi lời cảm ơn sâu sắc tới TS Tôn Quốc Bình- người thầy đã luôn tận tình giúp đỡ em định hướng nghiên cứu trong suốt quá trình làm luận văn Đồng thời, thầy cũng là người truyền đạt cho em rất nhiều những kiến thức bổ ích về các lĩnh vực ngân hàng, tiền tệ, an toàn thông tin

Em xin được cảm ơn các thầy, cô đang công tác giảng dạy tại Bộ môn Tin học – Khoa Toán-Cơ-Tin học của trường Đại học Khoa học Tự nhiên Hà Nội Trong suốt quá trình học tập từ bậc đại học cho tới bậc cao học, em đã được các thầy, cô truyền đạt rất nhiều tri thức quí báu

Em cũng xin được cảm ơn gia đình, người thân và bạn bè của em đã giúp đỡ

và hỗ trợ cho em rất nhiều trong suốt thời gian qua

Hà Nội, ngày 11 tháng 11 năm 2015

Học viên

Vũ Duy Hiến

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC HÌNH VẼ, BẢNG BIỂU v

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ BITCOIN 3

1.1 Giới thiệu về tiền điện tử, Cryptocurrency và Bitcoin 3

1.2 Các vấn đề của tiền điện tử Bitcoin 6

CHƯƠNG 2: CƠ SỞ MẬT MÃ HỌC CỦA TIỀN ĐIỆN TỬ BITCOIN 8

2.1 Chữ ký số trên hệ mật đường cong Eliptic (ECSDA) 8

2.1.1 Đường cong Elliptic 8

2.1.2 Chữ ký số trên hệ mật đường cong Elliptic 12

2.2 Hàm băm 15

2.2.1 Tổng quan về hàm băm 15

2.2.2 Hàm băm SHA-256 17

2.2.3 Hàm băm RIPEMD-160 21

2.3 Cây băm Merkle 24

2.3.1 Bài toán xác thực dữ liệu 24

2.3.2 Cây băm Merkle và xác thực dữ liệu trên cây băm Merkle 25

2.4 Hashcash 27

2.4.1 Khái niệm 27

2.4.2 Hashcash ngăn chặn thư rác 28

2.4.3 Hashcash chống lại tấn công từ chối dịch vụ 29

Trang 6

2.4.4 Đánh giá chi phí tính toán của Hashcash 30

2.5 TimeStamp 31

2.6 Base 58 32

CHƯƠNG 3: NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG TIỀN ĐIỆN TỬ NGANG HÀNG BITCOIN 34

3.1 Mô tả hoạt động của hệ thống tiền điện tử ngang hàng Bitcoin 34

3.1.1 Định nghĩa các thành phần của hệ thống 34

3.1.2 Quy trình thực hiện thanh toán trong hệ thống tiền điện tử ngang hàng Bitcoin 34

3.2 Những giải pháp cho các vấn đề của tiền điện tử Bitcoin 35

3.2.1 Vấn đề tạo ra đồng tiền điện tử Bitcoin 35

3.2.2 Vấn đề xác định quyền sở hữu đồng tiền điện tử Bitcoin 37

3.2.3 Vấn đề chuyển quyền sở hữu đồng tiền điện tử Bitcoin 40

3.2.4 Vấn đề chia nhỏ giá trị của một đồng tiền Bitcoin và một giao dịch sử dụng nhiều đồng tiền Bitcoin 46

3.2.5 Vấn đề an toàn bảo mật của hệ thống tiền điện tử ngang hàng Bitcoin 47

KẾT LUẬN 52

TÀI LIỆU THAM KHẢO 55

PHỤ LỤC 57

Trang 7

DANH MỤC HÌNH VẼ, BẢNG BIỂU

Hình 2.1-Phép cộng trên đường cong Elliptic 9

Hình 2.2-Phép nhân đôi trên đường cong Elliptic 10

Hình 2.3-Cây băm Merkle 8 node lá 26

Hình 2.4-Xác thực dữ liệu sử dụng cây băm Merkle 8 node lá 27

Hình 3.1-Node gốc của cây băm Merkle lưu trữ thông tin các giao dịch mới 36

Hình 3.2-Cấu trúc cây băm Merkle lưu trữ thông tin n giao dịch mới 42

Hình 3.3-Cấu trúc của TimeStamp sử dụng kỹ thuật băm 42

Hình 3.4-Cấu trúc một khối Block của TimeStamp 43

Hình 3.5-Cơ chế ghi nhận lịch sử giao dịch 44

Hình 3.6-Cơ chế thực hiện giao dịch sử dụng Bitcoin 46

Bảng 1.1-Một số tiền điện tử Cryptocurrency điển hình 4

Bảng 2.1-Bảng mã Base58 32

Bảng 3.2-Một số loại Version byte phổ biến 37

Trang 8

MỞ ĐẦU

Tiền tệ ra đời đã giúp cho hoạt động trao đổi, sản xuất và lưu thông hàng hoá trong xã hội được phát triển Tất cả các đồng tiền chính thức từ trước tới nay, dù là tiền giấy hay tiền điện tử đều được nhà nước hoặc tổ chức uy tín phát hành và quản

lý Lý do của vấn đề này là chỉ có nhà nước, chính phủ và tổ chức uy tín mới có thể đứng ra đảm bảo giá trị cho những đồng tiền phát hành và tạo niềm tin cho người sử dụng chúng Tuy nhiên, quan điểm đã bị thay đổi hoàn toàn khi tiền điện tử Bitcoin

ra đời

Bitcoin hoạt động dựa trên cơ sở lý thuyết mật mã và giao thức mạng ngang hàng (Peer-to-Peer); tất cả các node mạng đều có thể tạo ra được đồng tiền mới chứ không có bất kỳ tổ chức, chính phủ hay nhà nước nào phát hành và quản lý; các giao dịch sử dụng Bitcoin cũng không cần đến bên thứ ba tin cậy làm trung tâm xác thực Mặc dù vậy, Bitcoin vẫn mang đầy đủ tính chất quan trọng của tiền tệ: có thể

sử dụng để mua bán hàng hóa dịch vụ và thực hiện giao dịch thanh toán, không lưu vết thông tin định danh của sự sở hữu trên đồng tiền, có thể chuyển đổi giá trị dễ dàng trong cộng đồng chấp nhận Bitcoin

Trên thế giới, có một số quốc gia: Đức, Hy Lạp, Venezuela và một số tổ chức, doanh nghiệp chấp nhận tiền điện tử Bitcoin làm phương tiện thanh toán bởi các đặc điểm ưu việt của nó Bên cạnh đó, cũng có một số quốc gia như Việt Nam, Thái Lan, Iceland…không chấp nhận Bitcoin là đồng tiền hợp pháp Điều này cũng hoàn toàn tự nhiên bởi cũng giống như các loại tiền tệ thông thường, Bitcoin chỉ được chấp nhận và có giá trị đối với cộng đồng tin tưởng và sử dụng chúng Tại các quốc gia không chấp nhận Bitcoin, chính phủ đang dừng lại ở mức khuyến nghị người dân không nên đầu cơ, nắm giữ và sử dụng Bitcoin chứ chưa đưa ra cơ sở khoa học làm căn cứ cho những khuyến nghị này

Cơ sở khoa học đầu tiên của hệ thống tiền điện tử ngang hàng Bitcoin được Satoshi (một hoặc một nhóm nhà phát triển ẩn danh) công bố vào năm 2009 trong một tài liệu cùng tên, tuy nhiên tài liệu này chỉ đưa ra ý tưởng hoàn toàn cơ bản

Trang 9

Với mong muốn nghiên cứu làm rõ cơ sở khoa học hình thành nên đồng tiền điện tử Bitcoin và nguyên lý hoạt động của hệ thống tiền điện tử ngang hàng Bitcoin, tôi đã

lựa chọn đề tài: “Về tiền điện tử, Cryptocurrency và Bitcoin” cho luận văn của

mình

Bố cục của luận bao gồm phần mở đầu, ba chương chính, phần kết luận, phụ lục và tài liệu tham khảo Nội dung của ba chương được tổ chức như sau:

Chương I: Tổng quan về tiền điện tử, Cryptocurrency và Bitcoin

Chương II: Cơ sở mật mã học của tiền điện tử Bitcoin

Chương III: Nguyên lý hoạt động của hệ thống tiền điện tử ngang hàng Bitcoin

Sau đây là phần trình bày nội dung của từng chương

Trang 10

CHƯƠNG 1: TỔNG QUAN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ

BITCOIN 1.1 Giới thiệu về tiền điện tử, Cryptocurrency và Bitcoin

Theo quan điểm của chủ nghĩa Mác-Lênin, tiền tệ là hàng hoá đặc biệt, dùng làm vật ngang giá chung thống nhất cho các hàng hoá khác, là sự thể hiện chung của giá trị và thể hiện lao động xã hội; đồng thời tiền tệ biểu hiện quan hệ sản xuất giữa những người sản xuất hàng hoá, do quá trình phát triển lâu dài của trao đổi hàng hoá tạo ra Còn theo các nhà kinh tế hiện đại: Tiền được định nghĩa là bất cứ cái gì được chấp nhận chung trong việc thanh toán để nhận hàng hoá, dịch vụ hoặc trong việc trả nợ

Bản chất của tiền tệ được thể hiện rõ hơn qua hai thuộc tính của nó là giá trị và giá trị sử dụng Trong đó:

- Giá trị của tiền theo quan điểm triết học Mác-Lênin là công sức lao động tích

tụ tạo ra nó đã được kết tinh vào trong bản thân đồng tiền

- Khác với vật chất thông thường, giá trị sử dụng của tiền nằm ở khả năng thỏa mãn nhu cầu trao đổi hàng hóa của xã hội, nhu cầu sử dụng làm vật trung gian trong trao đổi Giá trị sử dụng của một loại tiền tệ là do xã hội quy định: chừng nào xã hội còn thừa nhận vai trò làm vật trung gian trao đổi của loại tiền tệ đó thì chừng đó giá trị sử dụng của nó với tư cách là tiền tệ còn tồn tại [1]

Tiền tệ đã trải qua rất nhiều hình thái đa dạng khác nhau trong lịch sử hình thành và phát triển Trước khi những đồng tiền kim loại và tiền giấy xuất hiện, con người đã sử dụng nhiều thứ khác nhau với vai trò như một loại tiền để trao đổi hàng hóa Chẳng hạn, ở một số nơi trên thế giới, người ta sử dụng răng cá mập như là tiền Ở nhiều nơi khác, tiền có thể là những chiếc lông chim sặc sỡ và những chiếc

vỏ sò quý hiếm; có nơi người ta còn dùng cọng lông trên đuôi voi để làm tiền Với

sự phát triển nhanh của xã hội hiện đại ngày nay cùng với sự bùng nổ mạnh mẽ của lĩnh vực Công nghệ thông tin, tiền đã được sử dụng dưới dạng những giá trị số được lưu trữ trên máy tính hoặc thiết bị điện tử Người sử dụng có thể thực hiện các giao

Trang 11

dịch điện tử bằng cách truyền các giá trị số từ máy tính (hoặc thiết bị điện tử) này tới máy tính (hoặc thiết bị điện tử) khác Loại tiền như này được gọi là tiền điện tử Trong vài năm trở lại đây, loại tiền điện tử phát triển mạnh mẽ nổi bật nhất là Cryptocurrency Cho đến nay, chưa có một thuật ngữ tiếng Việt chính thống nào mô

tả chính xác và đầy đủ ý nghĩa của Cryptocurrency Chúng ta tạm dịch Cryptocurrency là tiền điện tử mật mã bởi đây là một hình thức tiền điện tử được xây dựng dựa trên cơ sở lý thuyết mật mã nhằm đảm bảo an toàn cho các giao dịch điện tử Khác tiền tệ thông thường, tiền điện tử Cyptocurrency không được phát hành bởi bất kỳ tổ chức, chính phủ hay nhà nước Tính đến tháng 5 năm 2014, đã có trên 275 loại Cryptocurrency được lưu hành trên thị trường,…Có thể kể đến điển hình một số loại phổ biến như:

Bảng 1.1-Một số tiền điện tử Cryptocurrency điển hình

Tên gọi Viết tắt

Năm xuất hiện

Giá trị thị trường (tỷ USD)

Số lượng đã phát hành /Tổng số (triệu)

Thuật toán hình thành

Trang 12

Tên gọi Viết tắt

Năm xuất hiện

Giá trị thị trường (tỷ USD)

Số lượng đã phát hành /Tổng số (triệu)

Thuật toán hình thành

(Số liệu tính đến cuối năm 2014, Nguồn: Wikipedia)

Gần đây nhất, vào đầu năm 2015, một hình thức Cryptocurrency mới được ra đời là Onecoin Người sáng lập ra Onecoin là Tiến sĩ, luật sư Dr Ruja Ignotava nổi tiếng trong giới tài chính Bà là người đã tư vấn chiến lược trong quá trình xây dựng

hệ thống tiền điện tử Bitcoin và nhiều tập đoàn tài chính khác ở châu Âu

Trong tất cả các loại tiền Cryptocurrency, Bitcoin là loại điển hình nhất, ra đời sớm nhất và cũng là loại tiền Cryptocurrency được sử dụng rộng rãi nhất Bitcoin mang những đặc điểm nổi bật như sau:

- Bitcoin không được phát hành và quản lý bởi bất kỳ một ngân hàng trung ương nào, không một ai hay công ty nào điều hành Bitcoin, nó được vận hành bởi tất cả những người dùng trong hệ thống

- Người dùng Bitcoin cũng không cần phải đăng ký tài khoản, không cần tới ngân hàng, không cần thẻ tín dụng, không cần những thông tin định danh để nhận hay gửi Bitcoin

- Hệ thống tiền điện tử Bitcoin còn là một mạng lưới phân bố ngang hàng, bất

kỳ ai đều có thể gửi Bitcoin trực tiếp cho một người khác mà không cần qua một trung gian, bất kể thời gian, bất chấp không gian, với một lệ phí cực kì thấp, gần

Trang 13

như bằng 0 hoặc thậm chí bằng 0 Bởi vậy, các giao dịch của Bitcoin không phải chịu những loại phí giao dịch trung gian

- Người sở hữu Bitcoin có thể mua bán đồng tiền này và qui đổi ra một vài đồng tiền khác trong cộng đồng chấp nhận

1.2 Các vấn đề của tiền điện tử Bitcoin

Như đã đề cập ở trên, trong xã hội hiện đại ngày nay con người đã sử dụng những giá trị số để thay thế cho đồng tiền truyền thống Tuy nhiên để những giá trị

số ấy trở thành đồng tiền thì bản thân chúng phải thoải mãn những điều kiện cần và điều kiện đủ Điều kiện đủ ở đây đó chính là những giá trị số phải được một cộng đồng chấp nhận và coi chúng như đồng tiền để thực hiện các giao dịch hoặc mua bán hàng hóa, dịch vụ Những giá trị số này muốn được cộng đồng chấp nhận thì chúng phải có giá trị sử dụng và tạo được niềm tin đối với cộng đồng đó Ngược lại, đối với những người ngoài cộng đồng trên thì những giá trị số đó có thể không có giá trị Tuy nhiên, trong khuôn khổ luận văn này, chúng ta không bàn luận về điều kiện đủ rằng liệu những giá trị số thay thế cho tiền tệ thông thường ấy có được cộng đồng chấp nhận hay không mà chúng ta chỉ xem xét những điều kiện cần trên góc nhìn về khía cạnh công nghệ để tiền điện tử CryptoCurrency mà cụ thể là Bitcoin có thể trở thành một đồng tiền đúng nghĩa được sử dụng để giao dịch hoặc trao đổi hàng hóa dịch vụ Những điều kiện cần này bao gồm:

- Thứ nhất, cũng giống như đồng tiền truyền thống được phát hành và tạo ra dựa trên chi phí tiêu tốn để tạo ra sản phẩm hàng hóa và dịch vụ, việc tạo ra tiền điện tử Bitcoin phải gắn với việc tiêu tốn tài nguyên nhất định để sinh ra một giá trị nào đó

- Thứ hai, tiền điện tử Bitcoin được sử dụng trong các giao dịch phải xác định được chủ sở hữu Đối với tiền tệ thông thường, quy tắc sở hữu là bất kỳ ai nắm giữ đồng tiền hợp pháp thì sẽ là người sở hữu đồng tiền đó Điều này được xác định nhờ tính duy nhất và tính khó làm giả mạo của đồng tiền Tuy nhiên, bản chất tiền điện

tử nói chung và Bitcoin nói riêng là các giá trị số vì thế chúng có thể dễ dàng bị sao

Trang 14

chép Do đó, cần phải có cơ chế xác định ai là người chủ sở hữu đồng tiền điện tử Bitcoin

- Thứ ba, tiền điện tử Bitcoin phải phù hợp với đặc điểm nổi bật nhất của tiền

tệ thông thường là có thể dễ dàng chuyển nhượng quyền sở hữu Đối với tiền tệ thông thường, việc chuyển giao sở hữu bằng cách chuyển tiền hay mua bán trao đổi hàng hóa dịch vụ được diễn ra rất đơn giản: tiền được chuyển “tay trao tay” hoặc thông qua bên thứ ba tin cậy (Ngân hàng, tổ chức tín dụng,…) làm trung gian cho các giao dịch Với tiền điện tử Bitcoin, đồng tiền không thể được chuyển theo kiểu

“tay trao tay” và cũng không có một bên thứ ba đáng tin cậy nào làm trung gian cho các giao dịch, vì vậy cũng cần cơ chế để chuyển giao quyền sở hữu và đảm bảo rằng mỗi đồng tiền không thể bị sao chép để tiêu hai lần (double spending)

- Thứ tư, trong quá trình phát hành tiền tệ thông thường, ngân hàng trung ương tính toán đưa ra các mệnh giá đồng tiền khác nhau để phù hợp với nhu cầu thực tế: tiền có mệnh giá thấp để dễ dàng thực hiện các giao dịch có giá trị thấp hoặc sử dụng để trả lại và một giao dịch có thể sử dụng nhiều đồng tiền khác nhau Vì vậy tiền điện tử Bitcoin cũng cần có khả năng chia nhỏ hoặc gộp giá trị lại để đáp ứng yêu cầu này

- Thứ năm, bản chất tiền điện tử là các giá trị số, các giao dịch được thực hiện trên mạng công khai Bên cạnh đó, tiền điện tử Bitcoin lại không do chính phủ hoặc

tổ chức nào phát hành và quản lý vì vậy cần đảm bảo các giao dịch sử dụng Bitcoin được an toàn và thông tin người dùng được bảo mật

Trong năm điều kiện cần kể trên, ba điều kiện đầu tiên được coi là quan trọng nhất bởi chúng quyết định mức độ khả dụng của một đồng tiền bất kỳ Chúng ta có thể coi năm điều kiện ở trên là năm vấn đề mà Satoshi cần phải giải quyết để đưa Bitcoin trở thành một đồng tiền khả dụng Mục tiêu nghiên cứu chính của luận văn

là tập trung làm rõ cơ sở khoa học và các giải pháp mà Satoshi đưa ra để giải quyết được năm vấn đề trên đối với đồng tiền điện tử Bitcoin

Trang 15

CHƯƠNG 2: CƠ SỞ MẬT MÃ HỌC CỦA TIỀN ĐIỆN TỬ BITCOIN 2.1 Chữ ký số trên hệ mật đường cong Eliptic (ECSDA)

2.1.1 Đường cong Elliptic

2.1.1.1 Định nghĩa đường cong Elliptic theo công thức Weierstrass

Đường cong elliptic E trên trường K là tập hợp các điểm (x, y)  KxK thỏa mãn phương trình:

y2 + a1xy + a3y = x3+ a2x2 + a4x + a6 (aiK và 4a43+27a62≠0)

Với một điểm O gọi là điểm tại vô cùng [18]

2.1.1.2 Đường cong Elliptic trên trường số thực R

b Phép cộng

- Về khía cạnh hình học, để xác định điểm R = P+Q (P≠O, Q≠O, P≠Q), ta nối

P và Q bằng đường thẳng L Đường thẳng L cắt đường E tại ba điểm P, Q và –R(x, y) Điểm R(x, –y) sẽ có tung độ là giá trị đối của y

Trang 16

Hình 2.1-Phép cộng trên đường cong Elliptic

- Về khía cạnh đại số, để xác định điểm R(xR, yR) = P(xP, yP) + Q (xQ, yQ) với P≠O, Q≠O, P≠Q, ta tính xR và yR như sau:

- Điểm tại vô cùng O là điểm cộng với bất kỳ điểm nào cũng sẽ ra chính điểm

đó Nghĩa là: P  E, P+O = O+P = P

- Điểm đối xứng của P(xP, yP)  E là -P(xP, -yP)  E và P+ (-P) = O

Trang 17

Ví dụ: xét đường cong Elliptic: y2 = x3 - x trên trường số thực, P(2, 6)  E thì điểm đối xứng của P là -P(2, − 6)  E

c Phép nhân đôi

- Về khía cạnh hình học, để xác định điểm R= 2P = P+P, ta vẽ tiếp tuyến L của

đường cong elliptic tại điểm P, điểm –R là giao điểm còn lại của L với E và R = 2P

= P+P

Hình 2.2-Phép nhân đôi trên đường cong Elliptic

- Về khía cạnh đại số, để xác định điểm R(xR, yR) = 2P(xP, yP) với yP ≠ 0, ta tính xR và yR như sau:

xR = (3𝑥𝑃

2 + a 2𝑦𝑃 )2 – 2xP

yR = (3𝑥𝑃

2 + a 2𝑦 𝑃 )( xP – xR) – yP

Trang 18

Ví dụ: xét đường cong Elliptic: y2 = x3 - x trên trường số thực, P(2, 6)  E thì 2P = R E với xR = 25

24 và yR = 35

48 6

- Mở rộng ra, phép nhân kP thực hiện bằng cách lặp k lần phép cộng

a Định nghĩa

Cho p là số nguyên tố (p > 3), đường cong elliptic E trên trường Zp là tập hợp các điểm (x,y) Zp x Zp thỏa mãn phương trình:

y2 mod p = (x3 + ax + b) mod p (a, b  Zp và 4a3 + 27b2 mod p ≠ 0)

Với một điểm O gọi là điểm tại vô cùng [18]

- Điểm tại vô cùng O là điểm cộng với bất kỳ điểm nào cũng sẽ ra chính điểm

đó Nghĩa là: P  E, P+O = O+P = P

- Điểm đối xứng của P(xP, yP)  E là -P(xP, yP’)  E thỏa mãn các điều kiện:

yP’ ZP sao cho (yP’ + yP) mod p = 0; P+ (-P) = O

Trang 19

Ví dụ: xét đường cong Elliptic: y2 mod 23 = (x3+x+1) mod 23 trên trường Z23, P(13, 7)  E Điểm đối xứng của P là –P(13, 16)  E vì 16 Z23 và (16+7) mod 23 = 0

 = (28/20) mod 23 = (5/20) mod 23 = (1/4) mod 23 = 6 do 6*4  1 (mod 23)

xR = (36-6) mod 23 = 7 và yR = -34 mod 23 = 12 Vậy 2P = R(7,12)  E

- Mở rộng ra, phép nhân kP nhận được bằng cách thực hiện k lần phép cộng

2.1.2 Chữ ký số trên hệ mật đường cong Elliptic

2.1.2.1 Chuẩn bị tham số

Để thiết lập sơ đồ chữ ký ECDSA, ta chọn đường cong elliptic E trên trường

Fq với O là điểm ở vô cùng, điểm cơ sở G  E và n là bậc của G (nG = O)

2.1.2.2 Tạo khóa

1 Chọn số ngẫu nhiên d  [2, n – 1] làm khóa bí mật

2 Tính Q(xQ, yQ) = dG làm khóa công khai

Trang 20

5 Tính s = [k-1 (m + dr)] mod n Nếu s = 0 quay lại bước 1

6 Chữ ký trên thông điệp m là (r, s)

Quá trình kiểm tra chữ ký được thực hiện như trên bởi:

Nếu chữ ký (r, s) trên m là đúng thì s = [k-1 (m + dr)] mod n

Trang 21

Tính bậc n của G:

Ta có 2G = (13, 16); 4G = (5, 19); 6G = (17, 20) = -G; 7G = G + (-G) = O Suy ra n = 7 là bậc của G

b Tạo khóa

1 Chọn số ngẫu nhiên d = 6 làm khóa bí mật

2 Tính Q(xQ, yQ) = 6G = (17, 20) làm khóa công khai

Trang 22

2.1.2.6 Độ an toàn của sơ đồ chữ ký ECSDA

Độ an toàn của sơ đồ chữ ký ECDSA tương ứng với độ phức tạp của bài toán logarit rời rạc trên đường cong elliptic: cho trước hai điểm Q và G nằm trên đường cong elliptic E, tìm số tự nhiên d sao cho Q = dG

Cho đến nay sơ đồ chữ ký ECDSA đã được chỉ ra là rất an toàn và hiệu quả Đối với bài toán logarit rời rạc đường cong elliptic thì có nhiều thuật toán giải nó, tuy nhiên chưa có thuật toán nào có độ phức tạp tính toán trong thời gian đa thức Thuật toán giải bài toán logarit rời rạc đường cong elliptic tốt nhất hiện nay là thuật toán Pollard’s Rho, phiên bản thiết kế theo hướng tính toán song song Theo

đó với nhóm đường cong elliptic cấp n và có r máy tính tính toán cùng lúc thì phải mất 𝜋𝑛/2r phép toán

Mặt khác người ta đã phân tích và chỉ ra rằng với cùng độ an toàn, hệ mã hoá dựa trên bài toán logarit rời rạc đường cong elliptic có độ dài khoá ngắn hơn rất nhiều so với hệ mã hoá dựa trên bài toán phân tích số nguyên thành các thừa số nguyên tố (như RSA) Ví dụ với hệ mã hoá RSA có chiều dài khoá là 1024 bit thì hệ mật đường cong elliptic chỉ cần độ dài khoá 163 bit sẽ có độ an toàn tương đương

2.2 Hàm băm

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

2.2.1.1 Khái niệm Hàm băm

Hàm băm là thuật toán dùng để “tóm tắt” (băm) tài liệu, bản tin hoặc thông

điệp và cho kết quả là một giá trị “băm” có kích thước cố định Giá trị băm này còn được gọi là “đại diện tài liệu”, “đại diện bản tin” hay “đại diện thông điệp” [2]

2.2.1.2 Các tính chất của Hàm băm

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

Hàm băm h được gọi là không va chạm yếu, nếu cho trước thông điệp x,

“khó” thể tính toán để tìm ra x’ x mà h(x’) = h(x)

Trang 23

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

Hàm băm h được gọi là không va chạm mạnh nếu “khó” thể tính toán để tìm

ra hai thông điệp khác nhau x’ và x (x’x)mà có h(x’) = h(x)

cũng vẫn thay đổi Điều này có nghĩa là: hai thông điệp khác nhau thì giá trị băm của chúng cũng khác nhau

Nội dung của bản tin gốc “rất khó” suy ra từ giá trị hàm băm của nó Nghĩa là:

với thông điệp x thì “dễ” tính được z = h(x) nhưng lại gần như không thể tính ngược lại được x nếu chỉ biết giá trị băm h(x) (Kể cả khi biết hàm băm h) Tuy

nhiên, nếu chúng ta giảm yêu cầu bài toán xuống, nghĩa là tìm x sao cho giá trị băm h(x) thỏa mãn khuôn dạng nhất định (Ví dụ: bắt đầu với một số cố định các bit 0) thì bài toán này vẫn có thể giải quyết được nhưng đó vẫn là một bài toán khó cần phải tiêu tốn chi phí tài nguyên tính toán

Trang 24

- Hàm băm dùng để bảo mật một số dữ liệu đặc biệt, ví dụ bảo vệ mật khẩu, bảo vệ khóa mật,…

- Một số hàm băm thông dụng: MD2, MD4, MD5, các hàm băm SHA, các

hàm băm RIPEMD,…

2.2.2 Hàm băm SHA-256

2.2.2.1 Giới thiệu

Secure Hash Algorithm (SHA) được công bố trong Hồ sơ Liên bang năm 1992

và được chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST)

Ý tưởng thuật toán băm SHA-256 được thực hiện trong các bước sau:

- Bước 1: Thông điệp ban đầu được tiền xử lý thành thông điệp M rồi được

chia nhỏ thành N khối 512 bits: M(1), M(2), …, M(N)

- Bước 2: Khởi tạo giá trị cho mỗi Hj(0) (1≤j≤8) tính toán tuần tự các giá trị

Hj(i) (1≤i≤N) theo công thức:

H(i) = H(i-1) + CM(i) (H(i-1)) với C là hàm nén SHA-256 và phép + là phép cộng

theo modulo 232

H(N) = (H1(N),…, H8(N)) là giá trị băm của M

2.2.2.2 Mô tả thuật toán

Rn : phép dịch chuỗi sang phải (Shift Right) n bit

Sn : phép xoay vòng phải n bit

Trang 25

b Tiền xử lý dữ liệu

Bước 1: nhồi thêm dữ liệu

- Thông điệp ban đầu có độ dài l, thông điệp này được nhồi thêm k bit (k là số nguyên nhỏ nhất) sao cho (l + k) ≡ 448 mod 512

hay (l + k) = n * 512 + 448 (n, k, l nguyên)

- Số bit k nằm trong khoảng [1, 511]

- Trong k bit nhồi thêm bao gồm: một bit 1 đầu tiên và theo sau là (k-1) bit 0

Bước 2:

- Độ dài của khối dữ liệu ban đầu l được biểu diễn sang dạng nhị phân 64-bit

và được thêm vào cuối chuỗi nhị phân kết quả của bước 1 để thành thông điệp

M

- Thông điệp M có độ dài là bội số của 512

- Chia thông điệp M thành N khối 512 bits M(1), M(2), …, M(N) Mỗi khối M(i)lại được chia thành 16 phần bằng nhau 32 bits là Mj(i) (j=0,1, 15)

c Khởi tạo các giá trị

Trang 26

d Mã giả

- Input: thông điệp M được chia thành N khối

- Output: giá trị băm của thông điệp M có độ dài cố định 256 bits

- Mã giả:

For i = 1 to N

{

//Khởi tạo các thanh ghi a, b, c, d, e, f, g, h

a  H1(i-1); b  H2(i-1); c  H3(i-1); d  H4(i-1);

e  H5(i-1); f  H6(i-1); g  H7(i-1); h  H8(i-1);

// Cập nhật giá trị cho các thanh ghi trên

// Tính toán các giá trị băm H j (i)

H1(i)  a + H1(i-1); H2(i)  b + H2(i-1);

H3(i)  c + H3(i-1); H4(i)  d + H4(i-1);

H5(i)  e + H5(i-1); H6(i)  f + H6(i-1);

H7(i)  g + H7(i-1); H8(i)  h + H8(i-1);

}

Trang 27

Kết quả: H (N) = (H 1 (N) ,…,H 8 (N) ) là giá trị băm Trong đó:

Ch(x,y,z) = (x  y)  (¬x  z) Maj(x,y,z)= (x  y)  (x  z)  (y  z)

Wj1(Wj-2) + Wj-7 + 0(Wj-15) + Wj-16;

Với 0(x)= S(7)(x)  S(18)(x)  R(3)(x)

1(x)= S(17)(x)  S(19)(x)  R(10)(x)

Trang 28

2.2.3 Hàm băm RIPEMD-160

2.2.3.1 Giới thiệu

RIPEMD (RACE Integrity Primitives Evaluation Message Digest) là một họcủa hàm băm mật mã được phát triển ở Leuven-Bỉ bởi Hans Dobbertin, AntoonBosselaers và Bart Preneel thuộc nhóm nghiên cứu COSIC tại Katholieke UniversiteitLeuven và lần đầu tiên được xuất bản vào năm 1996

RIPEMD-160 là một phiên bản được tăng cường của RIPEMD với một kết quả băm 160-bit được thiết kế thiết kế để sử dụng như là một thay thế an toàn cho các hàm băm 128-bit MD4, MD5 và RIPEMD RIPEMD-160 dự kiến sẽ được an toàn trong mười năm tới hoặc hơn

Ý tưởng thuật toán này như sau:

- Bước 1: Thông điệp ban đầu được tiền xử lý thành thông điệp M rồi được

chia nhỏ thành các khối 512 bits

- Bước 2: Khởi tạo giá trị cho mỗi hj(0≤j≤4), tính toán N lần các giá trị hj sử dụng hàm nén RIPEMD-160 H = (h0, h1, h2, h3, h4) là giá trị băm

2.2.3.2 Mô tả thuật toán băm RIPEMD-160

a Định nghĩa các phép toán, hàm logic và các hằng số

Trang 30

s(j) = 11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8(0 ≤j≤ 15) s(j) = 7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12(16 ≤j≤ 31) s(j) = 11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5(32 ≤j≤ 47) s(j) = 11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12(48 ≤j≤ 63) s(j) = 9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6(64 ≤j≤ 79) s’(j)= 8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6(0 ≤j≤ 15) s’(j)= 9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11(16 ≤j≤ 31) s’(j)= 9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5(32 ≤j≤ 47) s’(j)= 15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8(48 ≤j≤ 63) s’(j)= 8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11(64 ≤j≤ 79)

b Tiền xử lý dữ liệu

Bước 1: nhồi thêm dữ liệu

- Thông điệp ban đầu có độ dài l, thông điệp này được nhồi thêm k bit (k là số nguyên nhỏ nhất) sao cho (l + k) ≡ 448 mod 512

hay (l + k) = n * 512 + 448 (n, k, l nguyên)

- Số bit k nằm trong khoảng [1, 511]

- Trong k bit nhồi thêm bao gồm: một bit 1 đầu tiên và theo sau là (k-1) bit 0

Bước 2:

- Độ dài của khối dữ liệu ban đầu l được biểu diễn ở dạng nhị phân 64-bit và

được thêm vào cuối chuỗi nhị phân kết quả của bước 1 để thành thông điệp M

- Thông điệp M có độ dài là bội số của 512

- Chia thông điệp M thành N khối 512 bits M0, M1,…, MN-1

c Mô tả thuật toán bằng mã giả

Trang 31

- Input: thông điệp M được chia ra thành N khối 16 words (512 bits) là Mi

A’ E’; E’ D’; D’ rol’10(C’);C’ B’; B’T; }

T  h1 + C + D’; h1  h2 + D + E’;

h2  h3 + E + A’; h3  h4 + A + B’; h0  T;

}

H = (h 0 , h 1 , h 2 , h 3 , h 4 ) là giá trị băm.

2.3 Cây băm Merkle

2.3.1 Bài toán xác thực dữ liệu

A nắm giữ dữ liệu Y được chia bí mật thành n thành phần: Y1, Y2,…, Yn A giao cho B thành phần Yp Thiết kế một thuật toán để B xác thực xem Yp có thuộc Y hay không với thời gian xác thực nhanh nhất và dữ liệu trao đổi giữa A và B là công khai và ít nhất

Trang 32

2.3.2 Cây băm Merkle và xác thực dữ liệu trên cây băm Merkle

2.3.2.1 Đặt vấn đề

- Dữ liệu đầu vào: dữ liệu Y được chia thành n thành phần Y1, Y2,…, Yn (với

n có dạng 2m

) và phân phối cho n đối tượng khác nhau và hàm băm H cho trước

- Yêu cầu bài toán: xây dựng một cấu trúc dữ liệu lưu trữ n thành phần trên

mà mỗi đối tượng có thể xác thực thành phần Yi do mình giữ dựa trên cấu trúc dữ liệu này

- Hướng giải quyết: xây dựng cây nhị phân kết hợp hàm băm H lưu trữ n

thành phần trên và cơ chế giúp mỗi đối tượng có thể xác thực thành phần Yi do mình giữ

2.3.2.2 Xây dựng cây băm Merkle [9]

a Xây dựng cây nhị phân với n node lá

Xây dựng cây nhị phân với cách đánh số thứ tự các node trong cây như các bước sau đây:

- Bước 1: Node gốc của cây được ký hiệu (1,n,Y) Xét node (1,n,Y)

- Bước 2: Với node đang xét (i,j,Y)

+ Nếu i ≠ j thì ký hiệu hai node con của node là (i,k,Y) và (k+1,j,Y) trong

đó k = (i+j)/2 Thực hiện bước 2 đối với hai node: (i,k,Y) và (k+1,j,Y)

+ Nếu i = j thì dừng lại

b Cây băm Merkle

Xây dựng cây băm Merkle bằng cách gán giá trị cho các node (i,j,Y) của cây

nhị phân trên sử dụng hàm F(i,j,Y) được định nghĩa như sau:

- Nếu i = j thì F(i,j,Y) = H(Y i )

- Nếu i ≠ j thì F(i,j,Y) = H(F(i,k,Y) || F(k+1,j,Y)) (*) trong đó k = (i+j)/2

- Giá trị của hàm F(i,j,Y) được lưu trữ tại node (i,j,Y) của cây nhị phân

- Giá trị của F(1,n,Y) là công khai

Trang 33

c Ví dụ: cây băm Merkle với 8 node lá Y1, Y2,…, Y8

Hình 2.3-Cây băm Merkle 8 node lá

2.3.2.3 Xác thực dữ liệu với cây băm Merkle

B biết node gốc F(1,n,Y) và giữ giá trị Yp Giả sử B muốn xác thực node lá Yp

có thuộc cây băm Merkle hay không, A sẽ giúp B xây dựng đường đi từ gốc cây xuống đến node lá Yp và xác thực từng node trên đường đi ấy cho tới node cuối cùng là Yp Thuật toán này được trình bày như sau:

- Bước 1: Xuất phát từ node gốc F(1,n,Y)

- Bước 2: A sử dụng công thức (*) xác định hai node con của node đang xét F(i,j,Y) là F(i,k,Y), F(k+1,j,Y) trong đó k = (i+j)/2 rồi gửi hai giá trị này cho B

để B xác thực node đang xét bằng cách tính H(F(i,k,Y) || F(k+1,j,Y)) rồi so sánh với giá trị của node đang xét

- Bước 3: Lựa chọn node kế tiếp theo nguyên tắc

+ Nếu p [i,k] thì A xét tiếp node F(i,k,Y)

+ Nếu p [k+1,j] thì xét tiếp node F(k+1,j,Y)

- Bước 4: Tiếp tục Bước 2 cho tới khi xét node F(p,p,Y) B sẽ xác thực node

cuối cùng này bằng cách tính H(Yp) và so sánh giá trị này với F(p,p,Y)

Ví dụ minh họa xác thực thành phần Y 5 của cây băm Merkle 8 node lá:

Trang 34

- A gửi giá trị của F(1,8,Y) cho B Nếu giá trị của F(1,8,Y) bằng giá trị công khai mà B biết thì B tiếp tục xác thực

- A gửi F(1,4,Y) và F(5,8,Y) cho B để B tính H(F(1,4,Y), F(5,8,Y)), nếu giá trị này bằng F(1,8,Y) thì B xét tiếp F(5,8,Y)

- A gửi F(5,6,Y) và F(7,8,Y) cho B để B tính H(F(5,6,Y), F(7,8,Y)), nếu giá trị này bằng F(5,8,Y) thì B xét tiếp F(5,6,Y)

- A gửi F(5,5,Y) và F(6,6,Y) cho B để B tính H(F(5,5,Y), F(6,6,Y)), nếu giá trị này bằng F(5,6,Y) thì B xét tiếp F(5,5,Y)

- B tự tính H(Y5), nếu F(5,5,Y) = H(Y5) thì quá trình xác thực hoàn tất

Hình 2.4-Xác thực dữ liệu sử dụng cây băm Merkle 8 node lá

Ngày đăng: 11/03/2021, 10:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Văn Tiến (2011), Giáo trình Tiền tệ Ngân hàng, NXB Thống kê 2. Trịnh Nhật Tiến (2009), Giáo trình An toàn dữ liệu, NXB ĐHQGHN Tiếng Anh Sách, tạp chí
Tiêu đề: Giáo trình Tiền tệ Ngân hàng", NXB Thống kê 2. Trịnh Nhật Tiến (2009), "Giáo trình An toàn dữ liệu
Tác giả: Nguyễn Văn Tiến (2011), Giáo trình Tiền tệ Ngân hàng, NXB Thống kê 2. Trịnh Nhật Tiến
Nhà XB: NXB Thống kê 2. Trịnh Nhật Tiến (2009)
Năm: 2009
3. Adam Back (1997), Hashcash, http://www.cypherspace.org/hashcash Sách, tạp chí
Tiêu đề: Hashcash
Tác giả: Adam Back
Năm: 1997
4. Adam Back (2002), Hashcash - A Denial of Service Counter - Measure, www.hashcash.org/papers/hashcash.pdf Sách, tạp chí
Tiêu đề: Hashcash - A Denial of Service Counter - Measure
Tác giả: Adam Back
Năm: 2002
5. Bitcoin Wiki. 2015. “Base58Check_encoding”. Truy cập ngày 17/09 https://en.bitcoin.it/wiki/Base58Check_encoding Sách, tạp chí
Tiêu đề: Base58Check_encoding
6. Bitcoin Wiki. 2015. “Controlled_supply”. Truy cập ngày 17/09 https://en.bitcoin.it/wiki/Controlled_supply Sách, tạp chí
Tiêu đề: Controlled_supply
9. Ralph Charles Merkle (1979), Secrecy, authentication and public key systems, Technical Report No. 1979-1 Stanford University Sách, tạp chí
Tiêu đề: Secrecy, authentication and public key systems
Tác giả: Ralph Charles Merkle
Năm: 1979
10. S. Haber, W.S. Stornetta (1991), How to time-stamp a digital document, Journal of Cryptology, vol 3, no 2, pages 99-111 Sách, tạp chí
Tiêu đề: How to time-stamp a digital document
Tác giả: S. Haber, W.S. Stornetta
Năm: 1991
11. Satoshi Nakamoto (2009), Bitcoin: A Peer-to-Peer Electronic Cash System, http://www.bitcoin.org/bitcoin.pdf Sách, tạp chí
Tiêu đề: Bitcoin: A Peer-to-Peer Electronic Cash System
Tác giả: Satoshi Nakamoto
Năm: 2009
12. Shahdad Naghshpour (2013), The fundamental of Money and Finance System, Business Expert Press Sách, tạp chí
Tiêu đề: The fundamental of Money and Finance System
Tác giả: Shahdad Naghshpour
Năm: 2013
13. Wei Dai (1998), b-money, http://www.weidai.com/bmoney.txt 14. Wikipedia. 2015. “Base58”. Truy cập ngày 17/09https://en.wikipedia.org/wiki/Base58 Sách, tạp chí
Tiêu đề: b-money", http://www.weidai.com/bmoney.txt 14. Wikipedia. 2015. “Base58
Tác giả: Wei Dai
Năm: 1998
15. Wikipedia. 2015. “Hashcash”. Truy cập ngày 17/09 https://en.wikipedia.org/wiki/Hashcash Sách, tạp chí
Tiêu đề: Hashcash
16. Wikipedia. 2015. “Proof-of-work system”. Truy cập ngày 17/09 https://en.wikipedia.org/wiki/Proof-of-work_system Sách, tạp chí
Tiêu đề: Proof-of-work system
17. Wikipedia. 2015. “TimeStamp”. Truy cập ngày 17/09 https://en.wikipedia.org/wiki/Timestamp Sách, tạp chí
Tiêu đề: TimeStamp
18. William Stallings (2011), Cryptography And Network Security 5th Edition, Prentice Hall Pearson Education, Inc Sách, tạp chí
Tiêu đề: Cryptography And Network Security 5th Edition
Tác giả: William Stallings
Năm: 2011

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

TÀI LIỆU LIÊN QUAN

w