Các biểu tượng

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị smartphone (Trang 28)

c – Đạ i diện d ữliệu mã hóa, một số ữ gi a 0 và n-1. C – ữ ệ D li u mã hóa, m t chu i sộ ỗ ố ệ h 8.

d S – ố mũ khóa riêng RSA.

di S – ố mũ hàm CRT của thừa số ộ c ng ri, m t s ộ ố nguyên dương e*di≡ 1 (mod(ri-1)), i=3, …, u.

e*dP≡1(mod(p-1))

dQ S – ố mũ hàm CRT của q, m t s ộ ố nguyên dương e*dQ≡1(mod(q-1))

e – ố mũ công khai RSA S

EM – Thông điệp được mã hóa, m t xâu hộ ệ 8.

emBits –Chiều dai theo bits của thông điệp được mã hóa EM. emLen – Chi u dài theo h 8 cề ệ ủa thông điệp được mã hóa EM. GCD (. , .) – Hàm ước s chung l n nh t c a hai s không âm. ố ớ ấ ủ ố Hash – Hàm băm.

hLen –Chiều dài d ữliệu đầu ra theo h 8 cệ ủa hàm băm Hash. k –Chiều dài theo h 8 cệ ủa số modulus RSA n.

K – Khóa riêng RSA.

L – Nhãn RSAES-OAEP tùy ch n, m t chuọ ộ ỗ ệi h 8.

LCM – Hàm b i sộ ố chung nh nhỏ ất của m t danh sách s nguyên không âm. ộ ố m – Đạ i diện thông điệp, một số nguyên dương giữa 0 và n- 1.

M – Thông điệp, m t chu i hộ ỗ ệ 8.

mask D u ra hàm MGF, m– ữliệ ột xâu hệ 8. maskLen –Chiều dài của xâu hệ 8 mask. MGF – Hàm sinh mask.

mgfSeed –Nhân, từ đó mask được sinh, m t xâu h 8. ộ ệ mLen Chi n dài theo h 8 c a m– ề ệ ủ ột thông điệp M.

(n, e) – Khóa công khai RSA.

p, q Hai th– ừa số nguyên t cố ủa số modulus n RSA. qInv H s CRT, m t s – ệ ố ộ ố nguyên dương nhỏ hơn p q*qInv≡1(mod p)

ri– Thừ ốa s nguyên t c a s modulus n RSA, bao g m r1=p, r2=q, và nh ng th a s ố ủ ố ồ ữ ừ ố b xung n u c n. ổ ế ầ

s – Đạ i diện ch ký, mữ ột số ữ gi a 0 và n-1. S – Ch ký, m t chuữ ộ ỗ ệi h 8.

sLen – Chi u dài h 8 c a khóa biề ệ ủ ến thiên (salt) EMSA-PSS.

ti – ệ ố H s CRT c a th a sủ ừ ố nguyên t c ng ri, mố ộ ột số nguyên dương nhỏ hơn ri -

r1*r2*….*ri 1*ti≡1(mod ri), i=3, …, u

u S c a các Th– ố ủ ừa số nguyên t c a hàm modulus RSA, u>2. ố ủ x M– ột số nguyên không âm.

X M t chu– ộ ỗi hệ 8 phù h p v i x. ợ ớ xLen –chiều dài c a chuủ ỗi hệ 8 X.

0x D u ch i di n h hexa c a m t s h 8 ho c m t chu i h – ấ ỉ đạ ệ ệ ủ ộ ố ệ ặ ộ ỗ ệ 8; “0x48” biểu th ị m t s h 8 v i giá tr ộ ố ệ ớ ị hexa 48; “(0x)48 09 0e” biểu th mị ột chu i ba s h 8 liên tiỗ ố ệ ếp với giá trị hexa theo trình t 48, 09 và 0e. ự

λ(n) – LCM (r1-1, r2-1, …, ru-1)

hàm lo i tr bít c a c– ạ ừ ủ ủa hai chuỗi hệ 8. ‖– Toán t c t ử ắ

≡ Biểu tượng đồng dư; a≡b(mod n) nghĩa là mộ ốt s nguyên n chia cho s nguyên a-ố b.

2.3.3. Các loại khóa

Hai loại khóa đượ ử ục s d ng trong các s nguyên t ố ố và lược đồ được định nghĩa trong tài li u này là ệ Khóa công khai RSAKhóa riêng RSA. Khóa công khai RSA và khóa bí m t RSA t o nên c p khóa RSA. ậ ạ ặ

