Tải bản đầy đủ (.pdf) (7 trang)

Chữ ký số ủy nhiệm tập thể trên hệ mật định danh

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 (225.9 KB, 7 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>CHỮ KÝ SỐ ỦY NHIỆM TẬP THỂ TRÊN HỆ MẬT ĐỊNH DANH </b>
Nguyễn Ánh Việt1*, Nguyễn Kim Tuấn2


<i><b>Tóm tắt: </b>Trong bài báo này, chúng tơi đề xuất một mơ hình chữ ký số hồn tồn </i>
<i>mới, đó là chữ ký số ủy nhiệm tập thể đa thành phần. Đồng thời chúng tôi cũng đề </i>
<i>xuất một lược đồ chữ ký số cụ thể trên mơ hình đó dựa trên hệ mật định danh là một </i>
<i>trong những hệ mật tiên tiến đang là xu thế ứng dụng trong những năm gần đây. Mơ </i>
<i>hình chữ ký số mới cho phép đáp ứng môt cách linh hoạt và mềm dẻo hơn nhiều so </i>
<i>với các mơ hình chữ ký số ủy nhiệm tập thể trước đây. </i>


<b>Từ khóa</b>: Chữ ký số tập thể, Chữ ký số ủy nhiệm, Chữ ký số đa thành phần.
<b>1. MỞ ĐẦU </b>


Luật Giao dịch điện tử được Quốc hội Việt Nam thông qua ngày 29/11/2005
là cơ sở pháp lý cho thương mại điện tử và chính phủ điện tử được phát triển, bởi
vì theo luật này chữ ký số có giá trị pháp lý như chữ ký và con dấu truyền thống.
Tuy nhiên, cho đến nay ở Việt Nam chủ yếu vẫn chỉ có mơ hình chữ ký số đơn
cơ bản được áp dụng. Những mơ hình như ký tập thể, ký ủy nhiệm ký thay, ký
ngưỡng... vẫn chưa được áp dụng do đó chưa đáp ứng được các nhu cầu phong
phú của thực tiễn.


Chữ ký số ủy nhiệm là mơ hình, lược đồ ký số mà ở đó một cá nhân có thể ủy
quyền cho một cá nhân khác ký thay cho mình khi vắng mặt. Việc ký ủy nhiệm
này có thể được gắn với một thuộc tính nào đó để hạn chế về điều kiện hiệu lực
của việc ủy nhiệm, ví dụ như hạn chế về mặt thời gian, hạn chế về mặt nội dung,
lĩnh vực ký.


Chữ ký số tập thể là mơ hình, lược đồ ký số mà tất cả các thành viên trong một
tập thể cùng tham gia ký vào một văn bản. Kích thước của chữ ký số tập thể và
thời gian xác thực được tính có độ dài và thời gian tính tương đương của một thành
viên, nên chữ ký số tập thể tiết kiệm được rất nhiều không gian lưu trữ và thời gian


tính tốn so với chữ ký lặp của từng thành viên.


Tác giả Das vào năm 2009 đã tổng hợp một số lược đồ chữ ký số ủy nhiệm [4].
Năm 2006, Gentry và Ramzan đề xuất chữ ký nhóm dựa trên ID-Based [8]. Năm
2007, Qin Wang và Zhenfu Cao đề xuất chữ ký số tập thể ủy nhiệm dựa trên
ID-Based [7].


Sau năm 2009 nhiều lược đồ chữ ký số tập thể ủy nhiệm đã được đề xuất và
nhiều trong số đó dựa trên hệ mật định danh (ID-Based) như [1],[2],[3],[5],[6]...


Từ trước tới nay, trong các lược đồ ký tập thể ủy nhiệm, chúng ta thường chỉ
gặp trường hợp các thành viên trong tập thể ký vào toàn bộ văn bản, hoặc mỗi
thành viên ký vào duy nhất một phần trong văn bản theo thứ tự, tuy nhiên, trên
thực tế số thành viên và số thành phần văn bản thường khác nhau, và như vậy,
khơng có mơ hình ký số nào giải quyết được vấn đề này, mục tiêu nghiên cứu của
chúng tôi là khắc phục nhược điểm kể trên.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Phần còn lại của bài báo được tổ chức như sau. Trong phần II, chúng tơi trình
bày cơ sở tốn học cơ bản liên quan và trong các phần III, phần IV, phần V chúng
tơi lần lượt trình bày đề xuất mơ hình chữ ký số tập thể ủy nhiệm đa thành phần,
lược đồ chữ ký số của mơ hình này trên hệ mật định danh. Cuối cùng, chúng tôi kết
luận bài báo trong phần VI.


<b>2. CƠ SỞ TOÁN HỌC </b>


Năm 1985, Shamir lần đầu tiên đưa ra ý tưởng về hệ mật định danh [11], trong
đó thay vì việc tạo ra khóa cơng khai bằng phương pháp ngẫu nhiên, ở đây có thể
dùng các thơng tin định danh như địa chỉ Email, số chứng minh thư để tạo ra khóa
cơng khai, ưu điểm của hệ mật này là khơng cần phải trao đổi khóa cơng khai, và
có thể biết khóa cơng khai từ trước khi cặp khóa được tạo ra, khơng cần phải trao


đổi khóa cơng khai vì nó có thể được tạo ra theo một quy định tường minh và dễ
dàng. Hệ mật khóa cơng khai này đặc biệt phù hợp với những mơi trường có một
số lượng lớn người dùng.


Từ sau cơng trình của Boneh and Franklin [10], hàng loạt cơng trình khác dựa
trên ID-Based được phát triển.


Nếu <i>P</i> là phần tử sinh của với là nhóm cộng có bậc là số nguyên tố <i>q</i>.
là nhóm nhân có bậc bằng bậc của nhóm . Cặp song tuyến tính (Bilinear
Pairing) là ánh xạ: <i>ê</i> : × → có các thuộc tính sau [9]:


1) Ánh xạ ê là song tuyến tính: Với<i>Q,W, Z</i>∈ , chúng ta có:


