Tải bản đầy đủ (.docx) (20 trang)

NGHIÊN CỨU, THỰC THI LƯỢC ĐỒ KÝ SỐ MỘT LẦN DỰA TRÊN HÀM BĂM BIBA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (202.75 KB, 20 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÀI TẬP LỚN

NGHIÊN CỨU, THỰC THI GIAO THỨC TRAO
ĐỔI KHÓA LAI GHESPx25519 KẾT HỢP HÀM
BĂM BLAKE2B

Hà Nội, 2021
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


BÀI TẬP LỚN
NGHIÊN CỨU, THỰC THI LƯỢC ĐỒ KÝ SỐ MỘT LẦN DỰA
TRÊN HÀM BĂM BIBA


LỜI CẢM ƠN
Em xin gửi lời cảm ơn sự quan tâm, giúp đỡ của thầy giáo, đã trực tiếp
hướng dẫn và giúp đỡ em rất nhiều trong suốt quá trình nghiên cứu và hồn
thành bài tập lớn này.
Do trình độ kiến thức có hạn, thời gian ngắn cũng như khả năng tổng hợp,
xử lý tài liệu còn hạn chế nên bài tập lớn cịn nhiều thiếu sót. Em rất mong nhận
được sự quan tâm góp ý của thầy để đồ án được hoàn thiện hơn.
Em xin chân thành cảm ơn!

3




Mục lục
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ CHỮ KÝ SỐ.............................................3
1.

Chữ ký số:......................................................................................3

2.

Định nghĩa chữ ký số.....................................................................3

2.1.

Mơ hình tốn học của chữ ký số:...............................................4

2.2 Các ưu điểm của chữ ký số.............................................................5
2.2.1. Khả năng xác định nguồn gốc.......................................................6
2.2.2. Tính tồn vẹn.................................................................................6
2.2.3. Tính chống chối bỏ........................................................................7
CHƯƠNG 2: MỘT SỐ LƯỢC ĐỒ CHỮ KÝ SỐ PHỔ BIẾN HIỆN NAY.......8
1.

Lược đồ chữ ký số RSA-PSS........................................................8

2.

Chữ ký số EdDSA........................................................................10

CHƯƠNG 3: LƯỢC ĐỒ KÝ SỐ DỰA TRÊN HÀM BĂM BIBA....................13

1.

SEALS:.........................................................................................13

2.

Cơ chế của chữ ký BiBa..............................................................13

3.

Độ an tồn của BiBa....................................................................13

CHƯƠNG 4: THỬ NGHIỆM CHƯƠNG TRÌNH..................................................16
1.

Tổng quan:...................................................................................16

2.

Chương trình:..............................................................................16
2.1. Giao diện cơ bản của chương trình...............................................16
2.2. Chạy thử chương trình..................................................................17

4


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ CHỮ KÝ SỐ
1. Chữ ký số:
Trong các giao dịch điện tử trên môi trường mạng ln tồn tại các
nguy cơ về an tồn thông tin như: đánh cắp hoặc sửa đổi thông tin, mạo

danh người gửi,… Do đó, yêu cầu đặt ra là phải có phương thức đảm
bảo để thơng tin, tài liệu trao đổi trên mạng phải được toàn vẹn, xác
định được nguồn gốc và chống chối bỏ trách nhiệm của các bên tham
gia giao dịch.
Hơn nữa, bài toán đảm bảo an tồn thơng tin trong các giao dịch
điện tử là rất quan trọng và cần thiết. Cụ thể, chúng ta phải giải quyết
một số vấn đề cơ bản như: Ai đang giao dịch, thơng tin gửi đi có bị
xem trộm hay khơng, dữ liệu nhận được có bị sửa đổi hay khơng, người
gửi có thể phủ nhận hành động đã thực hiện hay khơng,... Tức là phải
có một phương tiện để xác thực các đối tác đang giao dịch; bảo đảm
tính bí mật, tính tồn vẹn của thơng tin dữ liệu và tính khơng thể chối
bỏ của người gửi.
Chữ ký số với mật mã khóa cơng khai sẽ là giải pháp hiệu quả, quan
trọng để đảm bảo an tồn thơng tin trong các giao dịch điện tử. Vì vậy,
chữ ký số được sử dụng như một điều tất yếu và ngày càng được áp
dụng rộng rãi trong thực tế.
2. Định nghĩa chữ ký số
Chữ ký số là thông tin (dữ liệu) được gắn kèm với tài liệu điện tử, sử
dụng các kỹ thuật mật mã nhằm xác định người ký dữ liệu đó.
Chữ ký số là một phương tiện để kiểm tra tính xác thực của nguồn gốc
thơng điệp, tính tồn vẹn của thơng điệp và tính khơng thể chối bỏ của người
ký.

5


Thông thường, chữ ký số được biểu diễn dưới dạng một dãy số nhị
phân. Nó được tạo ra trên cơ sở sử dụng tập hợp các quy tắc và tập hợp các
tham số để xác định danh tính người ký cũng như kiểm tra tính tồn vẹn
của dữ liệu. Phương tiện cơ bản để thực hiện chữ ký số là kỹ thuật mật mã.

Mỗi chữ ký số được tạo và được kiểm tra tính xác thực thơng qua các lược
đồ chữ ký số. Một lược đồ chữ ký số được định nghĩa như sau:
2.1.

Mơ hình tốn học của chữ ký số:

Một lược đồ chữ ký số ��� = (��, ����, ��) là một bộ ba của thuật
toán thời gian đa thức xác suất, trong đó:
- ��(1n ) là thuật tốn tạo cặp khóa, với đầu vào là tham số bảo mật 1n
, và đầu ra là khố ký bí mật sk và khố kiểm tra cơng khai pk;
- ����(��, �) là thuật toán tạo chữ ký số, với đầu vào là khóa ký bí
mật sk và thơng điệp M, đầu ra là một chữ ký số σ cho thông điệp M với mọi
M ∈ ℳ;
- ��(��, �) là thuật toán kiểm tra chữ ký số, với đầu vào là một
thông điệp M, một chữ ký σ và một khóa cơng khai pk. Thuật tốn thực hiện
kiểm tra xem σ có phải là một chữ ký hợp lệ cho M hay khơng bằng cách
dùng khóa cơng khai pk. Thuật tốn đưa ra kết quả là true nếu chữ ký hợp lệ
và false nếu ngược lại.
Như vậy:
∀(��, ��) ← ���(1 �),∀(� ∈ ℳ):���(��, ���(��, �), �) = 1 15
Trong lược đồ chữ ký số, với đầu vào là thơng điệp có độ dài hữu hạn
tùy ý, hàm băm sẽ biến đổi thông điệp này thành một thơng điệp rút gọn và
sau đó sẽ dùng thuật tốn ký để ký lên thơng điệp rút gọn đó. Cụ thể, khi
người ký cần ký vào thơng điệp x anh ta ký trên bản tóm lược thông điệp � =
ℎ(�) như sau: � = �����(�) và truyền cặp (�, �) lên kênh truyền thông. Quá

6


trình kiểm tra được thực hiện thơng qua việc tính � = ℎ(�) dùng hàm băm

công khai h và kiểm tra xem hàm ���(�, �) có nhận giá trị “true” hay khơng.

Hình 1.1. Sơ đồ tạo và kiểm tra chữ ký số
Quá trình tạo chữ ký số: Khi A cần gửi một thơng điệp cho B, A sử
dụng thuật tốn hàm băm để thu gọn thông điệp ban đầu nhằm tạo ra bản tóm
lược của thơng điệp. Tiếp đến, A sử dụng thuật tốn ký với đầu vào là bản
tóm lược thơng báo và khóa bí mật của A để tạo ra một chữ ký số. Sau đó,
chữ ký số và chứng chỉ cung cấp khóa cơng khai của A được gắn vào thông
điệp đã được ký rồi gửi cho B.
Quá trình kiểm tra chữ ký số: B cũng sử dụng thuật toán hàm băm
tương tự như của A để tạo bản tóm lược của thơng điệp đã nhận. B sử dụng
khóa cơng khai được cung cấp để giải mã chữ ký và thu được một dãy bit, so
sánh kết quả này với bản tóm lược vừa tạo. Nếu kết quả giống nhau thì thơng
điệp trên chính là của A gửi cho B.
7


Trong trường hợp thơng điệp cần giữ bí mật thì A có thể mã hóa dữ liệu
được ký trước khi gửi
2.2 Các ưu điểm của chữ ký số
Việc sử dụng chữ ký số mang lại một số ưu điểm sau:
2.2.1. Khả năng xác định nguồn gốc
Các hệ thống mật mã khóa cơng khai cho phép mật mã mã hóa văn bản
với khóa bí mật mà chỉ có người chủ của khóa biết. Để sử dụng chữ ký số thì
văn bản cần phải được mã hóa bằng hàm băm (văn bản được "băm" ra thành
chuỗi, thường có độ dài cố định và ngắn hơn văn bản) sau đó dùng khóa bí
mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số. Khi cần kiểm
tra, bên nhận giải mã (với khóa cơng khai) để lấy lại chuỗi gốc (được sinh ra
qua hàm băm ban đầu) và kiểm tra với hàm băm của văn bản nhận được. Nếu
2 giá trị (chuỗi) này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản

xuất phát từ người sở hữu khóa bí mật. Tất nhiên là chúng ta khơng thể đảm
bảo 100% là văn bản khơng bị giả mạo vì hệ thống vẫn có thể bị phá vỡ.
Vấn đề nhận thức đặc biệt quan trọng đối với các giao dịch tài chính.
Chẳng hạn một chi nhánh ngân hàng gửi một gói tin về trung tâm dưới dạng
(�, �), trong đó a là số tài khoản và b là số tiền chuyển vào tài khoản đó. Một
kẻ lừa đảo có thể gửi một số tiền nào đó để lấy nội dung gói tin và truyền lại
gói tin thu được nhiều lần để thu lợi (tấn cơng truyền lại gói tin).
2.2.2. Tính tồn vẹn
Cả hai bên tham gia vào q trình thơng tin đều có thể tin tưởng là văn
bản khơng bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm
cũng sẽ thay đổi và lập tức bị phát hiện. Q trình mã hóa sẽ ẩn nội dung của
gói tin đối với bên thứ 3 nhưng không ngăn cản được việc thay đổi nội dung
17 của nó. Một ví dụ cho trường hợp này là tấn cơng đồng hình
(homomorphism attack): tiếp tục ví dụ như ở trên, một kẻ lừa đảo gửi
8


1.000.000 đồng vào tài khoản của a, chặn gói tin (�, �) mà chi nhánh gửi về
trung tâm rồi gửi gói tin (�, � 3 ) thay thế để lập tức trở thành triệu phú!
Nhưng đó là vấn đề bảo mật của chi nhánh đối với trung tâm ngân hàng
không hẳn liên quan đến tính tồn vẹn của thơng tin gửi từ người gửi tới chi
nhánh, bởi thông tin đã được băm và mã hóa để gửi đến đúng đích của nó tức
chi nhánh, vấn đề cịn lại vấn đề bảo mật của chi nhánh tới trung tâm của nó.
2.2.3. Tính chống chối bỏ
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do
mình gửi. Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải
gửi kèm chữ ký số với văn bản. Khi có tranh chấp, bên nhận sẽ dùng chữ ký
này như một chứng cứ để bên thứ ba giải quyết. Tuy nhiên, khóa bí mật vẫn
có thể bị lộ và tính chống chối bỏ cũng khơng thể đạt được hoàn toàn.


9


CHƯƠNG 2: MỘT SỐ LƯỢC ĐỒ CHỮ KÝ SỐ PHỔ BIẾN HIỆN
NAY
1. Lược đồ chữ ký số RSA-PSS
Các thao tác tạo chữ ký số áp dụng một thao tác định khn dạng
vào một thơng điệp trước khi nó được chuyển thành một biểu diễn
thông điệp ở dạng số nguyên. Phép tốn cơ sở được áp dụng vào
biểu diễn thơng điệp này để tạo ra chữ ký số. Đảo ngược quá trình
này, các thao tác kiểm tra chữ ký áp dụng một phép tốn cơ sở vào
một chữ ký để khơi phục một biểu diễn thơng điệp, sau đó nó được
chuyển thành thông điệp đã được định dạng ở dạng chuỗi octet.
Thao tác kiểm tra được áp dụng vào thông điệp ban đầu và thông
điệp đã được định dạng để xác định xem chúng có tương ứng nhau
hay khơng.
Phép tạo chữ ký : RSASSA – PSS – SIGN
RSASS – PSS – SIGN (K,M)
Đầu vào:
Κ

Khóa bí mật RSA của người ký

Μ

Thơng điệp sẽ được ký, là một chuỗi octet

Đầu ra :
S


Chữ ký, chuỗi octet có độ dài k, với k là độ dài của
modulo RSA theo octet

Thông báo lỗi: “văn bản quá dài”, “lỗi định dạng”
Các bước:
1) Mã hóa EMSA - PSS: Áp dụng thao tác EMSA – PSS –
ENCODE vào văn bản M để tạo ra thông điệp được định
dạng EM có độ dài ⌈(modBits -1)/8 ⌉ octet sao cho độ dài
10


