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

Các mô hình chia sẻ dựa trên mã hóa ngưỡng ứng dụng vào bài toán chữ ký số

12 0 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

Tiêu đề Các Mô Hình Chia Sẻ Dựa Trên Mã Hóa Ngưỡng Ứng Dụng Vào Bài Toán Chữ Ký Số
Tác giả Trần Minh Long, Phan Tôn Lộc Nguyên, Nguyễn Minh Phúc, Trần Ngọc Huyền, Đào Thị Mỹ Linh, Nguyễn Thị Tuyết Lan, Nguyễn Quang Huy, Dương Hoàng Huy, Nguyen Huy Hoàng, Lê Phúc Lũ, Nguyen Hữu Tình
Trường học Trường Đại học Công nghiệp Thành phố Hồ Chí Minh
Chuyên ngành Khoa Công nghệ Thông tin
Thể loại bài báo
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 1,19 MB

Nội dung

Nhằmmụcđích xácnhận chủ sở hữu của một vấn đề.Chữ kỷ số khóacông khai hay hạ tầng khóa côngkhai là mộtmô hình ứngdụng mã hóabất đối xứngAsymmetric encryptionmodelvào chữ ký sổđể tạo sự t

Trang 1

CÁC MÔ HÌNH CHIA SẺ DựA TRÊN MÃ HÓA NGƯỠNG ỨNG DỤNG VÀO

BAI TOÁN CHỮ KÝ SỐ

TRẦN MINHLONG1*,PHAN TÔN LộcNGUYÊN1,NGUYỄN MINH PHÚC1, TRẦN NGỌC HUYỀN1, ĐÀOTHỊ MỸ LINH1,NGUYỄN THỊTUYẾT LAN1, NGUYỄN QUANG HUY1, DỮƠNG

}Khoa Công nghệ Thông tin, TrườngĐại học Công nghiệp Thành phổ Hồ Chỉ Minh

*minhlong2002@gmail.com

Tóm tăt Mã hóa, bảo mậtluôn đóng vai tròquantrọng trong nhiều lĩnhvựccủa đời sống, đặc biệt làkhi

mộtdữ liệu nhạy cảm cần chia sẻ trong một nhómngười Bài toán đặt ra là sau khi mã hóa sử dụng khóa

côngkhai, để có thể giải mã, cần có sự thamgia củamột số lượng đủ lớn của những người trong nhóm (mã hóa ngưỡng) Nhóm nghiên cứu sẽ tìmhiểuý nghĩacủa bài toán, cách thức hoạt động củacác mô hình có liên quan như: Secret Shamir Sharing, Blakley, Định lý số dư TrungHoa (CRT) và nền tảngToán khác Nhóm sẽ tiếnhành cài đặt và đánh giá, sosánhgiữacác schemes nêu hên, đồngthời kết hợpthêm mã hóa bất đốixứng,từ đó tìmcách ứng dụng vào bài toán chữ ký số

Từ khóa Mãhóa ngưỡng, Secret ShamirSharing, Blakley, Định lý số dưTrungHoa,chữ ký số

THRESHOLD CRYPTOGRAPHY SYSTEM APPLIED TO DIGITAL SIGNATURE

PROBLEMS Abstract Encryption and security always play a crucial role in many areas of life, especially when sensitive data needs to be shared among a group ofpeople The problem is that after encrypting using public-key encryption, to be able to decrypt, the participation ofa largeenough amount ofpeople inthe

group is requữed(threshold encryption).Inthis research,we will investigate die definition ofdie problem,

combine asymmetricencryption and apply them to die digital signature problem

Keywords Threshold cryptography, Secret ShamirSharing, Blakley, CRT,Digital Signature

1 GIỚI THIỆU

1.1 Mô hình mã hóa ngưỡng (threshold encryption model)

1.1.1 Định nghĩa

Mô hình mã hỏa ngưỡng là một trong những mô hình mật mã học mà trong đó thôngtin sẽ được mã hóa

tạothành các khóa khác nhau rồi phânphối cho nhiều bên sở hữu Đe giải mã thôngtin đã được mãhóa

cầnsự tham gia củamột số bêngiữ khóa nhất định (nhiều hơn hoặc bằngngưỡngđịnhhước) cùng hợp tác

Một dong nhữngưu điểmcơ bản củamô hìnhnày là nó có thể ra tạo sựthuậntiện dong quá trình quản lý

khóa.Vớicác hệ thống mật mãtruyền thống, nếu người giữkhóabịthất lạc khóa hoặc bịtan công, toàn bộ

hệ thống có thểcần phải đổi khóamới để đảm bảo antoàn Trong môhình mã hóa ngưỡng, khóa có thể

đượcxây dựng lạibằng cách sửdụng các phần còn lại, chophéphệ thống hoạt độngtiếp, không gián đoạn

Mô hình mã hỏa ngưỡng có thể đượcứng dụng bong nhiềulĩnh vực, bao gồm giaotiếpan toàn, kiểm soát

duy cập vàchữ ký số.Nó cũnglàmột thànhphầnquan họng củatính toánđa bên, chophépnhiều bên cùng

tính toán một chức năngmà không tiết lộ đầu vàoriêng tưcủa họ

Trang 2

Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH

1.1.2 Tính chất

Tính bảo mật: được thiết kế để bảo vệ các thông tin bí mật bằng cách phânchiachúng thànhnhiềuphầnvà