Đặ ảc t này h cái gỗtrợ ọi là RSA đa nguyên tố ở đó số modulus có th có nhiể ều hơn hai th a s nguyên t . L i ích cừ ố ố ợ ủa RSA đa nguyên tố là chi phí tính toán thấp hơn cho giải mã và ki m tra ch ký sể ữ ố, được cung c p mà thuấ ật toán CRT đượ ử ục s d ng. Hiệu năng có thể đạt được trên các n n t ng b x ề ả ộ ử lý đơn tốt hơn, nhưng m t ng r t ở ộ ấ l n trên các n n tớ ề ảng đa bộ ử lý, nơi mà các số mũ modulus bao gồ x m có th ể dược x ửlý song song.

2.3.3.1. Khóa công khai RSA

Khóa công khai RSA gồm 2 thành phần:

- n S modulus RSA, m– ố ột số nguyên dương. - e – ố mũ công khai RSA, mộ S t số nguyên dương.

M t khóa công khai h p l , s Modulus n RSA là k t qu c a ri các s nguyên t ộ ợ ệ ố ế ả ủ ố ố riêng biệt u, i=1, 2, …, u ở đó u>=2, và số mũ công khai e RSA là mộ ốt s nguyên gi a 3 và n-1 thữ ỏa mãn GCD(e, λ(n))≡1, ở đó λ(n)≡LCM(r1 1, …, ru- -1). Theo quy ước, hai s nguyên t ố ố đầu tiên r1 và r2 cũng có thể ám ch p và q theo trình t . ỉ ự

2.3.3.2. Khóa riêng RSA

Khóa riêng RSA có thể có một trong hai đại diện.

- Đại diện đầu tiên bao g m m t c p (n, d), ồ ộ ặ ở đó các thành phần có nghĩa sau đây:

n s modulus RSA, m– ố ột số nguyên dương. d s – ố mũ riêng RSA, một số nguyên dương.

- Đại di n th 2 bao g m b ệ ứ ồ ộ năm (p, q, dP, dQ, qInv) và một chu i ba s (ri, di, ỗ ố ti), i= 3, …, u, mot cho mỗ ối s nguyên t không trong b ố ộ năm, ở đó các thành

p –Thừa số đầ u tiên, một số nguyên dương. q –Thừa số hai, mthứ ột số nguyên dương.

dP S – ố mũ CRT của thừa số đầ u tiên, một số nguyên dương. dQ S – ố mũ CRT của thừa số 2, m t s thứ ộ ố nguyên dươn. qInv H s – ệ ố CRT đầu tiên, một số nguyên dương.

ri– ừ ố ứ th a s th i, m t s ộ ố nguyên dương.

di S – ố mũ CRT ủc a thừa số i, mthứ ột số nguyên dương. ti– ệ ố h s CRT c a th a s th i, mủ ừ ố ứ ộ ố nguyên dương.t s

Trong một khóa riêng RSA h p l v i bi u di n th nhât, s modulus n RSA là gi ng ợ ệ ớ ể ệ ứ ố ố như trong khóa công khai RSA tương ứng và là k t qu c a ri các s nguyên t u, ế ả ủ ố ố i=1, 2, …, u, ở đó u>2. Số mũ khóa riêng d RSA là mộ ố nguyên dương nhỏ hơn n t s thỏa mãn : e*d ≡ 1 (mod , λ(n)). (2.1)

Ở đó e phù hợp v i s ớ ố mũ công khai RSA và λ(n) được định nghĩa như trên.

Trong m t khóa riêng RSA h p l v i bi u di n th 2, hai th a s p và q là hai thộ ợ ệ ớ ể ễ ứ ừ ố ừa s u tiên c a s Modulus n RSA (t c là, r1 và r2), s ố đầ ủ ố ứ ố mũ dP và dQ CRT là hai số nguyên dương nhỏ hơn p và q thỏa mãn theo trình t : ự

e*dP ≡ 1 (mod (p-1)) (2.2) e*dQ ≡ 1 (mod (q-1)) (2.3) và h s qInv hàm CRT là mệ ố ột số nguyên dương nhỏ hơn p thỏa mãn:

q*qInv ≡ 1 (mod p) (2.4)