bit của số nguyên OS2IP(EM) nhiều nhất là modBits - 1, với
là độ dài theo bit của số n (modulo RSA):
EM = EMSA – PSS – ENCODE(M, modBits – 1)
Chú ý rằng độ dài octet của EM sẽ bằng k – 1 nếu modBits –
1 chia hết cho 8. Nếu hàm EMSA – PSS – ENCODE cho ra
thông báo lỗi “văn bản quá dài” thì RSASA – PSS – SIGN
cũng cho ra thông báo lỗi “văn bản quá dài” và dừng lại. Nếu
EMSA – PSS – ENCODE cho ra thông báo “lỗi định dạng”
thì RSASA – PSS – SIGN cũng cho ra thông báo “lỗi định
dạng” và dừng lại
2) Tạo chữ ký RSA
a. Chuyển thông điệp đã được định dạng (chuỗi octet) EM
thành biểu diễn thông điệp ở dạng số nguyên m:
M = OS2IP(EM).
b. Áp dụng phép toán cơ sở RSASP với K là khố bí mật
RSA và biểu diễn thông điệp m để tạo ra biểu diễn chữ ký
là số nguyên s:
S = RSASP(K,m)
c. Chuyển chữ ký dạng số nguyên thành chữ ký S dạng chuỗi