phân phối chúng đếnnhiềungườidùng khác nhau Điều này đảm bảo rằngkhôngcóai có thể khôi phụclại

thông tinbí mậtnếukhông có đủ sốlượngngười dùng ràcácphần của thông tin

Tính tin cậy: phânchia thông tin thành nhiều phần khác nhau sẽđảm bảo rằng thông tinkhông bị mất hoặc

hưhỏngkhimột phần bị mất hoặc bị thay đối Các phần thông tin được giữbởi nhiều người dùng khác

Tinh linh hoạt: cho phép sử dụng các thông tin bí mật khác nhau với số lưọng người đượcphân chia và

ngưỡngkhác nhau tùy theo yêu cầucủa người dùng Điều này làm cho mã hóa ngưõng trỏ' nên linhhoạtvà

cóthể được áp dụng cho nhiều mụcđích khác nhau

Tinh hiệu suất: có hiệu suất cao vì nó cho phép nhiềungười dùng có thể truycập vào thông tin bí mật cùng một lúc, giảm thiểu thòigianvà tài nguyêncần thiết để quản lý thông tin bímật

Tỉnh an toàn: có mức độ bảo mậtcao hơn sovới các hệ thống mật mã đonngườidùng truyền thống Trong

môhình mã hóa ngưỡng, thôngtin được chiathành nhiều khóa khác nhau, mỗi khóachỉnắmgiữ một phần củathông tin Điều này làm cho việc tấn côngđểtruycập đến toànbộ thông tin trở nênkhó khăn

1.2 Chữ ký số (digital signature)

1.2.1 Định nghĩa

Chữ ký số (Digital signature) làmột phần của chữ kýđiện tử, đây một dạng dữ liệu văn bản xác thực và

thường được đính kèm theo cácloại dữ liệu siêu văn bản khác như hìnhảnhâm thanh, video, Nhằmmục

đích xácnhận chủ sở hữu của một vấn đề

(Asymmetric encryptionmodel)vào chữ ký sổđể tạo sự tincậy trong việc xác thực độ uy tín của chữ ký

thôngquacặp khóa côngkhai - bí mật.Qua đó, ngưòi dùng có thểký gián tiếp các văn bảnđiện tử haytrao đỗi các thông tin một cách bí mật, uy tínvà an toàn

1.2.2 Tính chất

Tính toàn vẹn: do được áp dụng mô hình mã hóa một chiều (One-way encryptionmodel) nên thùa hưởng tính vẹn toàn từ mô hình này Nhờ đó, thôngtin đâm bảo được toàn vẹn,vi nếuthôngtin được sửa chữa trongquá trình gửiđi thi dẫn đến mã băm sẽthay đỗi và không thể xác thực được thôngtín

Tinh một chiều: do được áp dụngmô hìnhmã hóa một chiều (One-way encryption model) nên thừa hưởng

tính một chiều từ mô hình này.Nhờ đó, nếuquá trìnhmã hóa và truyềnthôngtin bị lộ đoạnmã bămthi các

tín tặc vẫnkhôngthểgiải mã và tìm đượcvề thông tin quantrọng ban đầu

Tinh xác thực chủ sở hữu, xác định nguồn gốc: được áp dụngmô hình mãhóa bất đối xứng.Nhờ đó,bên gửiđicó thểdùng khóa riêng tưcủa mình để mã hóa đoạn mã băm (hay mãgốc) tạo thành chữ ký số và gửi đi; bênnhận nhận được chữ ký, dùngkhóa công khai của bêngửi giải mã đểthu được mã gốc (quá trình

xác thực chủ sở hữu), sau đó sosánh mãgốc nhận được vói mã gốcban đầu (xác định nguồn gốc)

Tính không thể phủ nhận: được ápdụng mô hình mã hóa bất đối xứng Nhờ đó, thông tin được mã hóavà giải mã ngay từ chínhcặp khóa côngkhai -bí mật củangườigửinên ngườigửi khôngthể phủ nhận

54 © 2023 TrườngĐạihọcCôngnghiệpThànhphốHồChí Minh

Trang 3

2 CÁC LÝ THUYẾT cơ SỞ

2.1 Tổng hợp các lý thuyết

Các mô hình chiasẻ bí mật dựa trên Thresholdcryptosystem sửdụngnhiềuphép toán rời rạc và số học:

mậtđược chia sẻ.Các phéptính toán trêncácphần tử được thực hiệntrong không gian modulo để tránh

việc thông tin bímật bịlộ ra bên ngoài

• Phép toán nghịch đảo modular (Modular Inverse): Đâylà mộtphép toánrất quan trọng trong mô hình chia sẻ bí mật Phép toán nàyđược sửdụng để tínhtoán cácgiá trịkhóa riêng tư vàkhóa công khaicho các thành viên trong tập hợp con

• Phép toán XOR (Exclusive OR): Đây làmộtphép toán rời rạc đơngiản được sử dụng đểtạora các bộ

khóavà chia sẻ bí mật Ví dụ: a XOR b = c,trong đó cđượctính bằng cáchsosánhtừng bit của avà

b TrongC/C++ XOR làmột toán tử logic đượcsửdụng để kiểm tra xem một sốđiều kiệncó đúng hay không

hên cácbit Ví dụ: a ANDb = c,trong đó c là giá trịđược tính bằng cáchsosánh từng bit củaavà b

và trả về giá trị 1 nếu cảhaibitđều là 1