N u u >2, bi u di n này s bao g m m t ho c nhi u b ế ế ễ ẽ ồ ộ ặ ề ộ ba (ri, di, ti), i=3, …, u. Hệ s ri là các th a s nguyên t b xung c a s ố ừ ố ố ổ ủ ốModulus n RSA. Mỗ ố mũ di CRT i s (i=3, …, u) thỏa mãn:

e*di≡ 1 (mod(ri-1)) (2.5)

Ri*ti≡ 1(mod ri) trong đó Ri=r1*r2*…ri-1 (2.6)

2.3.4. Các nguyên hàm mật mã

Các nguyên hàm m t mã là các toán t toán hậ ử ọc cơ bả ở đó các lược đồ ận m t mã có thể được xây dựng. Chúng được s d ng tri n khai trong ph n cử ụ ể ầ ứng cũng như các module ph n mầ ềm.

B n loố ại nguyên hàm được ch ra trong tài liỉ ệu này, đượ ổc t ch c theo c p: Mã hóa ứ ặ và gi i mã; ký và ki m tra ch ký. ả ể ữ

Đặ ả ềc t v các nguyên hàm th a nh n rừ ậ ằng các điều ki n c th nào có th t b ng ệ ụ ể ể đạ ằ các đầu vào, trong trường h p này là khóa các Khóa riêng và khóa công khai h p l . ợ ợ ệ

2.3.4.1. Các nguyên hàm mã hóa và giải mã.

M t nguyên hàm mã hóa t o ra mộ ạ ột đại di n mã hóa t mệ ừ ột đại diện thông điệp qua một khóa công khai, và một nguyên hàm gi i mã phả ục hồ ại l i thông điệm đại diệ ừn t đại di n mã hóa qua khóa riêng phù h p. ệ ợ

M t c p nguyên hàm mã hóa và giộ ặ ải mã được s dử ụng trong các lược đồmã hóa được định nghĩa trong tài liệu này: RSAEP/RSADP. RSAEP và RSADP có toán t gi ng ử ố hệt nhau, với các khóa khác nhau đầu vào.

RSAEP

RSAEP((n, e), m) (2.7)

Đầu vào: (n. e) Khóa công khai RSA –

m, m nguyên gi a 0 và n-1. m – Đại diện thông điệ ột số ữ

Đầu ra: c i di n mã hóa, m t s nguyên gi a 0 và n-1. – Đạ ệ ộ ố ữ L ỗi: “Đại diện thông điệp ngoài phạm vi”

Giả đị nh: Khóa công khai RSA (n, e) hợ ệp l . Các bước:

1. Nếu đại diện thông điệp m không n m gi a 0 và n-1, k t qu i diằ ữ ế ả “đạ ện thông điệp ngoài phạm vị” và dừng l ại. 2. Để c≡me mod n. 3. Kết quả c. RSADP RSADP (K,c)

Đầu vào: K Khóa riêng RSA, – ở đó K có một trong các dạng sau đây. • Một cặp (n, d)

• Một bộ năm (p, q, dP, dQ, qInv) và một ch i ba rỗ ỗng (ri, di,ti), i=3, …, u) c – Đạ i diện b n mã, mả ột số nguyên gi a 0 và n-1. ữ

Đầu ra: m i di n b– Đạ ệ ản thông điệp, m t s gi a 0 và n-1. ộ ố ữ L ỗi: “Đại diện thông điệp ngoài phạm vi”.

Giả đị nh: Khóa riêng RSA K hợ ệp l . Các bước:

1. Nếu đại di n b n mã c không n m gi a 0 và n-1, k t qu ệ ả ằ ữ ế ả “Đại di n b n mã ngoài ệ ả phạm vi” và dừng thu t toán. ậ

2. Đại diện thông điệm m được tính toán như sau:

N u b u tiên (n, d) cế ộ đầ ủa K được sử ụng, để m≡cd modn d

N u b 2 (d, p, dP, dQ, qInv) và (ri, di, ti) cế ộthứ ủa K được sử ụ d ng, x ử lý như sau:

Để m1≡ cdP mod p và m2≡ cdQ mod q. N u u>2ế , cho mi≡ cdi mod ri, i=3, …, u. Cho h = m1-m2*qInv mod p.

N u u>2, cho R=ri và For i=3 ế Cho R=R*ri-1

Cho h=(mi-m)*ti(mod ri) Cho m = m+R*h

Kết quả m.