octet có độ dài k:
S = I2OSP (s,k)
3) Cho ra chữ ký S.
Phép kiểm tra chữ ký RSASSA – PSS – VERIFY
RSASSA – PSS – VERIFY ((n,e),M,S)
Đầu vào:
(n,e)

Khóa cơng khai RSA của người ký
11


M

Thơng điệp mà chữ ký của nó cần được kiểm
tra, là chuỗi octet

S

Chữ ký được kiểm tra, chuỗi octet có độ dài
với là độ dài theo octet của số modulo RSA

Đầu ra: “chữ ký hợp lệ” hoặc “chữ ký không hợp lệ”
Các bước:
1) Kiểm tra độ dài: Nếu độ dài của chữ ký S không là octet, cho
ra thông báo lỗi “chữ ký không hợp lệ” và dừng;
2) Kiểm tra chữ ký RSA;
a) Chuyển chữ ký thành biểu diễn chữ ký ở dạng số nguyên s:
s = OS2IP (S)
b) Áp dụng phép tốn cơ sở RSAVP với khóa cơng khai RSA là

(n,e) và biểu diễn chữ ký s để tạo ra m là số nguyên biểu diễn thông
điệp:
m = RSAVP((n,e),s)
c) Chuyển biểu diễn thông điệp thành thông điệp đã được định
dạng EM có độ dài emLen = ⌈(modBits -1)/8⌉ octet, với là độ dài
modBits là độ dài theo bit của số n(modulo RSA):
EM = I2OSP (m, emLen)
Chú ý rằng emLen sẽ bằng k - 1 nếu modBits – 1 chia hết cho 8
và bằng k nếu modBits không chia hết cho 8. Nếu I2OSP cho ra
thông báo lỗi “số nguyên q lớn” thì RSA – PSS – VERIFY cho ra
thơng báo lỗi “chữ ký không hợp lệ” và dừng lại.
3) Kiểm tra EMSA - PSS: Áp dụng thao tác kiểm tra EMSA –
PSS – VERIFY vào thông điệp M và thông điệp đã được định dạng
EM để xác định xem chúng có tương ứng với nhau hay khơng;
12