• Phép toán OR (Logical OR): Đâylà mộtphép toánlogic được sử dụng để thựchiệncác tính toán trên các bit.Vídụ: a OR b= c, trong đó c làgiá trị đượctínhbằng cáchsosánh từng bit của avàbvà hả về

giá hi 1 nếu có ít nhất mộtbit là 1

• Mahận: thựchiện các tính toán đại sốtuyến tính và kiểmtra tính đúng đắn của quá trìnhchiasẻ bí mật Trong Python tính toán trênmatrậnthường được thực hiện bằng cách dùng thưviện NumPỵ

• Phép toán nhân hên các sốnguyênrờirạc:Phéptoán này đượcsử dụng đểtạora các khóa riêng tưvà khóacông khai cho các thành viên trong tập hợp con

• Phép toánchia trên cácsố nguyênrời rạc: Phép toán này được sử dụng đểtính toán cácngưỡngđược

thiết lập hước đó, vàchỉ khi số thành viên trong tập hợp con đạt đủ ngưỡng thì mới có thể khôi phục

lại thông tin bí mật

• Phéptoán cộngvàhừ hên cácsốnguyên rời rạc: Cácphép toán này được sửdụng để tính toáncácgiá

hị đại diện cho thôngtin bí mật,vàđảm bảo tính toàn vẹn của thôngtin khi chia sẻnó đến các thành

viên trong tập hợp con

• Giảihệ phương hìnhtuyến tính: Xây dựng dựa vào ma trận Được sử dụng cho mụcđích giải mãbí mậtBlakley sửdụng phép toánrời rạc được sửdụng để giải hệ phương trình nàyvà tìm ravector bí mật ban đầu

• Đa thức Lagrange: Đe khôi phục bí mật từcác phần được chiasẻ, các bênsử dụng đathứcLagrange

Đa thứcnày được tính bằng cách sử dụng các giá trị rờirạc và các điểm đượcchọn để chia sẻ bí mật ban đầu

2.2 Số học

2.2.1 Đồng dư

Cho m E N*;a,b E z Neu avà b khi chiachomcó cùng số dưta nói: avà b đồng dư theo modulo m

Kí hiệu: a = b (mod m) Hệthức: a = b (modm) gọi là đồngdưthức Các tính chất

a = b (mod m) a ±c = b ± c (mod m)

2.2.2 Định lý số dư Trung Hoa (Chinese Remainder Theorem - CRT)

2.2.2.1 Nội dung và úng dụng

Định lỷ sổ dư Trung Hoa (Chinese Remainder Theorem - CRT) là một địnhlý toán học liên quanđến số

học modulo và được sử dụng rộng rãi tronglý thuyết số,mã hóa thông tinvà cáclĩnh vực liênquan đến toán họcứng dụng Định lý nói về nghiệm của hệphương hình đồng dưbậcnhất:

Trang 4

Hội nghị Khoa học trẻ lẩn 5 năm 2023(YSC2023)-ỈƯH

Íx X = = aỵ a2 (mod (mod mỵ) ?n2)

X= a3 (mod ?n3)

Trongđó: ml, m2, , mk đôi một nguyên tố cùng nhau Cụ thể là: hệ luôn có nghiệm duynhất theo modulo

Bước 1: Đặt m = m1m2 rrifc = Njnii với i = 1,2,3, , k

Bước 2: Tìm các nghiệm N”1 của phươngtrình NjX = 1 (mod m) (sử dụng thuật toán Euclidmởrộng) Địnhnghĩa modulo nghịch đảo:Neugcd(a,b) = 1 => a*x (modb) = 1 thì Xlànghịchđảo củaa theomod b

Kí hiệu là: a-1 (mod b) Tìm x: a.x + b.y = 1

Bước 3: Tìm được một nghiệm củahệ là: Xo = SiNiN1”1mi

Bước4: Kết luận nghiệm: X = Xọ (mod m)

Ví dụ:(bài toán Hàn Tín Điểmbinh)Hàn Tín làmột danhtưóng thời Hán Sở, từng được phong tước vương thời Hán Cao Tổ Lưu Bang, ông có khảnăng tínhchính xác số binh línhbằng cách: Cho binh lính lần lượt xếp thành hàng 3, hàng 5, hàng 7, rồi lấy số binh lính dưra ở mỗi cách xếphàng đềtính ra được số lính

Cụ thể: binh línhxếphàng 3 thì dư 2người,xếp hàng 5 thì dư 3 người,xếphàng 7thì dư 5 người

Ta được một hệphưongtrình đồng dư là: 3,5, 7 đôimột nguyên tố cùng nhau, có UCLN là 1

• Bước 1: m=3.5.7= 105; mt = 5.7 = 35; m2= 3.7=21; m3 = 3.5 = 15

♦ Bước 2: Tìmđược gcd(35,3) = 1 Tìm modulo nghịchđảo của35 trong mod 3, đượckếtquả là 2

+ Tìmgcd(21,5)= 1 Tim modulo nghịchđảo của 21trong5, được 1

+ Tìm gcd(l 7,5) = 1 Tìm modulo nghịchđảo của 17 trong5, được 3

• Bước3: Xọ= 2.2.35 + 3.1.21 + 5.1.15 = 278

• Bước4: X = 278 (mod 105), do 278% 105 = Ố8 nênX = 68 (mod 105).

Bên dưới là cácứng dụng:

• Đềgiải quyết những bài toánvềsựtồn tại và đếm các số nguyên thỏa mãnmộthệ các điềukiện đồng