<i>ê(Q,W + Z ) = ê(Q, W) • ê(Q, Z) </i> <i> </i>(1)


<i>ê(Q + W,Z) = ê(Q,Z) • ê(W,Z) </i>


và do đó với mọi <i>a,b</i>∈ ℤ thì:


<i>ê (aQ,bW) </i> <i>= ê (Q,W )ab</i>


<i>= ê (abQ, W) </i>


<i>= ê (Q,abW) = ê (bQ,W)a</i>


2) Ánh xạ <i>ê</i> không bị suy biến: ê (P, P)≠ 1 trong đó 1 là phần tử đơn vị của
.


3) Ánh xạ <i>ê </i>được tính một cách dễ dàng. Thông thường là nhóm con của
nhóm các điểm nằm trên đường cong elliptic trong trường hữu hạn ( ) với <i>t</i> là


số nguyên tố đủ lớn. là nhóm con của nhóm nhân của trường hữu hạn liên quan.


<b>Định nghĩa 1</b> (Bài toán logarithm rời rạc - DLP).
ChoQ,R ∈ tìm ∈ ∗ sao cho <i>R = xQ.</i>


<b>Đinh nghĩa 2</b> (Bài toán song tuyến tính Diffie-Hellman -BDHP).
Cho (<i>P, aP, bP, cP</i>) với <i>a,b,c</i>∈ ℤ và <i>P</i>∈ , tính <i>ê (P,P)abc</i>.


Bài toán DLP và BDHP vẫn là các bài toán khó chưa có thuật tốn giải trong
thời gian đa thức [4].


<b>3. ĐỀ XUẤT LƯỢC ĐỒ CHỮ KÝ SỐ ỦY NHIỆM TẬP THỂ </b>
<b>ĐA THÀNH PHẦN TỔNG QUÁT </b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>Định nghĩa 3</b> (Mảng phân công ký ). <i>Giả sử có NSIG người ký Ui; 1 ≤ i ≤ </i>


<i>NSIG cần ký văn bản m </i>∈<i> {0,1}*. Chia m thành NSEC phần, sao cho có thể biểu </i>


<i>diễn m dưới dạng</i>:


<i>m = </i>(<i>m1</i>||<i> m2</i>||<i> m3</i>|| ... ||<i> mNSEC</i>)<i>. </i>
<i>Định nghĩa vector ký: </i>


<i>i</i> = | <i>i</i>[1], ... , <i>i</i>[<i>j</i>], ... <i>i</i>[<i>NSEC</i>]|
<i>i</i>[<i>j</i>] = {0,1} 1 ≤ <i>j</i> ≤ <i>NSEC</i>


<i>Người ký Ui cần phải ký mj thì</i> <i>i</i>[<i>j</i>] = 1<i>, và </i> <i>i</i>[<i>j</i>] <i>= </i>0<i> nếu Ui không phải ký phần </i>