Result = EMSA – PSS – VERIFY (M, EM, modBits -1).
4) Nếu kết quả là “phù hợp” thì cho ra “chữ ký hợp lệ”. Ngược
lại sẽ cho ra “chữ ký không hợp lệ”.
2. Chữ ký số EdDSA
Chữ ký số EdDSA có rất nhiều ưu điểm như độ bảo mật cao, sinh
khóa nhanh, việc ký nhanh, tốn ít tài ngun. Được sử dụng nhiều
trong giao thức bảo mật, mạng và các sản phẩm bảo mật trên cả phần
mềm và phần cứng như: Giao thức SIGNAL, SSL. OpenSSL, Tor,
GnuPG…
Thuật toán chữ ký số trên đường cong elliptic Edwards xoắn
(EdDSA) là một biến thể của thuật toán chữ ký số Schnorr. EdDSA
được phát triển bởi Daniel J. Bernstein và các cộng sự. Thuật toán chữ
ký số này đã giải quyết được những vấn đề cịn tồn tại của thuật tốn

chữ ký số ECDSA. Cụ thể, cả hai thuật toán yêu cầu sinh một giá trị
ngẫu nhiên (cặp khóa phiên vơ hướng), q trình tạo chữ ký và sự an
toàn của giá trị ngẫu nhiên này quyết định đến sự an tồn của thuật
tốn: Thông tin về một trong những giá trị ngẫu nhiên hoặc một phần
thông tin của chuỗi các giá trị này sẽ cho phép phục hồi khóa riêng dài
hạn của người ký. Sự an tồn của thuật tốn ECDSA phụ thuộc rất
nhiều vào chất lượng của khóa phiên, mà phải thật sự ngẫu nhiên cho
mỗi chữ ký. Tuy nhiên, ECDSA không chỉ định cách tạo giá trị ngẫu
nhiên này, do vậy việc thực thi triển khai dựa vào chất lượng của bộ
sinh số ngẫu nhiên và rất khó để thực hiện một cách an tồn. So với
thuật tốn ECDSA, thuật tốn EdDSA loại bỏ sự phụ thuộc này bằng
cách loại bỏ u cần ngẫu nhiên cho mỗi chữ ký vì khóa phiên được
tính tốn theo cách xác định bằng cách sử dụng thơng điệp và khóa phụ
là một phần của khóa riêng dài hạn. Sự an tồn của thuật tốn phụ
thuộc vào sự bí mật của khố phụ và đại lượng vô hướng riêng.
13