dư, quan hệ chiahết,

• Có nhiều ứng dụng trong các bài toán về số nguyên lốn áp dụng vào lí thuyết mật mã, trong đó tiêu biễu là lý thuyết mật mã RSA

• Sửdụng địnhlý đề chứng minh công thức Euler,hay giải bàitoánmở rộng của địnhlý Wilson và đếm

số nghiệm củaphương trình đồngdư

Ta cũng có thể áp dụng CRT vàomã hóa:

• CRT được sử dụngđế giảimãthông điệp được mã hóa bằngthuật toán RS A, giúp tăng tốc độxử lý và

đảmbảotính toán chính xác,tối ưuquá trình giảimã và mã hóa

• CRTgiúp tăng tốc độ tính toán trong mã hóa, giảmthiểu áp lực tính toántrêncác sốlớnvà không gian

lưutrữ yêucầu cho khối dữ liệu mã hóa

• CRT là mộtcông cụtoán họcđượcsử dụng rộng rãi trong các hệthốngmã hóa hiệnđại, trong đó quan trọng là mã hóa bất đối xứng, phổbiến nhất là mã hóa RSA

2.2.2.2 Mã nguồn C/C++

Đường dẫn Github: https://github.com/TranNgocHuyenl 9/YSC-2023■

2.3 Mô hình mã hóa bất đồi xứng (asymmetric encryption model)

2.3.1 Định nghĩa

Mô hỉnh mã hóa bất đối xứng (Asymmetric encryption model) là một trong những mô hình mật mã học mà

trong đó thông tin sẽ được mã hóathông quamột cặp khóa gồm khóa công khai (Public key) và khóa bi

mật (Private key) Khóa công khai có thể đượcchia sẻ rộng rãi và được sử dụng để mã hóa thông tin, trong khi khóa bí mật chỉ có thễđược sở hữu bởi chủsởhữu của nó vàđược sửdụng đểgiảimã thông tin

Phương pháp mã hóa bất đối xứngthường được sử dụngđềtăng tínhbảo mậtvà độ antoàn cho các thông tin quan trọng trong giao thức truyềntin qua mạngInternet Với mã hóa bất đối xứng, người gửi thôngtin

Trang 5

mãhóa dữ liệu của họ bằngkhóa công khai của người nhận,và chỉ người nhận có thể giải mã thông tin đó

2.3.2 Ưu điểm

• Bảo mật cao: Ma hóa bất đốixứng sử dụngmột cặp khóagồmkhóacông khai vàkhóabímật Với việc

sử dụng khóa công khai để mã hóa và khóa riêng tư để giải mã, thông tin được bảo vệ tốt hơnsovới

• De dàng chia sẻ khỏa công khai: Khóacông khai có thểđược chia sẻrộng rãi mà không ảnh hưởng đến

tínhbảo mậtcủa thông tinđượcmã hóa

• An toàn trong truyền thông: Ma hóa bất đối xứng đượcsửdụngrộng rãi trongtruyền thông an toàn qua mạng, xác thựcngười dùng, chữ ký số,

2.3.3 Nhược điểm

• Tốc độ chậm:Tốc độ mã hóa bất đối xứng thường chậm hơnso vớimã hóa đốixứng

• Khỏa riêng tư phải được giữ tot: Nếu khóa riêng tư bị rò rỉ, thông tinsẽ dễ dàngbị xâm nhậpvà đánh

cắp Dođó,việc bảovệkhóa riêng tưlàrấtquan họng trong mã hóa bất đối xứng

• Khỏ thực hiện trên các thiết bị cỏ tài nguyên hạn chế: Việc thực hiện mãhóa bất đối xứngtrên các thiết

bị có tài nguyên hạn chế như điệnthoạithông minh, máy tính nhúng, IoT, có thể gặp khó khăn do tính toán phứctạp vàtốc độ xử lý chậm

2.4 Phương pháp mã hóa RSA

2.4.1 Giói thiệu sơ lược

Phương pháp mã hóa RSA làmột trong những phương phápmã hóa bấtđối xứng phổ biếnnhất đượcsử dụng hiệnnay.Ma hóa RSA là một trongnhữngphương phápmã hóa công khai được phát hiển bởiRon

Rivest, Adi Shamữvà Leonard Adlemanvào năm 1977.RSA làviếttắt các chữ cái đầu tiên trong tên của

Ma hóa RSA dựatrênnguyêntắcrằng việc phân tích một sốnguyên thành các thừasố nguyêntố là rất khó khăn, đặcbiệt là khi số đó rất lớn Dođó, phươngpháp mã hóa RSA khaithác sử dụng tính chất này của

cácsốnguyên tố để tạora cặp khóa công khai và khóa bí mật

2.4.2 Giải thuật

Thuật toán mã hỏa RSA hoạt động dựa trên nguyên tắcvề tính khó giải của việc phân tích một số nguyên

lớn thành cácthừa sổ nguyên tổ.Ma hóa RSAbao gồm các quá hìnhsau:

Quá trình tạokhóa:

Bước 1: Chọnhai số nguyêntố lớn p và q ngẫunhiên (p q)

Bước 2: Tínhn = p • q

