You are on page 1of 13

Translated from French to Vietnamese - www.onlinedoctranslator.

com

Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5

Jean-Sébastien Coron1,3, Marc Joye2, David Naccache3, và Pascal Paillier3

1Ecole Normale Supérieure 45

rue d'Ulm, 75005 Paris, Pháp


coron@clipper.ens.fr
2Thẻ Gemplus Quốc tế

Khu thương mại Gémenos, BP100, 13881 Gémenos, Pháp


marc.joye@gemplus.com
3Thẻ
Gemplus Quốc tế
34 rue Guynemer, 92447 Issy-les-Moulineaux, Pháp
{jean-sebastien.coron,david.naccache,pascal.paillier}@gemplus.com

Trừu tượng.Bài báo này giới thiệu hai cuộc tấn công mới vàopkcs#1 v1.5,năm rsa-
chuẩn mã hóa dựa trên đề xuất của Phòng thí nghiệm RSA. Ngược lại với cuộc tấn công
của Bleichenbacher, các cuộc tấn công của chúng tôi chỉ có bản rõ được chọn,
I Ehọ làmkhôngsử dụng một oracle giải mã. Cuộc tấn công đầu tiên áp dụng cho
số mũ công khai nhỏ và cho thấy rằng một bản rõ kết thúc bằng đủ số 0 có thể
được phục hồi một cách hiệu quả khi có sẵn hai hoặc nhiều bản mã c hoặc tương
ứng với cùng một bản rõ. Chúng tôi tin rằng kỹ thuật mà chúng tôi sử dụng mang
lại lợi ích độc lập vì nó mở rộng cuộc tấn công số mũ thấp của Coppersmith đến
các thông số độ dài nhất định. Cuộc tấn công thứ hai của chúng tôi có thể áp dụng
choBất kỳsố mũ công khai, miễn là hầu hết các bit thông báo đều bằng 0. Nó
dường như là cuộc tấn công bằng bản rõ được chọn đầu tiên vào mộtrsa-tiêu
chuẩn mã hóa dựa trên mang lại kết quả thực tế cho bất kỳ số mũ công khai nào.

1. Giới thiệu

Pkcslà viết tắt củaTiêu chuẩn mật mã khóa công khai. Nó là một tập hợp lớn các
thông số kỹ thuật bao gồmrsamã hóa [13], thỏa thuận khóa Diffie-Hellman, mã
hóa dựa trên mật khẩu, cú pháp (chứng chỉ mở rộng, tin nhắn mật mã, thông tin
khóa riêng và yêu cầu chứng nhận) và các thuộc tính được chọn. Về mặt lịch sử,
pkcsđược phát triển bởi Phòng thí nghiệm RSA, Apple, Digital, Lotus, Microsoft,
MIT, Northern Telecom, Novell và Sun. Các tiêu chuẩn đã được cập nhật thường
xuyên kể từ đó. Hôm nay,pkcsđã trở thành một phần của một số tiêu chuẩn và của
nhiều sản phẩm bảo mật bao gồm cả Thư tăng cường bảo mật trên Internet.
Trong sốpkcsbộ sưu tập,pkcs#1 v1.5mô tả một phương pháp mã hóa cụ thể chorsa
mã hóa được gọi làrsaEncryption.Về bản chất, dữ liệu được bao bọc trước tiên được
mã hóa theo khóa được chọn ngẫu nhiênKsử dụng mật mã khối đối xứng (ví dụ.một bộ
basau đóTRONGcbcchế độ) thìKlàrsa-được mã hóa bằng khóa công khai của người
nhận.
Năm 1998, Bleichenbacher [2] đã công bố một cuộc tấn công bằng bản mã chọn
lọc thích ứng vào pkcs#1 v1.5có khả năng khôi phục các bản rõ tùy ý từ vài trăm

B. Preneel (Ed.): EUROCRYPT 2000, LNCS 1807, tr. 369–381, 2000. ©


c Springer-Verlag Berlin Heidelberg 2000
370 Jean-Sébastien Coron và cộng sự.

hàng nghìn bản mã. Mặc dù các mô hình đối thủ tích cực thường được xem là các vấn
đề lý thuyết,1Cuộc tấn công của Bleichenbacher sử dụng một lời tiên tri chỉ phát hiện
sự phù hợp đối với định dạng đệm, một giả định trong đời thực dẫn đến một mối đe
dọa thực tế.Pkcs#1sau đó đã được cập nhật trong phiên bản 2.0 [15] và các bản vá
được phát hành cho người dùng muốn tiếp tục sử dụng phiên bản cũ của tiêu chuẩn.