3.3.4.2. Các nguyên hàm ký s và ki m tra ch ố ữký.

M t nguyên hàm ký t o ra mộ ạ ộ ạt đ i di n ký t mệ ừ ột thông điệp qua khóa riêng, và một nguyên hàm ki m tra ký s phể ố ục hồi thông điệp t mừ ộ ạt đ i diện ký s qua khóa công ố khai tương ứng. M t c p nguyên hàm ký và ki m tra ch ộ ặ ể ữ ký được s dử ụng trong lược đồ ký s ố được định nghĩa trong tài liệu này và được đặ ảc t ởđây: RSASP1/RSAVP1. Các toán t toán ho c chính trong m i nguyên hàm là viử ạ ỗ ệc mũ hóa như trong các nguyên hàm mã hóa và gi i mã các ph n trên. RSASP1 và RSAVP1 giả ở ầ ống như RSADP và RSAEP ngo i tr tên cạ ừ ủa các đố ố đầu vào đầu ra; Chúng đượi s c phân biệt do chúng được sử ụ d ng trong các m c tiêu khác nhau. ụ

RSASP1

RSASP1 (K,m)

Đầu vào: K Khóa riêng RSA, – ở đó K có một trong các dạng sau đây. • M t c p (n, d) ộ ặ

• M t b ộ ộ năm (p, q, dP, dQ, qInv) và một ch i ba rỗ ỗng (ri, di,ti), i=3, …, u) m – Đạ i diệ thông điện p, một số nguyên gi a 0 và n-1. ữ

Đầu ra: s i di n ch ký, m t s gi a 0 và n-1. – Đạ ệ ữ ộ ố ữ L ỗi: “Đại diện thông điệp ngoài phạm vi”. Giả đị nh: Khóa riêng RSA K hợ ệp l .

Các bước:

1. Nếu đại di n bệ ản thông điệp m không n m gi a 0 và n-1, k t qu ằ ữ ế ả “Đại di n thông ệ điệp ngoài phạm vi” và dừng thu t toán. ậ

2. Đại diện ch ữ ký s được tính toán như sau:

N u b u tiên (n, d) cế ộ đầ ủa K được sử ụng, để s≡md mod n d

N u b 2 (d, p, dP, dQ, qInv) và (ri, di, ti) cế ộthứ ủa K được sử ụ d ng, x ử lý như sau:

Để s1≡ mdP mod p và s2≡ mdQ mod q. Nếu u>2, cho si≡ mdi mod ri, i=3, …, u. Cho h = (s1-s2)*qInv mod p.

Cho s=s2+q*h.

N u u>2, cho R=ri và For i=3 to u do ế Cho R=R*ri-1

Cho h=(si-s)*ti(mod ri) Cho s = s+R*h

3. Kết quả s.

RSAVP1

RSAVP1((n, e), s)

Đầu vào: (n. e) Khóa công khai RSA –

n ch ký, m nguyên gi a 0 và n-1. s – Đại diệ ữ ột số ữ

Đầu ra: m i di– Đạ ện thông điệp, m t s nguyên gi a 0 và n-1. ộ ố ữ L ỗi: “Đại diện ch ký ngoài phữ ạm vi”

Giả đị nh: Khóa công khai RSA (n, e) hợ ệp l . Các bước:

1. Nếu đại di n ch ký s không nệ ữ ằm gi a 0 và n-1, k t qu i diữ ế ả “đạ ện thông điệp ngoài phạm vị” và dừng l ại.

2. Để m≡se mod n. 3. Kết quả m.

3.3.4.2. T ng quan v ổ ề các lư c đợ ồ.

Một lược đồ ế ợ k t h p v i các nguyên hàm m t mã và các kớ ậ ỹthuật khác để đạt được m t m c tiêu v an ninh c . Hai loộ ụ ề ụthể ại lược đồ được đưa ra trong tài liệu này: Các lược đồ mã hóa và các lược đồ ch ký. ữ

Các lược đồ ch ra trong tài li u này giỉ ệ ới hạn v ph m v mà các toán t bao g m ch ề ạ ị ử ồ ỉ có các bước xử lý d li u v i khóa công khai và khóa riêng RSA, và không bao g m ữ ệ ớ ồ các b c t o ra khóa ho c kiướ ạ ặ ểm tra khóa. Do đó để ổ b xun cho các toán t ử lược đồ, một ứng d ng có s ph bi n g n các toán t quan lý mà nh ụ ẽ ổ ế ắ ử ờ đó các đối tượng tham gia có th l y các khóa công khai và khóa riêng cho m t toán t ể ấ ộ ử lược đồ. Các toán t ử b xung c và các chi tiổ ụthể ết của nó ngoài ph m vi c a tài li u này. ạ ủ ệ