Thuật toán EdDSA đã nhận được sự quan tâm của nhiều nhóm
nghiên cứu mật mã. Thuật tốn này đã được Josefsson chuẩn hóa thành
RFC8032 trong IRTF (Internet Research Task Force) vào năm 2017.
Thuật toán EdDSA được khuyến nghị thực hiện với các đường cong
Edward xoắn. Hai thể hiện tiêu biểu của thuật toán này là thuật toán
Ed25519 (thuật toán chữ ký số EdDSA sử dụng đường cong Edwards
Curve25519) và thuật toán Ed448 (thuật toán chữ ký số EdDSA sử
dụng đường cong Ed448- Goldilocks)
Thuật tốn chữ ký số EdDSA có những lợi thế sau:
1) EdDSA cung cấp hiệu suất cao trên nhiều nền tảng khác nhau;
2) Không bắt buộc sử dụng một số ngẫu nhiên cho mỗi chữ ký;
3) Khả năng chống các cuộc tấn công kênh kề tốt hơn;

4) EdDSA sử dụng kích thước các khóa cơng khai (32 hoặc 57
bytes) và chữ ký (64 hoặc 114 bytes) tương ứng cho Ed25519 và
Ed448;
5) Các cơng thức là "hồn thiện", tức là chúng phù hợp cho tất cả
các điểm trên đường cong, khơng có ngoại lệ. Điều này làm giảm bớt
nhu cầu việc EdDSA thực hiện xác nhận điểm tốn kém trên các giá trị
công khai không đáng tin cậy; và EdDSA cung cấp khả năng kháng va
chạm, nghĩa là sự va chạm của hàm băm không làm phá vỡ hệ thống.
Hệ thống chữ ký số EdDSA có 11 tham số đầu vào của nó khơng có
ý định được triển khai trực tiếp. Việc chọn các thông số đầu vào là rất
quan trọng cho hoạt động an toàn và hiệu quả. Thuật toán EdDSA được
khuyến nghị thực hiện với các đường cong Edwards xoắn. Và hai
đường cong được khuyến nghị là đường cong Ed25519 và Ed448. Cả
hai đường cong này đều được Safecurves đánh giá là an toàn cho mật
mã đường cong elliptic.
14