Một cách độc lập, tồn tại một số cuộc tấn công bằng bản rõ được chọn nổi tiếng
trên rsa-các sơ đồ mã hóa dựa trên [8.5]. Những điều này thường cho phép kẻ tấn công
giải mã các bản mã với chi phí vừa phải mà không cần tính đến mô đun công khai.
Công cụ giải mã mạnh mẽ nhất có thể áp dụng cho số mũ thấprsacó lẽ là cái dựa trên
định lý của Coppersmith [6]. Trên thực tế, một mục đích chính của việc áp đặt dạng
đệm ngẫu nhiên một phần cho tin nhắn, bên cạnh việc cố gắng đạt được mức bảo mật
thích hợp như không thể phân biệt được, là làm cho toàn bộ sơ đồ mã hóa có khả năng
chống lại các cuộc tấn công như vậy.
Bài viết này cho thấy rằng, bất chấp những nỗ lực này, các cuộc tấn công bằng văn bản
gốc được chọn thực sự đủ để phá vỡpkcs#1 v1.5ngay cả trong trường hợp đòn tấn công của
Coppersmith không được áp dụng. Chúng tôi giới thiệu các kỹ thuật phân tích mật mã mới
cho phép kẻ tấn công truy xuất các bản rõ thuộc một danh mục nhất định, cụ thể là các tin
nhắn kết thúc bằng số lượng số 0 tối thiểu bắt buộc. Cuộc tấn công đầu tiên yêu cầu hai
hoặc nhiều bản mã tương ứng với cùng một bản rõ. Mặc dù, các cuộc tấn công của chúng tôi
chỉ yêu cầu mộtrấtmột lượng nhỏ bản mã (chẳng hạn như mười trong số đó), hoàn toàn độc
lập với mô đun công khai dựa trên kích thước của nó và hơn nữa, hoàn toàn thực tế đối với
các kích thước mô đun thông thường.
Phần còn lại của bài viết này được chia như sau. Phần 2 giới thiệu một cuộc tấn
công số mũ thấp mới mà chúng tôi đưa ra so sánh với cuộc tấn công của Coppersmith
trong Phần 3. Phần 4 cho thấy cách xử lý các số mũ công khai tùy ý trong khi vẫn ở
trong mô hình tấn công bản rõ đã chọn. Các biện pháp đối phó được thảo luận trong
Phần 5. Để hoàn thiện hơn, Phụ lục A trình bày các thử nghiệm thực tế về kỹ thuật của
chúng tôi được thực hiện trên các bản mã 1024-bit.

2 Cuộc tấn công bằng văn bản thuần túy được chọn với số mũ thấp của chúng tôi

Chúng tôi nhớ lại ngắn gọnpkcs#1 v1.5thủ tục mã hóa [14]. Cho phép{sinh ra}hạt đậu
rsa khóa công khai vàdlà khóa bí mật tương ứng. Ký hiệu bằngkđộ dài byte củakhông,
chúng ta có 2số 8(k−1)≤n<2số 8k. Một thông điệptôikích thước|m|byte với|m|≤k−11 được
mã hóa như sau. Một phần đệmr'bao gồmk−3− |m|≥8 byte khác 0 được tạo ngẫu
nhiên. Sau đó tin nhắntôiđược chuyển đổi thành:

pkcs(Ông') =000216‖r'‖0016‖tôi,

và được mã hóa để tạo thành bản mã:

vs=pkcs(Ông')emodkhông .

1Các cuộc tấn công bằng bản mã chọn lọc đòi hỏi phải có giả định chắc chắn rằng kẻ thù có
toàn quyền truy cập vào một oracle giải mã.
Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5 371

chữ viếtr= (000216‖r'), chúng tôi có thể viếtpkcs(Ông') =r2β+tôivớiβ= 8|m|+8.


Bây giờ giả sử rằngtôicó ít nhấtZbit có ý nghĩa bằng 0. Do đó, chúng ta có thể
viếttôi=m̄2Zvà sau đó:

pkcs(Ông') = 2Z(r2β−Z+m̄).

Từ hai mã hóa của cùng một tin nhắntôi, (I EvsTôi= [2Z(rTôi2β−Z+m̄)]emodkhông vìTôi
=1,2), kẻ tấn công đánh giá:

vs1−vs2
∆: = 2eZ2β−Z modkhông

[∑e−1 ]
≡(r1−r2) (r21β−Z+m̄)e−1−j(r22β−Z+m̄)j (modkhông). (1)
︸︷︷︸
j=0
:=ω ︸ ︷︷ ︸
:=v

Cuộc tấn công bao gồm những điều sau đây: giả sử rằngr1>r2và số lượng số 0
Zđủ lớn sao cho 0<ωv<n, mối quan hệ (1) giữ trên các số nguyên vàω=r1−r2
phải chia∆. Vì vậy, bằng cách rút ra các thừa số nhỏ của∆người ta mong đợi tái
tạo lại một ứng cử viên choω. Dự đoán đúng cho ωsẽ dẫn đến tin nhắntôisử
dụng tấn công số mũ thấp được mô tả trong [7].
chữ viếtRkích thước bit ngẫu nhiênr'(tiêu chuẩn quy địnhR≥64),Mkích thước bit của
m̄, VàKHÔNGkích thước bit của mô-đunkhông, điều kiệnw·v<nđược thỏa mãn bất cứ
khi nào:

eR+ (e −1)×(M+10)<KHÔNG . (2)

VớiKHÔNG=R+M+Z+24, phương trình (2) tương đương với:

(e −1)R+ (e −2)M+10e −34<Z

2.1 Xác định các yếu tố của∆Nhỏ hơn một ràng buộcB

Bước đầu tiên trong cuộc tấn công của chúng tôi bao gồm việc tính toán một tập hợpDcủa
các ước của∆bằng cách trích xuất các số nguyên tốP={P1, . . . ,PTôi}sự chia rẽ đó∆và nhỏ hơn
giới hạnB. Nếu tất cả các thừa số nguyên tố củaωnhỏ hơnB(Trong trường hợp này,ωđược
cho làB-mịn), rồiω∈ D. Vì chỉ phân tích một phần của∆là bắt buộc, chỉ những phương pháp
phân tích nhân tử có độ phức tạp liên quan đến kích thước của thừa số nguyên tố mới được
quan tâm ở đây. Chúng tôi nhớ lại ngắn gọn bốn trong số này: bộ phận thử nghiệm,
Pollard'sρ phương pháp,p −1 và phương pháp đường cong elip của Lenstra (ECM) và biểu thị
độ phức tạp tiệm cận của từng phương phápVS(P) của việc rút ra một thừa sốPtừ một số
không.

Phương pháp phân chia thử nghiệm:Phép chia thử cho số nguyên tố nhỏ hơn giới hạnBcủa-
đòi hỏi sự phức tạp củaP+nhật kýkhôngđể khai thácP.
372 Jean-Sébastien Coron và cộng sự.

Thăm dò ý kiếnρ-Phương pháp [4]:Cho phépPlà một yếu tố củakhông. Thăm dò ý kiếnρ-phương pháp bao gồm

lặp lại một đa thức với các hệ số nguyênf(I Etin họcf(x) modkhông, f(f(x)) mod
không, v.v.) cho đến khi va chạm theo moduloPđược tìm thấy (I Ex≡x'
(modP)). Khi đó với xác suất cao gcd(x − x'(modkhông), không) mang lại lợi nhuậnP. Trà

độ phức tạp của việc trích xuất một yếu tốPlàồ(P). Trong thực tế, lấy thừa số nguyên tố
đến khoảng 60 bit có thể được trích xuất trong thời gian hợp lý (chưa đầy
vài giờ trên máy trạm).
p −1 Phương pháp:thủy tùngp−1 làB-mịn rồip−1 chia tích (̀B) của tất cả
tiền thưởng nhỏ hơnB. Từcóp−1modP=1, chúng ta cócó`(B)modP=1 và do đó
gcd(có`(B)−1 chế độn, n) choP.
Phương pháp đường cong Elliptic của Lenstra (ECM) [11]:ECM là sự tổng quát hóa của
tràp −1 phương pháp tính toán. Tóm lại, đến điểmPcủa đường cong elip ngẫu nhiênE
mô-đunkhôngđược tạo ra. Nếu như #E/(P) (I Ethứ tự của đường cong moduloP) làB-
mịn, rồi [ (̀B)]P=ồ, điểm ở vô cùng. Điều này có nghĩa là một mod đảo ngược bất hợp
pháp √ulokhôngcóxảy√ ra vàPđược tiết lộ. ECM trích xuất một yếu tốP
củakhôngtrong nhật ký exp(( 2 + o(1))Pnhật ký nhật kýP) thời gian chạy dự kiến. Trong
thực tế, các thừa số nguyên tố lên tới 80 bit có thể được rút ra trong thời gian hợp lý
(chưa đầy vài giờ trên máy trạm).

Theo truyền thống,ψ(x, y) biểu thị số lượng số nguyênz≤xnhư vậy màztrơn


tru đối với giới hạny. Định lý sau đây đưa ra ước tính choψ(x, y).

Định lý 1 ([9]).Với mọi số thực không âmbạn,chúng ta có:

chanh xanhψ(x, x1/u)/x=ρ(bạn),


x→∞

ở đâu ρ(bạn)được gọi là hàm Dickman và được định nghĩa là:


-
- 1 nếu như0≤t<1
∫tρ(v −1)
ρ(t) = .
-ρ(không)− dv nếu nhưkhông≤t<n+1
không
v
Định lý 1 cho thấy rằngphân bố đồng đềusố nguyên ngẫu nhiênzgiữa 1 và
xlàx1/u-trơn tru với xác suấtρ(bạn). Tuy nhiên, các số nguyên được đề cập
trong phần tiếp theo không được phân bố đồng đều. do đó, các ước tính xác
suất và độ phức tạp phải được coi là heuristic.
Xác suất đóωlàB-mịn gần nhưρ(R/nhật ký2B). Như vậy, bằng cách sử dụng
hai bản mã, xác suất tìm thấy tất cả các thừa số củaωlàρ(R/nhật ký2B). Khi
đang sử dụngkbản mã,k×(k−1)/Có thể thu được 2 cặp kết hợp. Giả sử sự độc
lập thống kê giữa việc phân tích nhân tử tương ứng w, khoảng


k=2/ρ(R/nhật ký2B)
bản mã được yêu cầu để tính toán hệ số hóa của ít nhất mộtωtrong sự phức
tạp:

VS(B)/ρ(R/nhật ký2B).
Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5 373

Trong thực tế, thuật toán phân tích nhân tử bắt đầu bằng phép chia thử tới một giới hạn nào
đó. B'(chúng tôi đã lấyB'=15000), sau đó là Pollardρ-phương pháp vàp −1 phương pháp được
áp dụng và cuối cùng là ECM. Trong Bảng 1, chúng tôi đưa ra thời gian chạy thu được trên
Pentium 233-MHz để trích xuất hệ số nguyên tố của kích thướcLbit với ECM, sử dụng thư
viện số học MIRACL [12].

Bảng 1.Thời gian chạy để trích xuất thừa số nguyên tố củaLbit sử dụng ECM

L 32 40 48 56 64 72
thời gian tính bằng giây 6 15 50 90 291 730

Điều này cho thấy rõ rằng đối vớiR≤72, các yếu tố củaωcó thể được phục hồi
một cách hiệu quả. VìR >72, chúng tôi ước tính trong Bảng 2 thời gian thực hiện và
số lượng bản mã cần thiết, khi chỉ cần trích xuất các thừa số lên tới 72 bit.

Ban 2.Thời gian chạy và số lượng bản mã gần đúng cần thiết để khôi phục hệ
số hóa của ít nhất mộtω
L 128 160 192 224 256
thời gian tính bằng giây 1719 3440 7654 19010 51127
số lượng bản mã 3 4 5 8 12

2.2 Xác định các ứng viên choω


Từ phần trước, chúng tôi nhận được một bộ tiền thưởngP={P1, . . . ,PTôi}chia ∆,
chẳng hạn như số nguyên tố chiaωđang ở trongP. TừPchúng tôi trôi một bộD={∆j}
của các ước của∆, trong đó có chứaω. Ký hiệu bằngd(k) số ước của một số nguyên
k, định lý sau đây [10] cung cấp ước tính số ước của một số nguyên ngẫu nhiên.
Chúng ta nói rằng một hàm số họcf(k) là của đơn hàng trung bìnhcủag(k) nếu như

f(1) +f(2) +. . .+f(k)∼g(1) +. . .+g(k).

Chúng tôi tuyên bố:

Định lý 2.Thứ tự trung bình củad(k)lànhật kýk.Chính xác hơn, chúng ta có:


d(1) +d(2) +· · ·+d(k) =knhật kýk+ (2γ −1)k+O(k),

trong đó γ là hằng số Euler.


374 Jean-Sébastien Coron và cộng sự.

Định lý 2 chứng tỏ rằng nếu∆được phân bố đều từ 1 đếnkhôngsau đó là số


ước của nó và do đó số lượng ứng cử viên trung bình choω đại khái sẽ là nhật
kýkhông. Từ∆không được phân bố đồng đều, điều này chỉ cung cấp một lập
luận heuristic để chỉ ra rằng số lượng ứng cử viên trung bình choω nên được
giới hạn đa thức bởi logkhông.
Trong thực tế, không phải tất cả các ước số∆jcần phải được kiểm tra vì chỉ các ước
số có chiều dài gần hoặc nhỏ hơnRcó khả năng bằngω. Hơn nữa, từ phương trình. (1)
và đểm̄2=r22β−Z+m̄, chúng ta có:

e−1

∆=ω (ω2β−Z+m̄2)e−1−jm̄j 2
j=0

∑ e−1−j(
e−1∑ )
e −1−j (ω2β−Z)e−1−j−km̄j+k
=ω 2
j=0 k=0
k
e−1
[ h( )]
∑ ∑e −1−Tôi
=ω (ω2β−Z)e−1−hm̄h
2,
h - tôi
h=0 Tôi=0

∑h ( )
từ đâu, lưu ý rằng Tôi=0
1−i≡0
e−h-tôi (chế độe) Cho 1≤h≤e −1,

∆≡ ω(ω2β−Z)e−1 (mode).

Đặc biệt, khielà số nguyên tố, điều này đơn giản hóa thành

∆≡ ωe2(β−Z)(e−1)≡ ω (mode).

Điều này có nghĩa là chỉ một∆jthỏa mãn∆≡∆j(∆j2β−Z)e−1(mode) (vàng∆≡∆j


(mode) nếu nhưelà số nguyên tố) là ứng cử viên hợp lệ choω.

2.3 Phục hồitôiSử dụng RSA số mũ thấp với tấn công tin nhắn liên
quan

Cuộc tấn công có số mũ thấp vàorsavới các thông điệp liên quan được mô tả trong [7] bao gồm
những thông tin sau: giả sử rằng hai thông điệptôi1,tôi2xác minh một mối quan hệ đa thức đã biết
Pvề hình thức

tôi2=P(tôi1) vớiP ∈Zkhông[z] và độ(P) =δ,

và giả sử thêm rằng hai bản mã tương ứngvs1Vàvs2được biêt đên. Sau đóz=tôi
1lànghiệm chung của đa thứcQ1,Q2∈Zkhông[z] được cho bởi

Q1(z) =ze−vs1 VàQ2(z) = (P(z))e−vs2,

để có khả năng cao người ta sẽ phục hồitôi1qua

gcd(Q1,Q2) =z-m1 (modkhông).


Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5 375

Từ phần trước chúng ta thu được một tập hợp các ước số∆jcủa∆, trong đó một
bằngω. chữ viếttôi1=pkcs(Ông1) Vàtôi2=pkcs(Ông2) chúng ta có:

vs1=tôie1 (modkhông), vs2=tôie 2 (modkhông),Vàtôi2=tôi1−2βω.

Đối với một bộ chia∆jcủa∆, kẻ tấn công tính toán:

Rj(z) = gcd(ze−vs1,(z −2β∆j)e−vs2).

thủy tùng∆j=ωthì với xác suất cao,Rj(z) =z-m1(modkhông), mang lại giá trị của
tin nhắntôi, như đã thông báo.

3 So sánh với các cuộc tấn công của Coppersmith


vào RSA có số mũ thấp

Phương pháp Coppersmith dựa trên định lý sau [6]:

Định lý 3 (Thợ đồng).Cho phépP ∈Zkhông[x]là đa thức một biến bậc δ modulo
một số nguyênkhôngcủa hệ số chưa biết. Cho phépXbị ràng buộc vào
giải pháp mong muốn. thủy tùngX<1 2không1/δ−ε, người ta có thể tìm thấy tất cả các số nguyênx0vớiP(x0) = 0
(modkhông)và |x0| ≤Xđa thức thời gian trong(nhật kýn, δ,1/ε).

Hệ quả 1 (Thợ đồng).Theo cùng một giả thuyết và với điều kiện là X<n1/δ, người ta có
thể tìm thấy tất cả các số nguyênx0như vậy màP(x0) = 0 (modkhông)và |x0| ≤ Xđa thức
thời gian trong(nhật kýn, δ)

Định lý 3 áp dụng trong các trường hợp sau:

Thông điệp rập khuôn:Giả sử rằng bản rõtôibao gồm một cái đã biết
điB=2kbvà một phần chưa biếtx. Bản mã làvs=tôie= (B+x)e
(modkhông). Sử dụng Định lý 3 với đa thứcP(x) = (B+x)e−vs, người ta có thể
phục hồixtừvsnếu như|x| <n1/e.
Đệm ngẫu nhiên:Giả sử rằng hai tin nhắntôiVàtôi'thỏa mãn một affine lại
quan hệtôi'=tôi+rvới một điều nhỏ nhưng chưa biếtr. Từrsa-mã hóa của
hai tin nhắn:

vs=tôiemodkhôngVàvs'= (tôi+r)emodkhông ,

chúng tôi loại bỏtôitừ hai phương trình trên bằng cách lấy kết quả của chúng, cho ta
một đa thức một biến trongrmô-đunkhôngmức độe2. Như vậy, nếu|r| <n1/e2, rcó thể
được phục hồi, từ đó chúng ta trôi dạttôinhư trong Phần 2.3.

Trong trường hợp chúng tôi quan tâm, đối với một tin nhắn kết thúc bằngZsố 0, cuộc tấn công bằng
tin nhắn rập khuôn có hiệu quả đối vớie(M+R)<KHÔNGvà cuộc tấn công đệm ngẫu nhiên hoạt động choe2
R<N. Bỏ qua các số hạng không đổi, phương pháp ở Mục 2 của chúng tôi có hiệu quả đối với

eR+ (e −1)M < N.


376 Jean-Sébastien Coron và cộng sự.

KHÔNG

N/3

(1)
(3)
N/9
(2)

N/3 Không có/2 KHÔNG


M

Quả sung. 1.Tên miền có hiệu lực choe=3 đòn tấn công rập khuôn của Coppersmith (1), đòn tấn công
đệm ngẫu nhiên của Coppersmith (2) và đòn tấn công của chúng tôi (3).

do đó, như được minh họa trong Hình 1, đối vớie=3, phương pháp của chúng tôi cải thiện phương pháp
của Coppersmith bất cứ khi nào
-
- KHÔNG KHÔNG
- <R< Và
e2 e
.
-KHÔNG e
-
KHÔNG
− R <M< − R
e e −1 e −1

4. Một cuộc tấn công bằng văn bản gốc được chọn dành cho số mũ tùy ý

4.1 Mô tả

Trong phần này chúng tôi mô tả một cuộc tấn công bằng văn bản gốc được chọn chống lạipkcs#1
v1.5mã hóa cho số mũ tùy ýe. Cuộc tấn công sử dụng một lỗ hổng đã biết trong mã hóa El Gamal
[3] và chỉ hoạt động đối với các tin nhắn rất ngắn. Như trong Phần 2, chúng tôi chỉ xem xét các tin
nhắn kết thúc bằngZsố không:

tôi=m̄‖0. . .02.

Đối với một cách ngẫu nhiênr'bao gồm các byte khác 0, thông báotôiđược chuyển đổi bằng cách sử dụng
pkcs#1 v1.5vào trong:

pkcs(Ông') =000216‖r'‖0016‖m̄‖0. . .02

và được mã hóa thànhvs=pkcs(Ông')emodkhông. chữ viếtx=000216‖r'‖0016‖m̄, chúng tôi có


thể viết

pkcs(Ông') =x2Z.
Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5 377

Chúng tôi xác địnhy=vs/2eZ=xe(modkhông),Mkích thước bit củam̄, VàXkích thước


bit của x. Do đó, chúng tôi cóX=M+R+10. Giả sử rằngx=x1x2Ở đâux1Vàx2
là số nguyên nhỏ hơn giới hạnB, ta xây dựng bảng:
y
Tôimod
e
khôngvìTôi=1, . . . ,B

và cho mỗij=0, . . . ,Bchúng tôi kiểm tra xemjemodkhôngthuộc về bảng, trong trường
hợp đó chúng ta cótôi/bạne=jemodkhông. Do đó, từ{tôi, j}chúng tôi phục hồix=Tôi·j,
dẫn đến thông điệptôi.

4.2 Phân tích


( )
Cuộc tấn công đòi hỏiồB(đăng nhậpkhông)((logkhông)3+nhật kýB) hoạt động. Cho phépφ(x, y) biểu thị
số nguyênv<xnhư vậy màvcó thể được viết nhưv=v1v2vớiv1<y Vàv2<y. Định lý
sau đây đưa ra giới hạn dưới choφ(x, y).

Định lý 4.Vìx→ ∞Và1/2<α<1,


α
Giơi hạn dươiφ(x, xα)/x≥nhật ký . (3)
1− α

Bằng chứng:Vìy >dxe, chúng tôi lưu ý:

T(x, y) ={v < x,như vậy màvlày-mịn và khôngdx/năme-trơn tru} .

Bất kỳ số nguyên nàov∈T(x, y) có thừa số nguyên tốPđứng giữadx/nămeVày,


và vì thếv=PRvớip<yVàr < y. Do đó,

φ(x, y)≥#T(x, y). (4)

Từ Định lý 1 vàρ(t) = 1−nhật kýtCho 1≤t≤2, chúng ta có:

α
lim #T(x, xα)/x=nhật ký ,
x→∞ 1− α
trong đó, sử dụng phương trình. (4) cho (3). t
bạn
Từxkhông được phân bố đồng đều giữa 0 và 2X, Định lý 4 chỉ cung cấp một
lập luận heuristic để chỉ ra rằng khi lấyB=2αXvớiα >1/2 thì với xác suất lớn hơn

α
nhật ký ,
1− α

cuộc tấn công phục hồixở độ phức tạp 2αX+o(1).


Do đó, một tin nhắn 8 bit được mã hóa bằngpkcs#1 v1.5với chuỗi đệm ngẫu
nhiên 64 bit có thể được phục hồi theo xác suất'0.16 về độ phức tạp về thời gian
và không gian xấp xỉ 244(vớiα= 0.54).
378 Jean-Sébastien Coron và cộng sự.

5 Thí nghiệm và biện pháp đối phó

Một số biện pháp chống lại cuộc tấn công của Bleichenbacher được liệt kê trên trang web
của Phòng thí nghiệm RSA (http://www.rsa.com/rsalabs/).Đề xuất đầu tiên là kiểm tra định
dạng nghiêm ngặt đối với tất cả các tin nhắn được giải mã. Điều này không ảnh hưởng gì
đến cuộc tấn công của chúng tôi vì chúng tôi không bao giờ yêu cầu người nhận hợp pháp
giải mã bất kỳ thứ gì. Cách khắc phục nhanh thứ hai bao gồm yêu cầu người gửi chứng minh
kiến thức vềtôicho người nhận được thực hiện bằng cách tiết lộ một số thông tin bổ sung.
Điều này cũng không ảnh hưởng gì đến cuộc tấn công của chúng tôi. Điều tương tự cũng
đúng với lần điều chỉnh thứ ba, trong đó giá trị băm được kết hợp trongtôi, nếu giá trị băm
chiếm phần lớn nhất của bản rõI E

pkcs(Ông') =000216‖r'‖0016‖SHA(tôi)‖m.

Một cách tốt để ngăn chặn cuộc tấn công của chúng ta là hạn chếZ. Điều này có thể đạt được rất đơn
giản bằng cách buộc một mẫu không đổiτTRONGpkcs(Ông'):

pkcs(Ông') =000216‖r'‖0016‖tôi‖τ .

Điều này thể hiện lợi thế của việc duy trì khả năng tương thích vớipkcs#1 v1.5và việc thực
hiện rất đơn giản. Thật không may, định dạng kết quả không được bảo vệ đầy đủ trước [2].
Thay vào đó, chúng tôi khuyên bạn nên sử dụng:

pkcs(Ông') =000216‖r'‖0016‖tôi‖SHA(Ông'),

dường như là một lựa chọn ngắn hạn có thể chấp nhận được (r'đã được thêm vào hàm
băm để chống lại [2] tốt hơn mà hầu như không mất thêm chi phí). Đối với các giải
pháp lâu dài, chúng tôi khuyên dùng OAEP (pkcs#1 v2.0) [1].

6 Phần mở rộng và kết luận

Chúng tôi đã đề xuất hai cuộc tấn công bằng bản rõ được chọn mới vàopkcs#1 v1.5mã hóa
tiêu chuẩn. Cuộc tấn công đầu tiên áp dụng cho số mũ công khai nhỏ và cho thấy cách các
thông điệp kết thúc bằng đủ số 0 có thể được phục hồi từ các bản mã tương ứng với cùng
một bản rõ. Thật đáng để xem kỹ thuật của chúng tôi như một công cụ phân tích mật mã có
lợi ích độc lập, cung cấp một phần mở rộng cho cuộc tấn công số mũ thấp của Coppersmith.
Cuộc tấn công thứ hai của chúng tôi, mặc dù vẫn còn phức tạp theo cấp số nhân theo nghĩa
chặt chẽ, cho thấy cách mở rộng điểm yếu cho bất kỳ số mũ công khai nào một cách thực tế.

Tất nhiên, các cuộc tấn công có thể được khái quát hóa theo nhiều cách. Chẳng hạn, người ta
có thể chỉ ra rằng định dạng phần đệm:

µ(tôi1, tôi2,r') =000216‖tôi1‖r'‖0016‖tôi2

(trong đó bản rõtôi=tôi1‖tôi2được trải rộng giữa hai địa điểm khác nhau), đều dễ bị tổn
thương trước cuộc tấn công mới: xác định lạir′′=tôi1‖r', chúng ta có thể chạy
Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5 379

tấn công (nguyên trạng) vào pkcs(Ông′′) và chú ý rằng kích thước củaωvẫn sẽ như vậyR'cho
rằng phần quan trọng nhất củar′′luôn luôn không đổi.
Chúng tôi tin rằng những ví dụ như vậy minh họa rủi ro gây ra bởi việc lựa chọn đặc biệtcác
phương pháp điều trị chi phí thấp như phần đệm tin nhắn và nhấn mạnh sự cần thiết của các thiết
kế mã hóa được thăm dò cẩn thận, thúc đẩy mạnh mẽ (một lần nữa) việc tìm kiếm các sơ đồ mã
hóa có thể chứng minh được an toàn.

Sự nhìn nhận
Chúng tôi muốn cảm ơn các trọng tài vì những nhận xét và cải tiến có giá trị của họ cho công việc
này.

Người giới thiệu

1. M. Bellare và P. Rogaway,Mã hóa bất đối xứng tối ưu, Những tiến bộ trong mật
mã học —Eurocrypt'94, tập. 950 của Bài giảng Khoa học Máy tính, tr.
92–111, Springer-Verlag, 1994.
2. D. Bleichenbacher,Các cuộc tấn công bằng bản mã được lựa chọn chống lại các giao thức dựa trênrsa
mã hóa tiêu chuẩnpkcs#1,Những tiến bộ trong mật mã học -Tiền điện tử'98, tập. 1462
của Bài giảng Khoa học Máy tính, tr. 1–12, Springer-Verlag, 1998.
3. D. Boneh, Giao tiếp cá nhân.
4. R.Brent,Một thuật toán nhân tố Monte Carlo cải tiến, Nordisk Tidskrift for
Informationsbehandling (chút)chuyến bay. 20, trang. 176–184, 1980.
5. D. Thợ đồng,Tìm nghiệm nhỏ của phương trình mô đun một biến, Những tiến bộ
trong mật mã học —Eurocrypt'96, tập. 1070 của Bài giảng Khoa học Máy tính, tr.
155–165, Springer-Verlag, 1996.
6. D. Thợ đồng,Giải pháp nhỏ cho phương trình đa thức và số mũ thấprsa lỗ hổng, J.
Mật mã học, 10(4), tr. 233-260, 1997.
7. D. Coppersmith, M. Franklin, J. Patarin và M. Reiter,số mũ thấprsavới những tin
nhắn liên quan, Những tiến bộ trong mật mã học —Eurocrypt'96, tập. 1070 của
Bài giảng Khoa học Máy tính, tr. 1–9, Springer-Verlag, 1996.
8. Y. Desmedt và A. Odlyzko.Một cuộc tấn công văn bản được chọn trênrsahệ mật mã và
một số sơ đồ logarit rời rạc, Những tiến bộ trong mật mã học —Tiền điện tử'85, tập.
218 của Bài giảng Khoa học Máy tính, tr. 516–522, Springer-Verlag, 1986.
9. K.Dickman,Về tần số của các số chứa thừa số nguyên tố có độ lớn tương đối nhất
định, Arkiv for matematik, astronomi och fysik, tập. 22A, không. 10, trang. 1–14,
1930.
10. GH Hardy và EM Wright,Giới thiệu về lý thuyết số, Tái bản lần thứ năm, Nhà xuất
bản Đại học Oxford, 1979.
11. H. Lenstra,Phân tích số nguyên với đường cong elip, Biên niên sử toán học 126,
1987.
12. Thư viện C/C++ số học hữu tỉ và số nguyên đa chính xác (MIRACL), có sẵn tạiftp://
ftp.compapp.dcu.ie/pub/crypto/miracl.zip.
13. R. Rivest, A. Shamir và L. Adleman,Phương pháp thu thập chữ ký số và hệ thống
mật mã khóa công khai, Truyền thông của ACM, tập. 21-2, tr. 120-126, 1978.

14.rsaBảo mật dữ liệu, PKCS #1:rsaMã hóa tiêu chuẩn, Tháng 11 năm 1993. Phiên bản 1.5.
15.rsaPhòng thí nghiệm, PKCS #1:rsaThông số kỹ thuật mật mã, tháng 9 phát hành năm 1998
2.0.
380 Jean-Sébastien Coron và cộng sự.

CÓ Cuộc tấn công 1024-bit toàn diện


Để xác nhận tính hợp lệ của cuộc tấn công, chúng tôi đã thử nghiệm nó trên thử thách 1024-
bit chính thức của Phòng thí nghiệm RSARSA-309cho số mũ công khaie=3. Là một
bằng chứng về thế hệ thích hợpr' 1Vàr' 2đã được chọn để trở thànhRSA-100mod 2128Và

RSA-110mod 2128. Các thông số làKHÔNG=1024,M=280,R=128,Z=592 vàβ=


880. Lưu ý rằng vìR > N/9 nămR+M > N/3, Cuộc tấn công của Coppersmith vào
số mũ thấprsakhông áp dụng ở đây.

không=RSA-309
=bdd14965 645e9e42 e7f658c6 fc3e4c73 c69dc246 451c714e b182305b 0fd6ed47
d84bc9a6 10172fb5 6dae2f89 fa40e7c9 521ec3f9 7ea12ff7 c3248181 ceba33b5
5212378b 579ae662 7bcc0821 30955234 e5b26a3e 425bc125 4326173d 5f 4 e25a6
d2e172fe 62d81ced 2c9f362b 982f3065 0881ce46 b7d52f14 885eecf9 03076ca5

r'1=RSA-100mod 2128
=f66489d1 55dc0b77 1c7a50ef 7c5e58fb
r'2=RSA-110mod 2128
=e2a5a57d e621eec5 b14ff581 a6368e9b
tôi=m̄2Z
TÔI'tôi có vs iphe rtex t, P hợp đồng thuê e anh cây sồi
0049276d 20612063 69706865 72746578 742c2070 6c656173 65206272 65616b20
Tôi !
6d652021

µ1=pkcs(Ông1 ')
=0002f664 89d155dc 0b771c7a 50ef7c5e 58fb0049 276d2061 20636970 68657274
6578742c 20706c65 61736520 62726561 6b206d65 20210000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 000000 00 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

µ2=pkcs(Ông' 2)
0002E2A5 A57DE621 EEC5B14F F581A636 8E9B0049 276D2061 20636970 68657274
26561 6B206D65 20210000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

vs1=µ31modkhông
=2c488b6f cf2e3d4c 01b82776 64790af0 d78f82fd 4605fda2 76b9356d 80e82cfb
8737340f 5a7091b0 38c4bb41 ae6462d9 f751766c c343c87b 54397ca2 647d6a81
3609d876 f29554e0 9efcbf2d b49d8300 5fce9ea8 80fd9cf2 476fbab0 2 57f1462
d295a4cb 5468bb86 b3151a49 14e51ed1 7cbc083c 9ae0b4da 9c2a7de0 079df4a0

vs2=µ32modkhông
=829da9a7 af2c61ed 7bb16f94 7cb90aa7 df8b99df c06017d7 3afc80fd 64494abb
3c1cb8db 1167eccd d1b6d09e 8ca5a98c c5e19620 b6313eef 495169d7 9ed9a2b1
cb393e7d 45bea586 49e20986 9a2399f7 f70dd819 90183e1a 3c6a971a 33497e57
f0ad9fb9 0c7d331e 7108d661 4c487a85 36cf7750 060811d8 70b8a040 e0c39999
Các cuộc tấn công mới vào mã hóa PKCS#1 v1.5 381

Khi sử dụng ECM, phải mất vài giờ trên một máy trạm để nhận thấy rằng:

∏10
∆=P5 1× PTôi
Tôi=2

tất cả ở đâuPTôilà tiền thưởng. Trong số 3072 = 6×29các ước số có thể chỉ là 663
tương ứng với các ứng cử viên 128-bit{∆1,∆2, . . . ,∆663}ở đâu∆Tôiđang theo thứ tự
giảm dần. Sau đó chúng tôi tính toán:

Rj(z) = gcd(ze−vs1,(z −2β∆j)e−vs2) Cho 1≤j≤663.

Vìj6= 25,Rj(z) = 1 và vớij=25 chúng tôi thu được:

R25(z) =z-m1.

Người ta có thể kiểm tra rằng:

∆25=w=P5 1P2P3P4P5Psố 8,

tôi1=µ1=pkcs(Ông' 1).

∆=00000001 fa75bf4e 390bdf4b 7a0524e0 b9ebed20 5758be2e f1685067 1de199af


0f8714f7 077a6c47 6870ea6d 2de9e7fb 3c40b8d2 017c0197 f9533ed1 f4fe3eab
836b6242 aa03181a 56a78001 7c164f7a c54ecfa7 73583ad8 ffeb3a78 8bc be2
8869da15 60be7922 699dc29a 52038f7b 83e73d4e 7082700d 85d3a720

P1=00000002,P2=00000007,P3=00000035,P4=000000c5,P5=4330e379
P6=548063d7,P7=001ebf96 ff071021,Psố 8=0000021b ac4d83ae 7dedba55
P9=0000128a ec52c6ec 096996bf
P10=00000022 e3b1a6b0 13829b67 f604074a 5a1135b3 45be0835 ea407ed7 8138a27a
112e78c8 131f3bc3 b6d17dc0 e8a905f1 ca4b6aff 680bc58c 4962309d c7aaccad
2116235c b0d6803e e0a58ca7 55cbea23 e936f189 a76dfbeb
∆25=13bee453 6fba1cb1 6b2a5b6d d627ca60
R25(z) =z-m1
TÔI'tôi có vs iphe rtex t, P e anh cây sồi
tôi1/2Zmod 2M
hợp đồng thuê
0049276d 20612063 69706865 72746578 742c2070 6c656173 65206272 65616b20
Tôi !
6d652021

You might also like