Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Đại cương Nghiên cứu, ứng dụng blockchain trong quản lý thông tin học tập và rèn luyện của...

Tài liệu Nghiên cứu, ứng dụng blockchain trong quản lý thông tin học tập và rèn luyện của sinh viên trường đại học mở hà nội

.PDF
91
1
127

Mô tả:

PHẠM VĂN TUẤN BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU, ỨNG DỤNG BLOCKCHAIN TRONG QUẢN LÝ THÔNG TIN HỌC TẬP VÀ RÈN LUYỆN CỦA SINH VIÊN TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI PHẠM VĂN TUẤN KHÓA HỌC 2017 HÀ NỘI - 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU, ỨNG DỤNG BLOCKCHAIN TRONG QUẢN LÝ THÔNG TIN HỌC TẬP VÀ RÈN LUYỆN CỦA SINH VIÊN TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI PHẠM VĂN TUẤN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: 8.48.02.01 NGƯỜI HƯỚNG DẪN KHOA HỌC: ĐINH TUẤN LONG HÀ NỘI - 2021 LỜI CAM ĐOAN Tên tôi là: Phạm Văn Tuấn Sinh ngày: 04/10/1977 Là học viên lớp cao học: 17M-CT5 - Trường Đại học Mở Hà Nội Nơi công tác: Trường Đại học Mở Hà Nội Tôi xin cam đoan: 1. Tôi xin cam đoan “Nghiên cứu, ứng dụng Blockchain trong quản lý thông tin học tập và rèn luyện của sinh viên Trường Đại học Mở Hà Nội” là công trình nghiên cứu khoa học của tôi dưới sự hướng dẫn khoa học trực tiếp của TS. Đinh Tuấn Long. Các nội dung nghiên cứu, kết quả nghiên cứu được trình bày trong luận văn hoàn toàn là trung thực, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật của Việt Nam. 2. Mọi tham khảo dùng trong khóa luận đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố. 3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm. Hà Nội , ngày tháng năm 2022 Học viên thực hiện Phạm Văn Tuấn i LỜI CẢM ƠN Lời đầu tiên tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc đến thầy giáo TS Đinh Tuấn Long - Giám đốc Trung tâm Công nghệ học liệu Trường Đại học Mở Hà Nội, người thầy đã giúp tôi chọn đề tài và định hình hướng nghiên cứu, trân trọng cảm ơn các thầy cô của Trung tâm công nghệ học liệu đã tạo điều kiện giúp đỡ những thông tin cần thiết về công nghệ đào tạo của nhà trường và tận tình hướng dẫn, chỉ bảo tôi trong quá trình thực hiện luận văn tốt nghiệp. Tôi cũng xin gửi lời cảm ơn các thầy, cô giáo trong Khoa Công nghệ thông tin - Trường Đại học Mở Hà Nội. Các thầy, cô giáo đã dạy bảo và truyền đạt cho tôi rất nhiều kiến thức, giúp tôi có được một nền tảng kiến thức vững chắc sau những năm học tập tại Trường Đại học Mở Hà Nội. Tôi xin gửi lời cảm ơn chân thành tới các bạn khóa 17M-CT5 và các bạn đồng nghiệp Khoa Kinh tế đã luôn luôn ở bên cạnh, động viên và chia sẻ tôi trong suốt quá trình học tập tại trường. Cuối cùng, tôi muốn gửi lời cảm ơn sâu sắc nhất đến gia đình và bạn bè, đặc biệt là vợ và các con - những người thân yêu luôn kịp thời động viên và giúp đỡ tôi vượt qua những khó khăn trong học tập cũng như trong cuộc sống. Hà Nội, ngày tháng năm 2022 Học viên Phạm Văn Tuấn ii iii MỤC LỤC LỜI CAM ĐOAN .............................................................................................. i LỜI CẢM ƠN ................................................................................................... ii NHIỆM VỤ CỦA LUẬN VĂN....................................................................... iii MỤC LỤC ........................................................................................................ iv DANH MỤC CÁC TỪ VIẾT TẮT ................................................................. vi DANH MỤC CÁC BẢNG BIỂU – HÌNH VẼ ............................................... vii MỞ ĐẦU ........................................................................................................... 1 CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ BLOCKCHAIN .................................... 3 1.1.Tìm hiều Blockchain ................................................................................... 3 1.2.Nền tảng lý thuyết ....................................................................................... 5 1.2.1.Hàm băm .................................................................................................. 5 1.2.2.Các kỹ thuật chính .................................................................................. 13 1.2.3.Cấu trúc phi tập trung ............................................................................ 13 1.2.4.Tính toán tin cậy…………………….. ...................................................... 16 1.3.Nghiên cứu công nghệ Blockchain ........................................................... 16 1.3.1.Chuỗi khối block bên trong Blockchain ................................................. 16 1.3.2.Cách thức hoạt động của công nghệ Blockchain................................... 17 1.3.2.1.Các đặc trưng của Blockchain ............................................................ 18 1.3.2.2.Ưu điểm của Blockchain ..................................................................... 20 1.3.2.3.Nhược điểm, hạn chế và thách thức với Blockchain ........................... 21 1.3.2.4.Giải pháp ứng dụng với Blockchain ................................................... 26 1.3.3.Các loại Blockchain ............................................................................... 26 1.3.4.Một số ứng dụng phổ biến của Blockchain ........................................... 28 1.4.Quản lý thông tin học tập và rèn luyện trong trường Đại học .................. 33 1.4.1.Khái niệm……………………………………………………………..............33 1.4.2.Các mô hình quản lý học tập và rèn luyện tại các trường đại học hiện nay ................................................................................................................... 33 1.5.Kinh nghiệm triển khai Blockchain .......................................................... 34 1.5.1.Kinh nghiệm triển khai trên thế giới ...................................................... 34 1.5.2.Kinh nghiệm triển khai tại Việt Nam ..................................................... 39 iv 1.5.3.Kinh nghiệm triển khai trong giáo dục và đào tạo ................................ 42 Kết luận chương 1 ........................................................................................... 43 CHƯƠNG 2: THỰC TRẠNG VIỆC QUẢN LÝ THÔNG TIN QUÁ TRÌNH HỌC TẬP VÀ RÈN LUYỆN CỦA SINH VIÊN TẠI ................................... 44 2.1.Giới thiệu về các hoạt động sinh viên ....................................................... 44 2.1.1.Chức năng và nhiệm vụ của các phòng ban .......................................... 45 2.1.2.Công tác quản lý học tập sinh viên ........................................................ 52 2.1.3.Công tác đánh giá rèn luyện sinh viên ................................................... 56 2.2.Quản lý và lưu trữ kết quả học tập và rèn luyện ....................................... 58 Kết luận chương 2……. .................................................................................. 58 CHƯƠNG 3: ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG VIỆC QUẢN LÝ THÔNG TIN QUÁ TRÌNH HỌC TẬP VÀ RÈN LUYỆN CỦA SINH VIÊN TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI ........................................... 60 3.1. Đặt vấn đề bài toán ................................................................................... 60 3.1.1. Bài toán đặt ra ...................................................................................... 60 3.1.2. Cách tiếp cận và giải pháp ................................................................... 62 3.2. Đề xuất mô hình ứng dụng công nghệ blockchain trong việc quản lý thông tin quá trình học tập và rèn luyện sinh viên tại Trường Đại học Mở Hà Nội ................................................................................................................... 64 3.3. Xây dựng và thử nghiệm .......................................................................... 67 3.3.1. Phân tích, thiết kế hệ thống ................................................................... 67 3.3.2. Xây dựng hệ thống ................................................................................ 67 3.3.3. Chức năng để truy xuất thông tin của người học qua mã QR .............. 70 3.3.4. Triển khai thử nghiệm, đánh giá ........................................................... 74 3.3.5. Kịch bản triển khai ................................................................................ 78 Kết luận chương 3 …………………………………………………………...58 KẾT LUẬN CHUNG ...................................................................................... 80 TÀI LIỆU THAM KHẢO ............................................................................... 81 v DANH MỤC CÁC TỪ VIẾT TẮT STT Tên viết Tên đầy đủ tắt 1 ATTT An toàn thông tin 2 CNTT Công nghệ thông tin 3 CSDL Cơ sở dữ liệu 4 LMS Learning Management System Dịch ra Tiếng Việt Hệ thống quản lý thông tin học tập 5 SV Sinh viên 6 HV-SV Học viên - Sinh viên 7 API Application Programming Giao diện lập trình Interface ứng dụng vi DANH MỤC CÁC BẢNG BIỂU - HÌNH VẼ Hình 1.1: Ví dụ về hàm băm (Nguồn: Tài liệu tham khảo [3]) ....................... 8 Hình 1.2: Cấu trúc dữ liệu của Blockchain ..................................................... 13 Hình 1.3: Cấu trúc của block gốc trong blockchain........................................ 14 Hình 1.4: Một Block trong một Blockchain (Nguồn tài liệu tham khảo [3]) 17 Hình 1.5: Mô hình hoạt động của Blockchain ................................................ 18 Hình 1.6: Cơ chế hoạt động của giao dịch trên Blockchain .......................... 24 Hình 1.7: Cơ sở dữ liệu phân tán ................................................................... 24 Hình 1.8: Mạng các nút .................................................................................. 25 Hình 1.9: Phân loại Blockchain (Tham khảo IBM) ........................................ 27 Hình 1.10: Tiền điện tử Bitcoin ..................................................................... 28 Hình 1.11: Hợp đồng thông minh Smart Contracts ....................................... 29 Hình 1.12: Điện toán đám mây phi tập trung (Nguồn: Internet) ................... 30 Hình 2.1 - Hệ thống đánh giá giảng dạy ........................................................ 51 Hình 2.2. - Phần mềm Quản lý học tập (CTMS) ............................................ 55 Hình 2.3. - Phần mềm Quản lý học tập (TMAS) ............................................ 55 Hình 2.4 - Hệ thống quản lý đánh giá rèn luyện ............................................. 57 Hình 3.1 - Lưu thông tin bằng cấp lên blockchain ......................................... 61 Hình 3.2 - Giải pháp quản lý bằng cấp, chứng chỉ trên blockchain ................ 62 Hình 3.3 - Các huy hiệu .................................................................................. 66 Hình 3.4 - Sơ đồ kiến trúc hệ thống ................................................................ 68 Hình 3.5 Open badge (Nguồn tài liệu tham khảo [10]) .................................. 69 Hình 3.6 - Cấu trúc mã nguồn ......................................................................... 70 vii MỞ ĐẦU 1. Tính cấp thiết của đề tài Việc lưu trữ và tra cứu toàn bộ quá trình học tập, nghiên cứu của sinh viên nếu được triển khai thành công sẽ mang lại rất nhiều lợi ích cho sinh viên cũng như nhà trường mỗi khi cần tới các thông tin này. Tuy nhiên để thực hiện được công việc này là rất khó vì hiện nay các trường chủ yếu chỉ lưu trữ các thông tin về điểm chứ không có các thông tin khác của sinh viên. Vì vậy, đề tài hướng tới việc sử dụng công nghệ blockchain. - Công nghệ Blockchain hỗ trợ lưu trữ và truyền tải thông tin bằng các khối (block) được liên kết với nhau và mở rộng theo thời gian. Các khối này chứa đựng các thông tin về thời gian khởi tạo và được liên kết với các khối trước đó, được thiết kế để chống lại sự thay đổi dữ liệu. - Sử dụng blockchain để lưu trữ sẽ có tính an toàn, minh bạch, chuẩn xác và vô thời hạn tất cả các dữ liệu thông tin của toàn bộ thời gian sinh viên học tập tại trường. - Các thông tin của sinh viên sẽ phục vụ trong quá trình đang học tập tại trường cũng như khi sinh viên tốt nghiệp: Các nghiệp vụ quản lý của nhà trường, Xác minh thông tin học tập của sinh viên khi có nhu cầu cần nhà trường xác nhận để xin ứng tuyển việc làm, Công nhận kết quả học tập giữa các trường, Kiểm định văn bằng chứng chỉ. Vì vậy, tác giả nghiên cứu Công nghệ Blockchain ứng dụng trong việc quản lý thông tin quá trình học tập và rèn luyện của sinh viên tại Trường Đại học Mở Hà Nội. 2. Mục tiêu nghiên cứu - Nghiên cứu công nghệ Blockchain - Giới thiệu một số giải pháp ứng dụng trong quản lý học tập và rèn luyện sinh viên. - Nghiên cứu cách thức để triển khai ứng dụng blockchain trong quản lý 1 thông tin quá trình học tập và rèn luyện của sinh viên tại Trường Đại học Mở Hà Nội 3. Đối tượng nghiên cứu - Nghiên cứu ứng dụng blockchain trong việc quản lý thông tin quá trình học tập và rèn luyện của sinh viên. - Trong luận văn, tác giả sẽ trình bày việc ứng dụng blockchain trong việc quản lý thông tin quá trình học tập và rèn luyện của sinh viên Hệ Chính quy đang theo học tại Trường Đại học Mở Hà Nội. 4. Phạm vi nghiên cứu - Nghiên cứu công nghệ blockchain - Nghiên cứu thực trạng công tác quản lý quá trình học tập và rèn luyện của sinh viên tại Trường Đại học Mở Hà Nội - Nghiên cứu ứng dụng blockchain trong việc quản lý quá trình học tập và rèn luyện của sinh viên tại Trường Đại học Mở Hà Nội - Xây dựng hệ thống thử nghiệm tại Trường Đại học Mở Hà Nội 5. Phương pháp nghiên cứu - Đề tài sử dụng các phương pháp nghiên cứu đặc thù của khoa học kỹ thuật và công nghệ là phương pháp thực nghiệm – thử sai. Bên cạnh đó, các phương pháp nghiên cứu tài liệu, phân tích, tổng hợp, quy nạp, diễn dịch, suy luận logic, thống kê cũng được sử dụng theo các giai đoạn khác nhau. - Các phương pháp nghiên cứu tài liệu, phương pháp phân tích, so sánh, tổng hợp, quy nạp, diễn dịch được vận dụng kết hợp trong việc làm rõ những vấn đề lý luận, trọng tâm, những yếu tố quan trọng về kỹ thuật công nghệ cũng như các phương pháp luận trong việc ứng dụng công nghệ blockchain trong quản lý quá trình học tập và rèn luyện của sinh viên - Các phương pháp thống kê, nghiên cứu được vận dụng để tìm hiểu làm rõ thực trạng việc quản lý thông tin quá trình học tập và rèn luyện của sinh viên, những đặc trưng của quá trình quản lý thông tin quá trình sinh viên tại trường. 2 CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ BLOCKCHAIN 1.1. Tìm hiều Blockchain Blockchain là chủ đề đang vô cùng nóng trên toàn cầu hiện nay. Nó cùng với Bitcoin và tiền kỹ thuật số trở thành đề tài bàn luận trên rất nhiều mặt báo và trong những cuộc trò chuyện của mọi người. Tuy nhiên, khi nói về blockchain vẫn còn nhiều tranh cãi. Các nhà chuyên gia đánh giá rằng Bitcoin có thể chỉ là bong bóng, nhiều người cho rằng công nghệ phía sau nó là một sự đột phá và công nghệ này sẽ tiếp tục con đường của mình cho đến khi được chấp nhận và tích hợp với Internet. Blockchain là một sổ cái kỹ thuật số được phân chia hay dễ hiểu hơn là cơ sở dữ liệu trong một mạng. Sổ cái được chia sẻ cho những người tham gia vào mạng lưới. Điều này cho thấy rằng trong toàn bộ hệ thống không phải chỉ có một vị trí duy nhất, một tài liệu có thể làm căn cứ đáng tin (Authority) duy nhất, vì những lần sao chép cùng một phiên bản sổ cái được đặt ở nhiều nơi. Tất cả các bản sao này được cập nhật khi dữ liệu hoặc giao dịch mới được ghi vào blockchain thông qua sự đồng thuận của tất cả mọi người tham gia. Người đào có trách nhiệm phê duyệt các giao dịch và giám sát mạng bằng cách giải quyết các công thức tinh vi với sự trợ giúp của máy tính. Nó là một hệ thống ngang hàng P2P, loại bỏ tất cả mọi khâu trung gian, làm tăng cường an ninh, minh bạch và sự ổn định cũng như giảm thiểu chi phí và lỗi do con người gây ra. Blockchain là công nghệ cốt lõi của tiền điện tử kỹ thuật số BitCoin. Blockchain là một cơ sở dữ liệu phân tán các hồ sơ của tất cả các giao dịch hoặc sự kiện kỹ thuật số đã được thực hiện và chia sẻ giữa các bên tham gia. Mỗi giao dịch được xác minh bởi phần lớn những người tham gia hệ thống. Nó chứa mọi bản ghi duy nhất của mỗi giao dịch. BitCoin là một ví dụ về Blockchain, đồng thời nó cũng là loại tiền điện tử phổ biến nhất hiện nay. Công nghệ Blockchain lần đầu tiên được công bố khi một người hoặc một tổ 3 chức ẩn danh có tên 'Satoshi Nakamoto' đã sáng tạo ra Bitcoin và đã khởi tạo ra phần mềm mã nguồn mở Bitcoin Core để công chúng sử dụng được Bitcoin. Bitcoin bắt đầu được Satoshi thiết kế từ 2007 khi ông tin rằng có thể thiết kế được một hệ thống giao dịch mà các thành viên không cần tin tưởng nhau. Bất kỳ thứ gì có giá trị như tài sản đất đai, ô tô... đều có thể được ghi lại trên Blockchain dưới dạng giao dịch. Một số trích dẫn đáng chú ý về công nghệ này được liệt kê dưới đây: - “Thế hệ đầu tiên của cuộc cách mạng kỹ thuật số mang lại cho chúng ta thông tin của Internet. Thế hệ thứ hai - được hỗ trợ bởi công nghệ blockchain - mang lại cho chúng ta giá trị của Internet: một nền tảng mới để định hình lại thế giới kinh doanh và biến đổi thứ tự công việc của con người trở nên tốt hơn.” [3] - “Blockchain là một kho lưu trữ, cơ sở dữ liệu phân tán toàn cầu, chạy trên hàng triệu thiết bị và mở cho mọi người, không chỉ đơn thuần là thông tin mà còn cả những thứ có giá trị, cả danh hiệu, hành vi, danh tính, thậm chí cả phiếu bầu - có thể được di chuyển, lưu trữ và quản lý một cách an toàn và tư nhân. Sự tin tưởng được thiết lập thông qua hợp tác giữa số đông và mã thông minh chứ không phải bởi các nhà trung gian mạnh mẽ như các chính phủ và ngân hàng.” [3] Với khả năng chia sẻ thông tin dữ liệu minh bạch theo thời gian thực, tiết kiệm không gian lưu trữ và bảo mật cao, công nghệ blockchain (chuỗi khối) là một trong những xu hướng công nghệ đột phá, có khả năng ứng dụng rộng rãi ở nhiều ngành nghề, lĩnh vực. 4 1.2. Nền tảng lý thuyết Công nghệ Blockchain được phát triển dựa trên hai nền tảng kỹ thuật chính là hàm băm và chữ ký số. Mỗi người dùng sẽ sở hữu một cặp khóa gồm khóa bí mật và khóa công khai. Khóa bí mật được lưu trữ bí mật và sử dụng để ký kết các giao dịch. 1.2.1. Hàm băm Hàm băm [6] dùng để chuyển đổi từ một thông tin sang một đoạn mã. Bất kỳ nỗ lực gian lận nào để thay đổi bất kỳ phần nào của blockchain sẽ bị phát hiện ngay lập tức vì giá trị băm mới sẽ không phù hợp với thông tin cũ trên blockchain. Bằng cách này, ngành khoa học bảo mật thông tin (cần thiết cho việc mã hóa thông tin và mua sắm trực tuyến, ngân hàng) đã trở thành một công cụ hiệu quả để giao dịch mở. 1.2.1.1. Khái niệm hàm băm Để lấy một bộ phận nhỏ của một thông điệp [6] thì cần phải sử dụng một phương pháp toán học gọi là phương pháp hàm băm (Hash function) là một giải thuật toán học (một ánh xạ một - một (một chiều)) cho ứng với một khối dữ liệu (một dãy bit hay một đối tượng trong lập trình hướng đối tượng của thông điệp gốc) một giá trị băm duy nhất. Chú ý ở đây tính một chiều có nghĩa là: Mỗi khối dữ liệu gốc qua một hàm băm sẽ cho một giá trị băm duy nhất, tuy vậy có thể có một giá trị băm ứng với hai khối dữ liệu gốc khác nhau vì vậy không thể từ giá trị băm tìm ngược lại khối dữ liệu đã sinh ra nó. Trường hợp qua một hàm băm H nếu có hai khối dữ liệu gốc nào đó cho cùng một giá trị băm thì ta gọi đấy là một sự đụng độ. Tuy nhiên điều quan trọng là: Nếu hai giá trị băm khác nhau thì chắc chắn hai khối dữ liệu tạo ra chúng là khác nhau. Vì vậy người nhận có thể tính lại giá trị băm của thông điệp nhận được rồi so sánh với giá trị tính được khi giải mã chữ ký điện tử để kiểm tra: Nếu hai giá trị khác nhau thì có thể 5 khẳng định nội dung thông điệp đã bị thay đổi. Một hàm băm được đánh giá là tốt nếu số đụng độ xảy ra rất nhỏ (xác suất rất thấp và hầu như không thể xảy ra). 1.2.1.2. Các phương pháp tạo hàm băm Một hàm băm tốt [6] phải thỏa mãn các điều kiện sau: - Tính toán nhanh - Các khóa được phân bố đều trong bảng - Ít xảy ra đụng độ - Xử lý được các loại khoa có kiểu dữ liệu khác nhau Các hàm băm được xác định theo cách tạo ra giá trị băm từ một dữ liệu. Có hai phương pháp chính để tạo hàm băm thường dùng là phương pháp cộng và nhân, phương pháp quay vòng.  Phương pháp băm kiểu cộng và nhân Theo phương pháp này giá trị băm được tạo ra bằng cách duyệt dọc theo chuỗi dữ liệu và liên tục cộng thêm vào một giá trị xuất phát từ một giá trị được tính cho mỗi phần tử trong dữ liệu. Giá trị tăng thêm ứng với mỗi phần tử thường được tính dưới dạng nhân với một số nguyên tố nào đó.  Phương pháp băm bằng cách quay vòng Đối với phương pháp này cũng cộng thêm vào mỗi phần tử trong dãy một giá trị giống như phương pháp băm kiểu cộng nhưng ở đây giá trị cộng thêm được xét từ cả hai phía bên trái và bên phải, tính toán để cộng thêm vào tại mỗi phần tử.  Các dạng băm thông dụng Trong “Thư viện hàm băm tổng quát” (The General Hash function Library) có nêu lên một số hàm băm hỗn hợp cộng và quay vòng chẳng hạn như các thuật toán sau đây: RS Hash Function: Một số hàm băm đơn giản từ thuật toán Robert 6 Sedgwicks. JS Hash Function: Hàm băm tính từ hai phía do Justin Sobel đề xuất. PJW Hash Function: Thuật toán bâm dựa trên công trình của Peter J.Weinberger thuộc Phòng thí nghiệm AT&T Bell. BKDR Hash Function: Hàm băm này được mô tả trong tác phẩm của Brian Kernighan và Dennis Ritchie’s “The C Programming Language” (Ngôn ngữ lập trình C). SDBM Hash Function: Đây là dạng hàm băm được chọn sử dụng trong các dự án mã nguồn mở SDBM. DJB Hash Function do GS. Daniel J. Berstein xây dựng và giời thiệu lần đầu tiên trên Newsgroup comp.lang.c. Có lẽ đây là một trong những hàm băm hiệu quả nhất từ trước đến nay đã được công bố. Message Digest (MD) algorithms: Những dãy thuật toán hướng byte, sản sinh ra một giá trị băm 128 bit cho các thông điệp có độ dài bất kỳ. - MD2 (RFC 1319): Được thiết kế cho những hệ thống có bộ nhớ hạn chế chẳng hạn như các thẻ thông minh. - MD4 (RFC 1320): Do Rivest phát triển, tương tự như MD2 nhưng được thiết kế đặc biệt cho những quá trình xử lý nhanh trong phần mềm. - MD5 (RFC 1321): Do Rivest phát triển sau khi phát hiện một số nhược điểm của MD4; Sơ đồ này tương tự như MD4 nhưng hoạt động chậm hơn do phải xử lý nhiều trên dữ liệu gốc. MD5 được tích hợp vào nhiều sản phẩm dù rằng vẫn còn một số nhược điểm mà nhà mật mã học người Đức Hans Dobbdertin đã chỉ ra năm 1996. Secure Hash Alogorithm (SHA): Thuật toán của chuẩn hàm băm an toàn của NIST.NIST’s Secure Hash Standard (SHS). SHA-1 tạo ra một giá trị băm 160 bit ban đầu được công bố với tên gọi là FIPS 180-1 và RFC 3174. FIPS 180-2 7 (tức là SHA-2) mô tả 5 thuật toán trong chuẩn SHS: SHA-1 cùng với SHA224, SHA-256, SHA-384 và SHA-512 có thể tạo ra giá trị băm có độ dài 224, 256, 384 hoặc 512 bit. 1.2.1.3. Công dụng của hàm băm Hàm [6] thường được dùng để xây dựng các bảng băm tức là bảng ghi các giá trị băm ứng với một số khôi dữ liệu mẫu: khi cần so sánh hai khối dữ liệu nào đó (thường có kích thước rất lớn), ta chỉ cần so sánh các giá trị băm có kích thước rất nhỏ của chúng. Ví dụ về hoạt động của một hàm băm: Hai chuỗi dữ liệu gốc chỉ khác nhau một từ (runs và walks nhưng qua hàm băm cho ra hia giá trị băm hoàn toàn khác nhau. So sánh hai giá trị băm thấy khác nhau, từ đó kết luận hai chuỗi dữ liệu gốc là khác nhau (dù không thể biết chúng khác nhau ở đâu). Đầu vào Giá trị băm Fox Hàm băm DFCD3454 The red fox runs across the ice Hàm băm 52ED879E The red fox walks across the ice Hàm băm 46042841 Hình 1.1: Ví dụ về hàm băm (Nguồn: Tài liệu tham khảo [3]) Vì tính thông dụng của hàm băm. Ngày nay đa số ngôn ngữ lập trình đều cung cấp thư viện ứng dụng bảng băm, trong đó có các vấn đề như: Bộ sưu tập (Collection), các danh sách (List), các bảng (Table), các ánh xạ (mapping), các từ điển (dictionary). Thông thường, các lập trình viên chỉ cần viết hàm băm cho các đối tượng nhằm tích hợp với thư viện bảng băm đã được xây dựng sẵn. Bảng băm là 8 một ứng dụng quan trọng của các hàm băm, cho phép tra cứu nhanh một bản ghi dữ liệu nếu cho trước khóa mã của bản ghi đó. Các hàm băm dành cho việc phát hiện và sửa lỗi tập trung phân biệt các trường hợp mà dữ liệu đã bị làm nhiễu trong quá trình truyền tin, giá trị băm tương đối nhỏ có thể được dùng để kiểm chứng rằng một tệp dữ liệu có kích thước tùy ý đã bị sửa lỗi hay không. Hàm băm được dùng để phát hiện lỗi truyền dữ liệu như sau: Phía bên gửi, hàm băm được tính cho dữ liệu được gửi, giá trị băm này được gửi cùng dữ liệu. Phía bên nhận, hàm băm lại được tính lần nữa, nếu các giá trị băm không trùng nhau thì lỗi đã xảy ra ở đâu đó trong quá trình truyền. Việc này gọi là kiểm tra thặng dư (Redundancy check). - Giả sử An có thông điệp V cần gửi cho Bình. An lấy giá trị băm H(V), mã hóa bằng khóa K đã trao đổi với Bình: K[H(V)] = H’ gắn với V và gửi tất cả cho Bình. H’ chính là chữ ký điện tử của An trong thông điệp. - Bình nhận được thông điệp, trước hết giải mã H’ tìm ra một giá trị băm H. Tiếp đó dùng hàm băm chung tính lại giá trị băm của thông điệp nhận được. Nếu giá trị băm đó trùng với giá trị H nói trên thì Bình có hai kết luận: 1. Thông điệp chính do An gửi (qua kiểm tra khóa K) 2. Thông điệp không bị thay đổi trong quá trình truyền tin (giá trị băm trùng nhau). Trường hợp hai giá trị tìm được khác nhau thì: Hoặc không phải là thông điệp do An gửi Nội dung thông điệp đã sai lạc trong quá trình truyền Vì vậy, sử dụng chữ ký điện tử (có chứng thực) gắn kèm vào thông điệp, có thể đảm bảo các yêu cầu sau: - Nhận diện định danh người phát hành thông điệp - Người phát hành thông điệp không thể chối bỏ - Đảm bảo tính vẹn toàn thông tin, phát hiện trường hợp thông điệp 9 bị can thiệp trên đường chuyển vận. 1.2.1.4. Ý nghĩa của băm trong Blockchain Xương sống của một loại tiền điện tử là blockchain của nó, là một sổ cái toàn cầu được hình thành bằng cách liên kết các khối dữ liệu giao dịch riêng lẻ với nhau. Blockchain chỉ chứa các giao dịch được xác thực, giúp ngăn chặn các giao dịch gian lận và chi tiêu gấp đôi tiền tệ. Quá trình xác nhận dựa trên dữ liệu được mã hóa bằng cách sử dụng băm thuật toán. Giá trị được mã hóa kết quả là một chuỗi các số và chữ cái không giống với dữ liệu gốc và được gọi là hàm băm. Khai thác tiền điện tử liên quan đến việc làm việc với hàm băm này. Băm yêu cầu xử lý dữ liệu từ một khối thông qua hàm toán học, dẫn đến kết quả đầu ra có độ dài cố định. Sử dụng đầu ra có độ dài cố định sẽ tăng tính bảo mật, vì bất kỳ ai đang cố gắng giải mã hàm băm không thể cho biết đầu vào dài hay ngắn chỉ bằng cách nhìn vào độ dài của đầu ra. Ví dụ, băm từ chữ “Công nghệ thông tin” sẽ tạo ra một đầu ra có cùng độ dài với hàm băm “Công nghệ Blockchain”. Hàm được sử dụng để tạo hàm băm có tính xác định, nghĩa là nó sẽ tạo ra cùng một kết quả mỗi lần sử dụng cùng một đầu vào; có thể tạo ra một đầu vào băm hiệu quả; làm cho việc xác định đầu vào khó khăn (dẫn đến khai thác); và thực hiện các thay đổi nhỏ đối với kết quả đầu vào trong hàm băm rất khác nhau. Việc xử lý các hàm băm cần thiết để mã hóa các khối mới đòi hỏi sức mạnh xử lý đáng kể của máy tính, có thể tốn kém. Để lôi kéo các cá nhân và công ty, được gọi là người khai thác, đầu tư vào công nghệ cần thiết, các mạng tiền điện tử thưởng cho họ cả token tiền điện tử mới và phí giao dịch. Công cụ khai thác chỉ được bù nếu chúng là người đầu tiên tạo ra hàm băm đáp ứng các yêu cầu được đặt ra trong hàm băm đích. Giải quyết hàm băm về cơ bản là giải quyết một vấn đề toán học phức tạp và bắt đầu với dữ liệu có sẵn trong tiêu đề khối. Mỗi tiêu đề khối chứa 10 một số phiên bản, dấu thời gian, hàm băm được sử dụng trong khối trước đó, hàm băm của Merkle Root, nonce và băm đích. Công cụ khai thác tập trung vào nonce, một chuỗi số. Số này được gắn vào nội dung được băm của khối trước đó, sau đó chính nó được băm. Nếu hàm băm mới này nhỏ hơn hoặc bằng hàm băm mục tiêu, thì nó được chấp nhận làm giải pháp, người khai thác được trao phần thưởng và khối được thêm vào blockchain. Việc giải hàm băm yêu cầu người khai thác xác định chuỗi nào sẽ sử dụng làm chuỗi không, chính nó yêu cầu một số lượng đáng kể thử và sai. Điều này là do nonce là một chuỗi ngẫu nhiên. Rất khó có khả năng một người khai thác sẽ thành công với lần đầu tiên chính xác trong lần thử đầu tiên, có nghĩa là người khai thác có thể kiểm tra một số lượng lớn các tùy chọn nonce trước khi thực hiện đúng. Độ khó càng lớn - thước đo mức độ khó để tạo ra một hàm băm đáp ứng yêu cầu của hàm băm mục tiêu - càng mất nhiều thời gian để tạo ra một giải pháp. 1.2.1.5. Chữ ký số Việc tạo chữ ký điện tử [6] qua mã hóa giá trị băm của mỗi thông điệp không dễ dàng thục hiên với cá nhân, tổ chức khi điều kiện chưa trang bị tốt về công nghệ thông tin. Nếu chỉ nhằm mục đích nhận biết và không chối bỏ, người ta thường dùng một phương pháp đơn giản hơn: đó là chữ ký số (digital signature). Chữ ký số có thể xem là một lớp con của chữ ký điện tử. Sau khi hai đối tác đã trao đổi khóa mã K, An dùng khóa K để mã hóa một nội dung dữ liệu cố định S nào đó: K(S)=S’ và sẽ gắn S’ vào mọi thông điệp của mình phát hành. Khi An nhận được một thông điệp có gắn S’, dùng K để giải mã được S thì nhận ra thông điệp là do An phát hành. S’ là chữ ký số của An. Nội dung chữ ký số rất phong phú: có thể là một đoạn văn bản (họ và tên, chữ ký thật scan lên máy tính, chữ ký vẽ lên máy tính và lưu trữ lại…), một hình ảnh, một câu nói hoặc một đoạn video và cũng có thể sử dụng hàm băm để lấy giá trị băm 11
- Xem thêm -

Tài liệu liên quan