15


CHƯƠNG 3: LƯỢC ĐỒ KÝ SỐ DỰA TRÊN HÀM BĂM BIBA
1. SEALS:
Người ký tính tốn trước các giá trị mà sau đó nó sử dụng để tạo chữ
ký BiBa. Các giá trị này là các số ngẫu nhiên được tạo theo cách mà
người nhận có thể xác thực chúng ngay lập tức bằng khóa cơng khai (đơi
khi được gọi là thông tin xác thực công khai trong ngữ cảnh này). Chúng
tơi gọi các giá trị tính tốn trước này là SEALs, viết tắt của SElfAuthenticating vaLues. Thuộc tính mà chúng tơi cần cho SEALs là người
xác minh có thể xác thực hiệu quả SEAL dựa trên khóa cơng khai và đối
thủ khơng thể tìm thấy về mặt tính tốn một SEAL hợp lệ được cung cấp

khóa cơng khai. Cách tiếp cận đơn giản nhất là sử dụng PRF F như một
lược đồ cam kết. Cho một SEAL s, khóa cơng khai là fs = Fs (0). Nếu
trình xác minh học fs theo cách xác thực, nó có thể dễ dàng xác thực s
bằng cách xác minh Fs (0) = fs. Trong BiBa, người ký cần nhiều SEAL,
do đó, một khóa cơng khai có thể bao gồm nhiều cam kết.
Một sự thay thế khác cho xác thực SEAL là cây băm Merkle (vì vậy
các SEAL sẽ là các nút lá của cây và khóa cơng khai là nút gốc của cây).
2. Cơ chế của chữ ký BiBa
Để ký thông báo m, người ký tính tốn băm dài m 3 bit h = H (m | c),
trong đó c là giá trị bộ đếm mà người ký tăng lên nếu không thể tìm thấy
chữ ký. Người ký có t SEALs (mỗi bit dài m 2), và ánh xạ chúng với hàm
băm Gh vào n thùng. Bất kỳ va chạm k-way nào của SEALs đều tạo thành
chữ ký.
Xác minh là đơn giản. Chúng tơi giả định rằng trình xác minh biết các
tham số BiBa k và n, hàm băm H và họ hàm băm G.
Giả sử người xác minh nhận được tin nhắn m và chữ ký BiBa x1, &
ldots;, Sxk, c. Đầu tiên, người xác minh xác minh rằng tất cả k SEALs
đều khác biệt và xác thực. Tiếp theo, trình xác minh tính h = H (m | c) và
chấp nhận chữ ký nếu tất cả Gh (Sxi) (với 1 ≤i ≤k) đều bằng nhau.
3. Độ an toàn của BiBa
Với một số SEAL được tiết lộ, chúng ta có thể suy ra xác suất mà kẻ
thù có thể tìm thấy chữ ký BiBa hợp lệ bằng cách sử dụng các kỹ thuật tổ

16


hợp tiêu chuẩn. Trong Phụ lục A, chúng tôi suy ra rằng giới hạn trên chặt
chẽ của xác suất Pf của kẻ thù giả mạo chữ ký sau một lần thử là
Pf = {rk (n-1) r-knr-1}


trong đó r là số lính SEAL mà đối phương biết.
Rõ ràng đối thủ càng có nhiều SEAL, xác suất nó có thể giả mạo
chữ ký BiBa càng cao. Tính bảo mật của sơ đồ chữ ký BiBa dựa trên thực
tế là người ký biết nhiều SEAL hơn một kẻ thù. Chúng tôi tận dụng
ngưỡng nghịch lý ngày sinh, còn được gọi là giới hạn ngày sinh. Theo
trực giác, khi chúng ta ném ngẫu nhiên đồng loạt t quả bóng vào n thùng,
khi số t thấp hơn giới hạn sinh (xấp xỉ 2n), thì rất hiếm khi xảy ra va chạm
hai chiều. Nhưng khi t lớn hơn giới hạn sinh nhật, số lượng va chạm tăng
lên nhanh chóng.