<i>mj. Cho cả tập thể người ký, định nghĩa mảng như sau: </i>



= ( 1 || 2 || ... || <i>i</i> || ... || <i>t</i>).


<b>Định nghĩa 4</b> (Giá trị băm tổng hợp <i>He</i> hoặc còn ký hiệu là <i>e</i>). <i>Từng thành viên </i>


<i>Ui sẽ chịu trách nhiệm ký một số phần của văn bản m, tính giá trị hàm băm hi(mj); </i>


<i>1 ≤ j ≤ NSEC và gửi cho người ủy nhiệm, người này sẽ tính giá trị băm cho mj như </i>


<i>sau:</i>


= ∑ [ ] × ℎ ; 1 ≤ ≤ (2)


<i>He</i> = <i>H</i>(<i>e1</i>||<i>e2</i> ... ||<i>eNSEC </i> (3)


Vector có thể được thỏa thuận và định nghĩa từ trước, khi đó, trong chữ ký số
tập thể đa thành phần sẽ khơng cần phải truyền , nhờ đó sẽ tiết kiệm được băng
thông trên đường truyền. Ngồi ra, mơ hình chữ ký số tập thể này có thể coi là
dạng tổng quát, với các giá trị đặc biệt của chúng ta có thể thu được các dạng
lược đồ chữ ký số đơn (khi tất cả các giá trị của đều bằng một) hoặc lược đồ
dạng chữ ký số tập thể hiện hành khi mỗi thành viên chỉ ký vào một phần duy nhất
của văn bản (vector có thể biểu diễn dưới dạng một ma trận đơn vị, có đường
chéo bằng một và bằng khơng ở các vị trí khác).


<b>Định nghĩa 5 </b>(Chữ ký số tập thể ủy nhiệm đa thành phần - MSMS-PROXY).
Giả sử văn bản m được chia thành NSEC, có tập thể NOSIG người ủy nhiệm cần
ủy nhiệm quyền ký cho tập thể NPSIG người ký, chữ ký tập thể ủy nhiệm đa thành
phần là tập bộ 13 thành phần (<b>Setup</b>, <b>KeyGen</b>OSIG, <b>KeyGenPub</b>OSIG, <b>Sign</b>OSIG,


<b>SignPub</b>OSIG, <b>Verify</b>OSIG, <b>VerifyPub</b>OSIG, <b>KeyGen</b>PSIG, <b>KeyGenPub</b>PSIG, <b>Sign</b>PSIG,



<b>SignPub</b>PSIG, <b>Verify</b>PSIG, <b>VerifyPub</b>PSIG ) có thuật toán thực hiện trong thời gia đa
thức với các giao thức sau:


1) Khởi tạo tham số params với k là tham số độ an toàn, R là tham số ngẫu
nhiên.


params ←Setup (1<i>k</i>) (4)
2) Sinh khóa cơng khai và bí mật cho các thành viên OSIGi, 1 ≤ i ≤ NOSIG.


<i>(PK.OSIGi,SK.OSIGi) ← <b>KeyGen</b>OSIG(params, 1k,i) </i>(5)


Sau khi có khóa cơng khai của từng thành viên, sinh khóa cơng khai của cả tập
thể bằng thuật toán:


(PK.OSIGpub)<i> ← </i>{ (PK. OSIG )} (6)


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

. ← (SK. OSIG , ) (7)
Người tổng hợp cần phải kiểm tra chữ ký của từng thành viên bằng thuật toán sau:


{0,1} ← { ( . , , )} (8)


Nếu tất cả đều hợp lệ (Accept) thì tiến hành tính chữ ký của cả tập thể, nếu
khơng thì u cầu thực hiện lại bước này.


. ← { ( )} (9)


4) Xác thực văn bản của tập thể người ủy nhiệm:


{0,1} ← . , , . (10)



5) Sinh khóa cơng khai và bí mật cho các thành viên được ủy nhiệm PSIGj, 1 ≤ j
≤ NPSIC, w là giá trị bảo đảm.


( . , . ) ← params, , 1 , , (11)


Sau khi có khóa cơng khai của từng thành viên, sinh khóa cơng khai của cả tập
thể bằng thuật toán:


( . ) ← { . , } (12)


6) Hình thành chữ ký của tập thể người ủy nhiệm: Từng thành viên PSIGj tham
gia ký văn bản theo thuật toán dưới đây:


. ← ( . , , , ) (13)
Người tổng hợp cần phải kiểm tra chữ ký của từng thành viên bằng thuật toán
sau:


{0,1} ← { . , , , , } (14)


Nếu tất cả đều hợp lệ (Accept) thì tiến hành tính chữ ký của cả tập thể, nếu
khơng thì u cầu thực hiện lại bước này.


. ← { ( , )} (15)


7) Xác thực văn bản của tập thể người được ủy nhiệm:


{0,1} ← . , , . (16)


<b>4. ĐỀ XUẤT LƯỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ ỦY NHIỆM ĐA THÀNH </b>
<b>PHẦN DỰA TRÊN HỆ MẬT ĐỊNH DANH </b>



<i><b>A. Cài đặt </b></i>


Coi <i>G1</i> là nhóm cộng cyclic có bậc là số nguyên tố <i>q</i> và phần tử sinh là <i>P</i>. <i>G2</i> là


nhóm nhân cyclic có cùng bậc <i>q</i>. <i>ê</i> là một ánh xạ song tuyến tính:


<i>ê : G1 × G1 → G2</i>


<i>H1,H2,H3</i> là các hàm băm được sử dụng cho mục đích bảo mật và được định


nghĩa như sau:


<i>H1 : {0,1}* → G1</i> <i> </i>(17)


<i>H2 : {0,1}* →</i>ℤ∗ (18)


<i>H3 : {0,1}* × {0,1}* →</i>ℤ∗ <i> </i> (19)


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<i>Ppub = sP </i>∈ <i>G1</i>


3) Công bố tham số của hệ thống là:


<i>Params</i> = (<i>k, G1,G2, q, ê, H1, H2, H3, P, Ppub</i>)


<i><b>B. Tách khóa </b></i>


Người ký ủy nhiệm có định danh là <i>ID</i>, có <i>NPSIG</i> người có thể ký ủy nhiệm


<i>IDBI</i> với<i>l ≤ i ≤ NPSIG</i>.



1) Bất kỳ ai cũng có thể tính khóa cơng khai của người cần ủy nhiệm:


<i>QID = H1(ID) </i>∈<i> G1</i>


và những người được ủy nhiệm:
QIDBi<i>= H1(IDBi) </i>∈<i> G1 </i>


2) Người quản trị hệ thống sẽ tính khóa bímật cho người ủy nhiệm và được
ủy nhiệm:


<i>SID = sQID</i>


<i>SIDBi</i> = <i>sQIDBil ≤ i ≤ NPSIG</i>.


Người quản trị sẽ thơng qua kênh bí mật gửi các khóa bí mật này cho các
thànhviên.


<i><b>C. Hình thành chữ ký của người ủy nhiệm </b></i>


1) Với văn bản ∈ {0, 1}∗người ký cNọn ngẫu nhiên ∈ ℤ∗.
2) Tính các giá trị:


<i>Vs = xP </i>


<i> H = H2(m) </i>


<i>Ws = HSID + xPpub</i>


3) Chữ ký của người ủy nhiệm là = ( , ).



<i><b>D. Xác thực chữ ký người ủy nhiệm </b></i>


1) Với văn bản <i>m’</i> và chữ ký = ( , ) nhận được, người xác thực tính:


<i>H' = H2(m') </i>


<i>QID = H1(ID) </i>


2) Chấp nhận chữ ký khi điều kiện sau thoả mãn:


<i>ê(Ws, P) = ê(H'QID + Vs, Ppub)</i> (20)


<i><b>E. Sinh khóa cho người được ủy nhiệm </b></i>


Trong giai đoạn này người ủy nhiệm sẽ trao đổi với người được ủy nhiệm với
các quyền được ủy nhiệm. Để làm việc này người ủy nhiệm sẽ tạo ra một văn bản
bảo đảm , văn bản này sẽ kèm theo một số thông tin về văn bản, về những hạn
chế của văn bản sẽ ủy nhiệm, thời gian hoặc định danh của những người sẽ ủy
nhiệm.


1) <i>Ủy nhiệm</i>: Người cần ủy nhiệm chọn ngẫu nhiên ∈ ℤ∗và tính:


<i>V = tP, </i>


<i>h = H2(</i> ),


<i>W = hSID + tPpub</i>∈ <i>G1</i>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

2) Kiểm tra ủy nhiệm: Mỗi thành viênIDBi. sẽ tính h = H2( ) và kiểm tra điều