Các đặ ảc t và toán t ửlược đồ ừ th a nhận các điều ki n ch c chệ ắ ắn đạt được b i các ở đầu vào, c th là c p khóa công khai và riêng là h p lụ ể ặ ợ ệ. Do đó cách xử lý m t khóa ộ không h p l ợ ệ không được ch ỉra ở đây. Ảnh hưởng trên các x ử lý không được ch ra ỉ ở đây phụ thu c vào ng d ng. Các kh ộ ứ ụ ả năng có thể ể ki m tra h p l khóa bao g m ợ ệ ồ ki m tra khóa c b ng ể ụthể ằ ứng d ng; ki m tra khóa trong h t ng mã khóa công khai; ụ ể ạ ầ và giao trách nhi m cho các toán t ệ ử được th hi n v i m t khóa không h p l cho ực ệ ớ ộ ợ ệ một đơn vị u trách nhi m sinh khóa. chị ệ

M t th c ti n m t mã t t nói chung là s d ng m t c p khóa RSA c trong ộ ự ễ ậ ố ử ụ ộ ặ ụ thểchỉ một lược dồ. Điều này tránh r i ro rủ ằng điểm y u trong mế ột lược đồ có th làm hể ại đến an ninh của lượ đồc khác, và có th ể là căn bản duy trì an ninh có th ểchứng minh.

2.3.5. Các lược đồ mã hóa.

Một lược đồ mã hóa bao g m m t toán t mã hóa và m t toán t gi i mã, ồ ộ ử ộ ử ả ở đó toán t mã hóa t o ra mử ạ ột bản mã t ừ thông điệp với khóa công khai RSA của người nhận, và toán t gi i mã ph c hử ả ụ ồi thông điệp t b n mã v i khóa riêng RSA cừ ả ớ ủa người nh n. ậ Một lược đồ mã hóa có th ể được s d ng trong các ử ụ ứng dụng đa dạng khác nhau. Một ứng dụng điển hình là giao th c thi t l p hóa, ứ ế ậ ởđó thông điệp ch a tài liứ ệu khóa được phân ph i bí mố ậ ừ ột t m t ngư i đờ ến người khác.

2.3.5.1. Toán tử mã hóa

RSAES-OAEP-ENCRYPT((n,e), M, L)

Các tùy ch n: ọ Hash –hàm băm (hLen biểu th ịchiều dài h h 8 k t qu cệ ệ ế ả ủa hàm băm) Hàm sinh m t n

MGF – ặ ạ

Đầu vào: (n, e) Khóa công khai RSA c– ủa người nh n (k, bi u th chi u dài h 8 ậ ể ị ề ệ của số modulus RSA n)

M – Thông điệp cần được mã hóa, m t ch i h 8 có chi u dài mLen, ộ ỗ ệ ề ở đo mLen<=k-2hLen-2.

L – Nhãn tùy chọn được g n vắ ới thông điệp; giá tr mị ặc định cho L, nếu L không được cung c p, là m t chu i r ng. ấ ộ ỗ ỗ

Đầu ra: C b n mã, m t chu i h 8 có chi u dài k. – ả ộ ỗ ệ ề L ỗi: “Thông điệp quá dài”; “Nhãn quá dài” Thừa nhận: Khóa công khai RSA (n, e) là h p l . ợ ệ

Các bước:

1.Kiểm tra chi u dài. ề

a. N u chi u dài c a L lế ề ủ ớn hơn giớ ạn đầu vào cho hàm băm (261i h - 1 h 8 ệ cho SHA-1), đầu ra “Nhãn quá dài” và d ng l ừ ại.

b. N u mLen>k-2hLen-2, kế ết quả “Thông điệp quá dài” và dừng l ại.

2.EME-OAEP mã hóa

a. Nếu nhãn L không được cung ch p, cho L là m t chu i r ng. cho ấ ộ ỗ ỗ lHash=Hash(L), m t chuộ ỗi hệ 8 có chi u dài hLen. ề

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị smartphone (Trang 28)

Tải bản đầy đủ (PDF)

(70 trang)