Bảng 1: Bảo mật của một số phiên bản BiBa. Người
ký biết t = 1024 SEALs và đối thủ có r = k SEALs.

Chúng tơi giả sử người ký có t = 1024 SEALs và kẻ tấn cơng có r =
k SEALs - số SEAL được tiết lộ sau khi người ký ký một thông báo. Gọi
Ps là xác suất mà người ký có thể tìm thấy chữ ký sau một lần thử nghiệm
với t SEALs, và Pf biểu thị xác suất mà kẻ thù có thể giả mạo chữ ký sau
một lần thử khi biết r SEALs. Giá trị P s cao có nghĩa là người ký có khả
năng tạo ra một chữ ký trên thư và do đó việc ký hiệu quả. Đối với phần
cịn lại, ta đặt Ps = 0,5, sao cho người ký có thể tìm thấy chữ ký sau trung
17


bình 2 lần thử. Giá trị Pf thấp có nghĩa là kẻ tấn cơng khó có thể tạo ra
một chữ ký hợp lệ và chỉ ra tính bảo mật của chương trình. Bảng 1 cho
thấy giá trị Pf cho các trường hợp khác nhau với các tham số n và k khác
nhauChúng tôi muốn chỉ ra mức độ bảo mật cao mà BiBa đạt được chỉ với
một vài va chạm. Dựa trên các yêu cầu của dự án NESSIE , sơ đồ chữ ký
BiBa sử dụng xung đột 11 chiều sẽ cung cấp đủ bảo mật.
Kẻ thù có hai cách chính để thu thập SEALs để giả mạo chữ ký.

Đầu tiên, đối thủ chỉ cần thu thập các SEALs được tiết lộ trong các chữ ký
do người ký tạo ra. Thứ hai, kẻ thù cố gắng tìm SEALs bằng cách tính
tốn thơ bạo để đảo ngược PRF F được sử dụng để xác thực các SEAL.
Tuy nhiên, trong phân tích của chúng tôi, chúng tôi giả định rằng cuộc tấn
công sau này là khơng thực tế, vì vậy đối thủ chỉ biết các SEALs mà
người ký tiết lộ bằng chữ ký.

18


CHƯƠNG 4: THỬ NGHIỆM CHƯƠNG TRÌNH
1. Tổng quan:
Một lĩnh vực mà chúng ta có thể sử dụng vụ va chạm này là trong chữ ký
một lần (OTS) và với phương thức được định nghĩa là "BiBa" ("Thùng và
bóng").
Về cơ bản với BiBa, Bob tạo một số giá trị ngẫu nhiên cho khóa cá nhân
của mình:
Priv = x1, x2,… xn
Tiếp theo, anh ấy tạo khóa cơng khai của mình từ các phiên bản băm của
khóa cá nhân:
Pub = SHA1 (x1), SHA1 (x2)… SHA1 (xn)
Để tạo chữ ký cho một thông điệp (M), anh ta tìm hai giá trị sẽ tạo ra
xung đột (như chúng ta đã thấy, khá dễ dàng để tìm thấy một xung đột trong một
lượng phỏng đốn hợp lý):
H (M || xi) == H (M || xj)
Sau đó, anh ta sẽ xuất bản (xi, xj) như là chữ ký của thơng điệp.
Khi đó, sẽ q khó để Eve tìm ra các giá trị của xi và xj để tạo ra xung
đột, vì Bob khơng tiết lộ chúng (chúng chỉ được xác định bằng chữ ký băm của
chúng).
2. Chương trình:

2.1. Giao diện cơ bản của chương trình

19


Trong đó:
THƠNG ĐIỆP

Là nơi để nhập thơng điệp đầu vào

KHĨA RIÊNG

In ra giá trị khóa riêng của thơng điệp

GIÁ TRỊ CHỮ KÝ

In ra giá trị chữ ký của thông điệp

2.2.

Chạy thử chương trình

20



×