kiện sau (nếu khơng thỏa mãn thì phải yêu cầu gửi lại hoặc hủy giao thức):


<i>ê(W,P) = ê(hQID + V, Ppub) </i>


3) <i>Sinh khóa ủy nhiệm</i>: Mỗi thành viên<i>IDBi</i>. sẽ tính <i>h = H2(</i> ) tính khóa bí mật


ủy nhiệm:


= + ℎ


<i><b>F. Hình thành chữ ký ủy nhiệm </b></i>


Trong phần này sẽ có một người phụ trách có nhiệm vụ tập hợp hết tất cả các
chữ ký thành phần.


1) Mỗi thành viên <i>IDBi</i>. sẽ chọn ngẫu nhiên số ∈ ℤ∗


2) Mỗi thành viên <i>Ui (1 ≤ i ≤ NPSIG)</i> chọn <i>NSEC</i> số nguyên [ ] ∈ ℤ∗ ; <i>(1 ≤ j </i>


<i>≤ NSEC)</i> như là các khóa riêng và tính khóa cơng khai tương ứng theo công thức:


= ( ⊗ ) (21)


Với định nghĩa phép toán:


⊗ = ( [ ] × [ ])( ) (22)


Giả thiết có <i>n </i>người <i>Ui;(1 ≤ i ≤ NPSIG)</i> cần ký vănbản ∈ {0,1}∗. Chia


văn bản <i>m </i>thànhphần <i>NSEC</i>,sao cho có thể viết <i>m</i> theo dạng



<i>m = (m1||m2||m3||...|mNSEC) </i>


sử dụng ký hiệu và định nghĩa mảng phân công ký như ở Định nghĩa 3.


Từng thành viên <i>Ui</i> sẽ chịu trách nhiệm ký một số phần của văn bản <i>m</i>, tính giá


trị hàm băm <i>hi(mj); (1 ≤ j ≤ NSEC)</i> và gửi cho người ủy nhiệm, người này sẽ tính


giá trị băm cho <i>mj</i> như sau:


= [ ] × ℎ ( ) ; (1 ≤ ≤ ) (23)


<i>h3 = H3(e1||e2 ... ||eNSEC,</i> <i>)</i> (24)


Bằng cách tính như trên chúng ta thu được chữ ký số tập thể có phân biệt trách
nhiệm, gửi giá trị <i>Upi</i> đến (NPSIG - l) các thành viên còn lại.


3) Các thành viên tính và gửi :


= (25)


= ℎ + ( ⊗ ) (26)
4) Người phụ trách sau khi có các chữ ký thành phần sẽ tạo khóa cơng khai
ủy nhiệm:


= ℎ + + (27)
và sau đó kiểm tra điều kiện:


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

= (29)



sau đó chữ ký số ủy nhiệm sẽ là ( , , , , ).


<i><b>G. Xác thực chữ ký ủy nhiệm</b></i>


Người xác thực chữ ký ủy nhiệm sau khi nhận văn bản <i>m'</i> và chữ ký


( , , , , ) sẽ tiến hành các bước sau:


1) Kiểm tra <i>m'</i> và bảo đảm và các điều kiện liên quan.


2) Kiểm tra sự ủy quyền của NPSIG người ký. Nếu khơng hợp lệ thì dựng lại và
từ chối chữ ký.


3)Tính các giá trị: <i>h = H2( )</i>


<i>h’3</i> = <i>H3</i>(<i>m’,</i> )


= ℎ + + ×


4) Kiểm tra điều kiện sau nếu đúng thì chấp nhận chữ ký, ngược lại là từ chối
chữ ký:


<i>ê</i>( , ) = <i>ê</i> , ℎ′ + (30)


<b>Định lý 6</b> (<i>Lược đồ ký tập thể ủy nhiệm đa thành phần</i>).
Nếu m’ = m thì ê ( , ) = ê , ℎ′ +


<i>Chứng minh :</i>



ê , ơ = ê , ℎ +


ê , ơ = ê , ℎ +


ê , [ℎ + ( ⊗ ) ] = ê , ℎ +


ê , [ℎ ( + ℎ ) + ( ⊗ ) ] = ê , ℎ +


ê , [ℎ (ℎ + + ℎ ) + ( ⊗ ) ]


= ê , ℎ +


ê , [ℎ (ℎ + + ℎ ) + ( ⊗ ) ] = ê , ℎ +


</div>

<!--links-->

×