Bước 3: Tính hàmsố mũ số nguyênto Euler củan: (p(n) = (p — 1) • (q — 1)

Bước 4: Chọn số e sao cho 1 < e < (p(n) và e là số nguyêntốcùngnhauvới (p(n)

Bước5: Tínhsốnguyên tố cùngnhauvới (p(n) và thỏamãn e • d = 1 (mod (p(n)) số dlà khóa bí mật

V Khỏa công khai bao gồm:

■ n -môđun

■ e - số mũ công khai (số mũmãhóa)

V Khỏa bỉ mật bao gồm:

■ n - môđun, xuất hiện cả trong khỏa công khaikhỏa bỉ mật.

■ đ - số mũbí mật (sốmũgiải mã)

V Một dạng khác của khỏa bỉ mật bao gồm:

■ d mod (p - ỉ), d mod (q - ỉ) - thường được gọi làdmpỉ, dmqỉ.

■ modp - thường được gọi iqmp.

Dạng này cho phép thực hiệngiải mãvà ký nhanh hơn với việcsử dụng địnhlý số dư Trung Quốc Ở dạng này,tất cả thành phần của khóabí mật phải được giữ bímật A gửi khóa công khai cho B, vàgiữ bímật

khóabímậtcủa mình Ở đây,p và q giữ vai trò rấtquan trọng Chúng làcác phântố của n và chophép tính

Trang 6

Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH

d khibiết e Nếu không sửdụngdạng sau củakhóabímật (dạng CRT) thì p và qsẽ đượcxóangay sau khi thực hiện xongquá trình tạo khóa

Quátrình mã hóa: Giả sửA muốngửi đoạn thông tin M cho B Đầu tiênA chuyển M thành số m (m<n)

theomộtphương thức được thỏathuận hước Lúc này A có mvà biết n, e do B gửi B sẽ tínhc là bảnđã

c = memod n

Hàm hêncó thểtính dễ dàngbằng cách sử dụngphươngpháp tính hàm mũ(theo môđun)thông qua thuật toán bìnhphương và nhân Cuối cùngA gửi c cho B

Quá trìnhgiải mã: B nhận ctừ Avà biếtkhóabí mật d Bcó thể tìm đượcmtừc theo công thứcsau:

m = cdmodn

Biết m,B tìm lại M theo phươngpháp đã thỏa thuận hước đó Quá hìnhgiảimã hoạtđộng vìtacó:

cd — (m(’)d — med

Do e * d= 1 (mod p-l)vàe*d =l (mod q- 1), (theo Định lý Fermat nhỏ) nên:

m e *d = m modp Nằm e * d = m mod q

Dop và q làhai sốnguyên tốcùng nhau, áp dụng định lý số dư Trung Quốc, ta có:

me* d = m mod (q * p) hay cd = m mod n

2.4.3 Mã C/C++

2.5 Mô hình mã hóa một chiều (One-way encryption model)

2.5.1 Giói thiệu

Mô hình mã hỏa một chiều (One-way encryption model) làmột hong những mô hìnhmậtmãhọcmàhong

đó thông tin sẽ đượcmã hóa thànhmộtmật mã duynhất và không thể giải mãtìm lại thông tinđầu Nó có cácđặcđiểmsau đây:

o Tỉnh toàn vẹm tạo ra một đoạn giá trị mã hóa cố định duy nhất và khônghùng lặp cho mỗithông tin đầuvào khác nhau

o Tính một chiều: thông tinsau khi được mã hóa sẽ khôngthể giải mã tìm lại thông tin ban đầu

về hàm Hash (hàm băm): là hàmthựchiện quá hìnhbiến một dữ liệu đầu vào có độ dài bất kỳ thành một chuỗi đầurađặc hưng có độdài cốđịnh Các giá trịđược trả về bởi hàm băm được gọi là giáhịbăm, mã băm,thông điệp băm, hoặcđơngiảnlà“Hash” Ta mô tả cụthểnhưbên dưới:

2.5.2 Giải thuật MD5

Dưới đâylà các bước thực hiệngiải thuật MD5:

Định nghĩa một macro để thựchiện phép xoay hái (rotate left)hên mộtgiátrị 32 - bit

Định nghĩahàm ‘md5_hash’ nhận cáctham số đầuvào: một contrỏ trỏ tới một mảngcác byte đầu vào

(‘initial msg’), một kích thước của đầu vào (‘initiallen’), vàmộtcontrỏ hỏ tới một mảngcácbyteđể lưu

giá hị băm (‘digest’)

voidmd5_hash(const uint8_t* initital msg, size t initial len, uint8_t^digest)

Khởi tạo cácgiá hi hằng số cho bước khởitạo của thuật toán MD5

Tính toán độ dài đầuvào của đơn vị bit

Chuẩn bị đầu vào cho thuật toán MD5 bằng cách tạo một mảng ‘msg’ có độ dài phù hợpvới quỵ tắc của thuật toán Mảngnày chứa đầuvào gốc, bit“1” được thêm vào cuối, và các phầntửcònlại được điền bằng

0 Độdàibitcuốicùngcủa đầu vào được ghivào cuối mảng

Tạocon hỏ ‘M’ tớimảng ‘msg’ với vớikiểu dữ liệulà uint32_t

Chianhỏ phần đầuvào thành các khối 512 bit (64 byte) Con trỏ ‘X’trỏ tới mộtkhối trong mảng ‘M’

Khởi tạo các biếnđệm ban đầu

Trang 7

Thựchiện mộtvòng lặp để tính toáncác giá trị mới của biến đệm A, B, c, Ddựahên cácphép toán logic

vàphép xoay trái:

• Cập nhật các giá trị của biến đệm với các giá trị mới tínhtoán

• Chuyển đổigiátrị của các biếnđệm thànhdạng byte và lưu vàomảng ‘digest ’để đưa rakết quả cuối: Hàm ‘ mainQ ’ chứa vídụ sử dụng hàm MD5.Khởi tạomột chuỗi ‘message’ và mộtmảng

‘digest ’ để lưu giá trị băm Sau đó, gọi hàm ‘md5_ hashQ ’ với đầuvào là chuỗi và lưu kết quả vàomảng ‘ digest’. Cuối cùng, inra giátrị MD5 dưới dạngmãhexa

2.5.3 Mã C/C++

3 CÁC CÁCH TIÉP CẬN CHO MÃ HÓA NGƯỠNG

3.1 Mã hóa Shamir

3.1.1 Định nghĩa

Ma hóa Shamữ (Shamir1 s Secret Sharing Scheme — SSS) là một thuậttoán được đặt theo têncủanhà mật

mã học Adi Shamir ngườiIsrael, ông là người đãphát minh ra nó Thuật toán được sử dụng để phân phối

một bí mật thànhnhiềuphần, được gọi là cácchia sẻ bí mật, trongđó mỗi chia sẻ bí mậtđược phân phối

chomột nhómngườitham gia Mục đích của Shamir's Secret Sharing Scheme là bảo vệtính riêng tưvà đảmbảo an toàn trongviệc huyền vàxác minh thông tin Cácphần củachiasẻ bímật đượctập hợp lại với nhau để xây dựnglạibímậtban đầu, tổng sốcácchia sẻ bí mật nhỏ hơn tổng số cácchia sẻ bí mậtban đầu

được chiasẻgọilà ngưỡng, là điều bắt buộc để xâydựng lại bímật Điều này giúp tránh thấtbại trong việc

giảimãthông tin được lưu giữ chặt chẽ nếu chỉ một hoặc một vài bên khôngcó mặt Thuật toán Shamir’s

Secret Sharing Scheme — sss dựa trên nguyên tắcđa thức và áp dụng nó vào việc phân phối bímật Mỗi

chia sẻ được tạo rabằng cách chọnngẫunhiênmột điểm trên đường cong của một đathức vớihệ sốngẫu nhiên Đe xây dựng lại bí mật, người dùng cần cóđủsố lượngchia sẻ và phải biết đường congvà ngưỡng được sửdụng để tạo racácchia sẻ

3.1.2 Công thức

3.1.2.1 Mã hóa Shamir

Công thức Chia sẻ bímật Shamữ gồm các bước sau:

1 Xác địnhngưỡngK để táitạo lại chia sẻ bí mật banđầu Sau đó ta lập đa thức độc lập tuyến tính

với bậc đa thức là K — 1.

2 Chọn so s (secret) là bímậtcần chiasẻ, số nguyên ai, a2, am(1 < ai, a2, am<S)

3 Tính toán hàmđa thức f (X) mod sbằng côngthức:

f(x) = secret + ũLX + a2x2 + + ơm xl/<_|1

Trong đó:

o m là hằng số ngẫunhiên (làcác hệ số tuyếntính ai, a2, am)

o secret là 1 hằng số bímậtcần được mãhóa

o K làngưỡngchia sẻ bí mật

4 ChọnN (là số cácchia sẻbímật được quỵ định ban đầu) điểm ngẫunhiên hên đườngcongf(X) bằng cách tính toáncácgiá trị mà tại đó điểm N phảilà nghiệm của hàmf(X) (x là giátrị bất kỉ,

X -> i, đâylà điều kiện cần) và điểmnàyphảicó ít nhất tốithiểu N > K(là điều kiện đủ) điểm hìnhthành cácchia sẻ bí mật

5 Cácđiểm Nnày sẽ được chia sẻ cho các bên cầntruy cập bí mật

6 Đetáitạo bí mật, tốithiểu K (như đãquỵ địnhban đầu, K làngưỡngchiasẻ bí mật) phần chia sẻ

bí mật được cung cấp cho cácbên, sau đó áp dụng công thức nghịch đảo Lagrange để tính toán giá trị của bí mậtgốc

Vỉ dụ minh họa:

1 Banđầu,để mãhóamậtmã, ta xây dựng đa thức bậc (K 1)

2 Đặt đa thức làf(X) = a + bx. Ở đây, phầnhằng số'a' = secret là mã bí mậtcủa chúng ta

3 Gọi b là một số bấtkỳ, giả sử b = 2

Trang 8

Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH

4 Do đó, đối vớiđa thứcỵ = 7+ 2x này, ('a' = secret = 7, b = 2)chúng ta tạora đượcN = 4 điểm

từ nó

5 Gọi 4 điểmđólà(1,9), (2, 11), (3, 13), (4, 15) Rõràng,chúng ta có thểtạo đathức ban đầu từ

bất kỳ từ 2 trong số4điểm này và trong đathức kết quả, hằng số 'a' làmãbí mật bắt buộc

3.1.2.2 Giải mã Shamir

Chia sẻ bí mật Shamir gồm các bước sau:

1 LấyK (làngưỡng chia sẻ bí mật) phân đoạn đã được chiasẻ, mỗiphân đoạnbaogồmmột cặp giá

trị (x, y)

2 Đe xây dựng lại đa thứcđã cho hay tìmlạiđa thức ban đầu,chúng tahìnhthành các đẳng thức của

Lagrange

Công thức tổng quátcủađa thức Lagrange như sau:

li (x) = X — Xq

Xi ~ Xq

X X x X - xi+1 x x~xk±

n

i-0

3 Dựa vào công thứctrên,giải các đẳng thức cơ sở của đathức Lagrange tìmra phương hình/(x)

từ đó tìm ra bímậtban đầu

Vỉ dụ cụ thể: Trong 1 tròchơi đi tìm kho báu,để có thể mở được kho báu đó cần nhập đúng mã bí mật là

2023.Bantổ chức đã mã hóa mã bí mậtgốc này thành 4 chia sẻ bímật khác nhau,để mở được chiếc 0 khóa

đó cần có ít nhất3 mã chia sẻ bí mật trong 4 mã chia sẻ bí mật đó Nhưngcó một điều ban tổ chức không

biết cách nàođểtạo được các chia sẻ bí mật,bạn hãy giúp bantổ chức mã hóa bí mật đó và xác định chia

sẻ bí mậtđó là hùng khớp vớimã bímậtban đầu

Phân tích. Theođề bài ra, ta có:K = 3, s = 2023,N = 4 Áp dụngcông thức tổng quát: f(x) = secret +

atx + a2x2 + + am.x(K-1) đểtạo chiasẻ bímật Ta chọn đa thức f(x) = 2023 + 2x + 3x2Làhàm

đa thức bậc 2để mãhóa bí mật

• Với/(2)= 2023 + 2.2+ 3.22 = 2039 (2)

• Với/(3)= 2023 + 2.3+ 3.32 = 2056 (3)

• Với/(5)= 2D023 + 2.5+ 3.52 = 2108.(4)

Từ (1), (2),(3),(4) tađượctập nghiệm của phương hìnhf(x) là s =(x,ỵ)= {(1, 2028); (2, 2039); (3, 2056);

(3, 2108)} Như vậy bạn đã giúp bantổ chức tạo ra 4 chia sẻ bí mật

Tiếpđến, chọn 3điểm trong4điểm hênđể tìm rađa thức ban đầu lấy lại mã bímật gốc mở khóakho báu hên Ta có K = 3, gọi lần lượt các điểm(1, 2028); (2, 2039); (3,2056) là 0, I], 12

Ápdụngcông thứcđathức Lagrangeta được:

X — X| X — x2 X — 2 X — 3 (x — 2) (x — 3)

-X — 3 — (x —l)(x —3)

Xq — Xi xữ — x2 1—2

X — Xq X — x2 X— 1

X| — xữ X| — x2 2 — 1

X — xữ X — X| X — 1

x2 — Xq x2 — Xi 3 — 1 3 — 2 2

f(x) = Ioyo + Iiyi + hy2

_ x 2O28.(x—2)(x—3) , -2039.(x— l)(x-3) , 2O56.(x-l)(x-2)

f(x) = - - - — - -

= 1014 (x2 - 5x + 6) - 2039 (x2 - 4x + 3) + 1028 (x2 - 3x + 2)

= 3x2 — 2X + 2023

Từ kết quảtrênta thấy con số 2023hong phương trìnhchính làmãbí mật đểmở khóa kho báu

Trang 9

3.1.3 Mã C/C++

Đường dãn Github: https://github.com/JosephPhuc/YSC-2023

3.2 Blakley

3.2.1 Định nghĩa

Giảsửcó 10 nhà khoahọcphát minhra mộtphát minh vĩđạinhưng lại mang tiềm năng sức mạnh quân sự khủng khiếp Bên cạnhđóhọ lạilàcácnhà khoahọc từkhắp thế giới, mỗi nhà khoa học lạithuộc một quốc gia khác nhau Saukhibiểu quyết họ quyếtđịnh cất giấunghiên cứu này Nhưng có cách nào để tất cảmọi

người đều nắm bí mật nhưng lại không sử đụng đượcnó, chỉ khi đủ số người đồng ý mới sử đụng Đây là nơi mà mã hóangưỡng nói chung tỏa sáng vàthực hiện đượcmụcđích của mình

Mã hóa ngưỡng là mô hình mãhóamà ỏ' đó: (với n không bé hơn t)

o Bímật được chia làm n phần,

o Chỉ khi cót phần hoặc hơn trong n phần đó thì mới có thểxác định chính xác bí mậtđó Khinày

số “t” được gọi là ngưỡng

Quaylại bài toán của cácnhà khoa học, nếu sử dụng mã hóa ngưỡng, bí mật ở đây sẽ được chiathành 10 phần và ngưỡngcó thể là 6,7, , 10ràvấnđề đã đượcgiảiquyết Ai trong số 10 nhà khoa học cũngnắm

giữ1 phần thông tin về bímậtđócũng như nếu không có t người họp lại vàchiasẻ bímậtcủa họ thìbí mật

sẽkhôngthể được khôiphụcvà sử dụng chomụcđích xấu Tất nhiên đó là nếu họ khôngmuốn

Mô hình chia sẻ bí mậtBlakley (hay mô hìnhmã hóa ngưỡng tuyếntính Blakley) là một mô hìnhchia sê

bímật giữabên khôngcó sự tin cậy và cần chia sẻbí mật cũngnhư số lượng thông tinvềbí mật đềunhau

Môhình mãhóa được đật tên theochính tác giả của nóGeorge Robert Blakley (1) Điểm khác biệt củamô

hình Blakleyso với mô hìnhShamir đó chính là ở việc mô hình này sử dụng giao điểmcủacácsiêu phẳng

thayvì sử dụng tập hợpcácđiểmnhư mô hìnhShamir.Khácvóimô hình Shanúr, môhình Blakley sử dụng các đa thức tuyếntínhđể tính toán ra điểm bí mật.Điểm bímật của Blakleylà giao điểm của các siêu phẳng

trongmộtkhông gian t chiều Chínhvì cáchtiếpcậnnày mà môhìnhBlakley không được phổ biếnbằng

môhình Shamir do độ phức tạp của hướngtiếp cận toán học

3.2.2 Toán học trong mô hình Blakley

Thay vì sử đụng tậphợpcácđiểm tạo thành 1 đường thẳng hay đathức như môhìnhShamdr, trong môhình Blakley ta lại sử dụng nhiều siêu phẳngđểtìm ra một giao điểm của các siêu phẳng đó.Đểhiểu rõ hơnvề vấn đề này, tasẽ điquanhững không gian 2 và 3 chiều:

Trongkhông gian 2chiều:

o Một đường thẳng chính là mộtsiêu phảng

o Ta có thể thấy đượcdễ dàng rằng ta sẽcó 1giao điểm cho

2 đường thẳng

Trongkhông gian 3 chiều:

• Phần giaonhau của 2siêu phẳng làmột đưòngthẳng

• Sẽluôn vô số siêu phẳng khác khi giaonhauvới 2siêu phẳng mà

phần giao nhau của chúng là mộtđiểm:

Minh họa chophần giao của hai siêuphẳng

Minh họa cho giao điểmcủa 3 siêu phẳng

Nhưvậy, ta có thể thấy đượcrằng,trongkhông gian t chiều thì chắc chắn sẽ cótsiêu phẳng giao nhau tại

1 điểm Tiếp theo, tasẽ nói về mã hóa Blakley:

Trang 10

Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH

Ma hóa Blakleyđưachúngtavềbài toán tạora n siêu phẳng từ điểm bímật banđầu Haycó thể hiểu cách

khác rằngtạo rama trận c sao cho matrận c thỏa điều kiệnsau:

Cxmodp =ỵ, với

• C: ma hậnchứa hệ số của các siêu phẳng khuyết hệ số tự do,

• ỵ: vectơ chứa hệ số tự dotương ứng vớicácsiêu phẳngđó,

• P: sốnguyên tố bấtkỉmà ta chọn

Để mã hóa Blakleynhư đã nói tasẽ chia bí mậtthành cácsiêu phẳng Các siêu phẳng này sau đó sẽ được chia sẻ cho những cổ phần haynhữngngười nắmgiữbí mật Giả sửta có bímật ban đầu là x0, ngưỡng t

và cần chia bímật ra thành n phần:

o Chọnmột sốnguyên tố p (P > Xq)

o Trong trường số p, chọn giá trị ngẫu nhiên hoặc tùy ý cho các giátrị còn lại của điểm bí mật Từ

đâyta sẽcó điểm bímật trong không giant chiều

o Trong trường số p, ta sẽ chọn giá trị cho các hệsố của siêu phẳng sao chothỏahệ đồng dư:

F(x):phương trình siêu phẳng khuyết hệ số tự do

n: hệ số tự docủa siêuphẳngđó

Tương tự như vậy ta sẽtạo ra n siêu phẳng cho ncổ phần hay người giữ bí mật

Sau khi mãhóa ta sẽ có được n siêu phang trong không gian t chiềutương ứng cho mỗi người giữbí mật hay cổphần Chỉ khi có t hoặcnhiềuhơnngười giữbí mậtđồng ýchia sẻ bí mậtvới nhau thìbí mật ban

đầumới có thể khôi phục lại Ta sẽ đivào một ví dụ cụ thể đểdễ dànghình dung hơn về cách mãhóa của

mô hìnhBlakley Giảsửta có:

o Ngưỡng t= 3,

Đầu tiên, ta sẽ chọn y0 và z0 cho điểm bí mậtcủata: y0 = 20 và z0 = 15.Ta sẽ cóđiểm bí mậtban đầu

là A (12, 20, 15) Tiếp theo, ta sẽ bắt đầu sử dụngđiểm bí mật đểtạo racácphương hình đồngdư thỏa điểm bí mật ban đầu:

o X + ỵ +z - 1 (mod 23)

o X + 2ỵ+ 3z - 5 (mod 23)

o X+3 ỵ+ 6z - 1 (mod 23)

o X + 4ỵ+ 10z - 12 (mod 23)

o X+5 ỵ+ 15z - 15 (mod 23)

Ta cũng có thểhiểuthuật toán Blakleybằngtheo matrận:

(1 1 1 12 3 1 1 1 3 4 5 6 10 15 )’x (x0 y0 z0 ) - ơ 5 112 15 ) (mod 23)

Vàta đã có hoàn thànhxong việc mã hóa theo thuật của Blakley Giờ việc ta cầnlàm là giaonhữngphần

bímật cho những người giữbí mật

Lưu ý Trong khi tạo racác siêu phang,ta có thểchọn những hệ số ngẫu nhiên trongtrường p Nhưng để

dễ dàng trong việc nghiêncứucũng như việc thời gian trong lập trìnhminh họa, chúngta sẽ sử dụng ma

hận Pascal chothuận tiện

3.2.3 Mã python

Ngày đăng: 10/03/2024, 08:11

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

TÀI LIỆU LIÊN QUAN