Mục đích của luận văn này là tìm hiểu lý thuyết lưới, thuật toán LLL và một số tấn công lên các lược đồ chữ ký số dựa trên thuật toán LLL.. trong những nội dung chính của luận văn này.Bố
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
—————————–
Khúc Xuân Thành
LÝ THUYẾT LƯỚI VÀ ỨNG DỤNG TRONG MẬT MÃ
LUẬN VĂN THẠC SĨ KHOA HỌC
Hà Nội - Năm 2017
Trang 3TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
——————————
Khúc Xuân Thành
LÝ THUYẾT LƯỚI VÀ ỨNG DỤNG TRONG MẬT MÃ
Chuyên ngành: Đại số và lý thuyết số
Mã số: 60460104
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS TS Lê Minh Hà
Hà Nội - Năm 2017
Trang 5Lời đầu tiên của luận văn này em xin gửi lời cảm ơn sâu sắc tới thầygiáo hướng dẫn PGS TS Lê Minh Hà Thầy đã tận tình hướng dẫn emtrong quá trình hoàn thành luận văn này Nhân dịp này em xin gửi lờicám ơn của mình tời toàn bộ các thầy cô giáo trong khoa Toán-Cơ-Tinhọc đã giảng dạy và giúp đỡ chúng em trong suốt quá trình học tập tạikhoa.
Đồng thời, em cũng xin cảm ơn lãnh đạo Viện Khoa học-Công nghệmật mã, Ban Cơ yếu Chính phủ đã tạo điều kiện công việc để em có thểhoàn thành luận văn này
Hà nội, ngày 01 tháng 08 năm 2017
Học viên
Khúc Xuân Thành
Trang 6Mục lục
Mục lục 3
Bảng ký hiệu 5
Lời nói đầu 6
1 Một số kiến thức cơ bản về lưới và lược đồ chữ ký số 8 1.1 Lưới trong không gian thực n chiều 8
1.2 Xây dựng cơ sở lưới 11
1.3 Trực giao hóa Gram-Schmidt 16
1.4 Một định nghĩa khác về lưới 24
1.5 Lược đồ chữ ký 26
1.5.1 Lược đồ DSA 27
1.5.2 Lược đồ ECDSA 29
1.5.3 Lược đồ GOST R 34.10-2012 30
2 Thuật toán LLL 32 2.1 Cơ sở lưới rút gọn 32
2.2 Thuật toán LLL 37
2.3 Phân tích thuật toán LLL 39
3 Ứng dụng của thuật toán LLL trong mật mã 46 3.1 Phương pháp Coppersmith 46
3.1.1 Giới thiệu bài toán 46
3.1.2 Xây dựng ma trận Coppersmith 48
3.1.3 Áp dụng thuật toán LLL 52
3.2 Tấn công lên lược đồ chữ ký số 53
Trang 73.2.1 Ý tưởng xây dựng tấn công 53
3.2.2 Tấn công theo Blake 2002 56
3.2.3 Tấn công theo Poulakis 2011 59
3.2.4 Tấn công theo Draziotis 2016 62
3.2.5 Tấn công theo Poulakis 2016 68
3.3 Kết quả thực nghiệm 73
Kết luận 76 Tài liệu tham khảo 77 Phụ lục 80 A.1 Phương pháp dãy Sturm 80
Trang 8deg bậc của đa thức
Span(S) Không gian véctơ căng bởi hệ véctơ S
GCD Ước chung lớn nhất
f = O(g) Tồn tại c, x 0 > 0 sao cho |f | ≤ c|g| với mọi x ≥ x 0
kk Chuẩn Euclide
x · y Tích vô hướng của véctơ x và y
dac Số nguyên gần nhất của a
a Với a ∈ [1, , q], a =
a nếua ≤ q/2
a − q nếua > q/2
Trang 9Lời nói đầu
Lý thuyết lưới đã được nghiên cứu cách đây khoảng 100 năm dưới têngọi là “hình học của các số” (geometry of numbers), nhưng những ứngdụng của nó thực sự mới được phát triển từ khi có thuật toán rút gọn
cơ sở lưới do ba nhà toán học Arjen Lenstra, Hendrik Lenstra, LászlóLovász tìm ra (được viết tắt là LLL) [16] Thuật toán LLL lập tức đượcxem là một trong những thuật toán quan trọng trong lý thuyết số khi
đã chỉ ra một thuật toán thời gian đa thức cho việc phân tích các đathức nguyên và giải các phương trình diophantine đồng thời
Một trong những ứng dụng đầu tiên của thuật toán LLL trong mật
mã là phá vỡ hệ mật Merkle–Hellman Sau đó là các tấn công lên hệ mậtRSA [5], [17] dựa trên phương pháp Coppersmith Các tấn công lên lược
đồ chữ ký DSA [7], [19] và ECDSA [20] cũng là một trong những hướngnghiên cứu được quan tâm nhiều hiện nay
Mục đích của luận văn này là tìm hiểu lý thuyết lưới, thuật toán LLL
và một số tấn công lên các lược đồ chữ ký số dựa trên thuật toán LLL
Cụ thể, luận văn đã trình bày một số kiến thức chuẩn bị liên quan đến lýthuyết lưới trước khi trình bày và phân tích độ phức tạp của thuật toánLLL Phương pháp Coppersmith để tìm nghiệm nhỏ của đa thức là mộtứng dụng đầu tiên của thuật toán LLL mà luận văn đã trình bày Tiếptheo, luận văn trình bày bốn tấn công mới được công bố gần đây lêncác lược đồ chữ ký DSA, ECDSA trong [2], [23], [24], [8] Một số nhầmlẫn trong các bài báo này cũng đã được luận văn này chỉ ra Chẳng hạnnhư: sai sót trong tính toán bằng số để mô tả tấn công của [23], một sốđịnh nghĩa chưa chính xác trong [8] hay tính không khả thi của tấn côngtrong [24] Các tác giả của các bài báo trên cũng đã công nhận nhữngnhầm lẫn này Bên cạnh đó, luận văn cũng đã áp dụng bốn tấn công trênsang lược đồ chữ ký GOST R 34.10-2012 Các kết quả thực nghiệm càiđặt các tấn công trên phần mềm tính toán đại số Magma cũng là một
Trang 10trong những nội dung chính của luận văn này.
Bố cục của luận văn bao gồm 3 chương:
• Chương 1 trình bày một số kiến thức chuẩn bị như phép trực giaohóa Gram-Schmidt, định nghĩa lưới, lưới con và cách xây dựng cơ
sở của lưới Bên cạnh đó, một sơ lược về các lược đồ chữ ký sốDSA, ECDSA và GOST R 34.10-2012 cũng là một nội dụng củachương này
• Chương 2 trình bày và phân tích độ phức tạp của thuật toán rútgọn cơ sở lưới LLL
• Chương 3 trình bày một số ứng dụng của thuật toán LLL nhưphương pháp Coppersmith và bốn tấn công lên lược đồ chữ kýDSA, ECDSA và GOST R 34.10-2012 Các kết quả thực nghiệmcài đặt các tấn công trên Magma cũng được trình bày trong chươngnày
Do thời gian thực hiện luận văn không nhiều, kiến thức còn hạn chế nênkhi làm luận văn không tránh khỏi những hạn chế và sai sót Tác giảmong nhận được sự góp ý và những ý kiến phản biện của thầy cô và bạnđọc Xin chân thành cảm ơn!
Hà Nội, ngày 08 tháng 08 năm 2017
Học viên
Khúc Xuân Thành
Trang 11Chương 1
Một số kiến thức cơ bản về lưới
và lược đồ chữ ký số
Trong chương này, luận văn trình bày lại tổng quan một số kiến thức
về lý thuyết lưới như định nghĩa lưới trong không gian thực, trực giaohóa Gram-Schmidt, xây dựng cơ sở của lưới và lược đồ chữ ký số trongmật mã Các nội dung của chương này về lý thuyết lưới đều được tríchdẫn từ cuốn sách của Bremer [4]
Cho n là một số nguyên dương Tập hợp các véctơ cột cỡ n × 1 gồmcác phần tử của R cùng với các phép toán thông thường lập thành mộtkhông gian véctơ n chiều trên trường R, ký hiệu là Rn Rn được trang
bị thêm một tích vô hướng chính tắc, Rn cùng với tích vô hướng chínhtắc này lập thành một không gian Euclide và có cơ sở chính tắc
Định nghĩa 1.1 Cho n ≥ 1, x1, x2, , xn là một cơ sở của Rn Lưới1
n chiều với cơ sở x1, x2, , xn là tập hợp L tất cả các tổ hợp tuyến tínhcủa các véctơ cơ sở với hệ số nguyên
L =Zx 1 +Zx 2 + +Zx n =nXa i x i |a 1 , , a n ∈Zo.
Các véctơ cơ sở x1, x2, , xn được gọi là phần tử sinh của lưới Tacũng nói các véctơ này căng lưới L
1 Lattice
Trang 12Vớii = 1, 2, , n, xi = (xi1, xi2, , xin) Khi đó, các véctơ cơ sở thànhlập một ma trận X = (x ij ) Định thức của lưới L với cơ sở x 1 , x 2 , , x n
được định nghĩa là det L = |det X| Ma trận Gram ∆(L) của lưới L là
ma trận cấp n mà vị trí ở ô (i, j) là tích vô hướng xi· xj Nói cách khác,
∆(L) = XXt Khi đó, định thức của lưới được định nghĩa là det L =
p
∆(L)
Tiếp theo, ta sẽ chỉ ra rằng định thức của lưới không phụ thuộc vàocách chọn cơ sở lưới
Bổ đề 1.2 Cho x1, x2, , xn và y1, y2, , yn là hai cơ sở của lưới L ⊂
Rn Lấy X, Y lần lượt là các ma trận n × n nhận xi (tương ứng yi) làcác hàng thứ i với i = 1, 2, , n Khi đó Y = CX ở đó C là một ma trậnvuông n × n với các hệ số nguyên và det(C) = ±1
Chứng minh Mọi yi thuộc lưới với cơ sở x1, x2, , xn và mọi xi thuộclưới với cơ sở y1, y2, , yn Khi đó,
ở đây B = (b ij ) và C = (c ij ) là các ma trận vuông cấp n với các hệ
số nguyên Viết hai phương trình trên theo dạng ma trận, ta có X =
|det(Y )| = |det(CX)| = |det(C) det(X)| = |± det(X)| = |det(X)|
Định nghĩa 1.4 Một ma trận vuông n × n với các hệ số nguyên và cóđịnh thức bằng ±1 được gọi là ma trận unimodular
Trang 13Định nghĩa 1.5 Một phép biến đổi hàng unimodular trên một matrận là một trong các phép biến đổi hàng sơ cấp sau:
• Nhân một hàng với −1;
• Đổi chỗ hai hàng;
• Cộng một bội số nguyên của một hàng vào một hàng khác
Chú ý, trong Định nghĩa 1.1 ta viết các véctơ cơ sở như các véctơhàng Do đó, các phép toán trên các véctơ cơ sở có thể được xem như làcác phép biến đổi hàng unimodular của ma trận X Nói cách khác, điềunày tương đương với việc nhân ma trận X với một ma trận nguyên C cóđịnh thức bằng ±1
Để xây dựng các ma trận unimodular, ta có thể xuất phát từ matrận đơn vị In và thực hiện (một số hữu hạn) các phép biến đổi hàngunimodular Nếu ta áp dụng các phép biến đổi hàng unimodular vào matrận X có các véctơ hàng là cơ sở của một lưới L thì sẽ thu được một cơ
sở mới của lưới này
Sử dụng phương pháp trên, ta có thể xuất phát từ một cơ sở của mộtlưới bao gồm các véctơ ngắn, và tạo ra một cơ sở mới cho cùng một lướibao gồm các véctơ dài hơn rất nhiều Tất nhiên, bài toán thú vị và quantrọng hơn là làm ngược lại: Giả sử cho trước một cơ sở của một lưới mànói chung, cơ sở ban đầu này sẽ gồm các véctơ dài, ta cần tìm một cơ
sở "rút gọn" khác cho lưới đó, tức là một cơ sở gồm các véctơ ngắn Đóchính là bài toán rút gọn cơ sở lưới 2, bài toán trung tâm mà chúng ta
sẽ tìm hiểu trong chương 2
Trước hết, ta cần tổng quát hóa khái niệm cơ sở lưới và định thứclưới cho mọi tập độc lập tuyến tính gồm m ≤ n véctơ trong Rn
Định nghĩa 1.6 Cho n ≥ 1 và x 1 , x 2 , , x m, (m ≤ n) là một tập gồm
m véctơ độc lập tuyến tính trong Rn Lưới m-chiều căng bởi các véctơnày trong không gian Euclide n chiều được định nghĩa là
L =Zx1+Zx2+ +Zxm.
Với mỗii = 1, 2, m, ta viếtx i = (x i1 , x i2 , x im )và lập một ma trận
X = (xij)cỡ m × n Khi đó, định thức của lướiL là det L = (det(XXt)1/2.
2 lattice basis reduction
Trang 141.2 Xây dựng cơ sở lưới
Một kết quả quan trọng trong đại số tuyến tính là mỗi hệ độc lậptuyến tính trong một không gian véctơ đều có thể bổ sung được để trởthành một cơ sở Vấn đề chúng ta quan tâm là việc bổ sung vào một hệđộc lập tuyến tính các véctơ lưới để thu được một cơ sở của lưới đangxét
Định nghĩa 1.7 Cho L ⊂Rn là một lưới có cơ sở x1, x2, , xn Giả sử
y1, y2, , yn ∈ Lđộc lập tuyến tính, và M là lưới sinh bởi y1, y2, , yn
Ta nói M là một lưới con của L, và viết M ⊆ L
Mỗi véctơ cơ sởyi của lưới con M đều thuộc vào lưới L, do đó
yi =Xcijxj, (i = 1, 2, , n),
ở đó cij ∈Z với mọi i, j Theo ngôn ngữ ma trận, ta có
Y = CX,
ở đó C = (cij) là ma trận không suy biến cấp n có hệ số nguyên, và X,
Y lần lượt là các ma trận cấp n có xi, yi ở hàngi Lấy định thức hai vế,
ta có
det Y = det C det X.
Định nghĩa 1.8 Chỉ số ρ của lưới con M trong lưới L được định nghĩalà
ρ = | det C| = | det Y |
| det X| =
det M det L.
Chỉ số này là một số nguyên vì det C nguyên và phụ thuộc vào L, M
mà không phụ thuộc vào cách chọn các cơ sở
Định nghĩa 1.9 Cho C là một ma trận vuông cấp n Định thức con3
(i, j) của C là định thức của ma trận thu được từ C sau khi xóa đi hàng
i và cột j Phần bù đại số4 (j, j) là (−1)i+j nhân với định thức con (i, j)
Ma trận phụ hợp5 của C, adj(C), là ma trận thu được khi lấy chuyển
vị ma trận của các phần bù đại số
3 minor
4 cofactor
5 adjoint matrix
Trang 15Ta có, nếu C là một ma trận khả nghịch thì C−1= det C1 adj(C) Quaytrở về thảo luận ở trên về lưới con M (với ma trận Y) của lưới L (với
ma trận X), ta thấy phương trình Y = CX dẫn đến
X = C−1Y = 1
det Cadj(C)Y,
và do đó
ρX = | det C|X = ±adj(C)Y.
Vì các phần tử của C đều là các số nguyên nên các phần tử của adj(C)
cũng vậy, và do đó mỗi hàng của ma trận ρX là một tổ hợp tuyến tính
hệ số nguyên của các hàng của ma trận Y Ta kết luận rằng lưới ρL baogồm tất cả các bội của số nguyên ρ của các véctơ trong L, là một lướicon của lưới M Ta đã chứng minh bổ đề sau:
Bổ đề 1.10 Nếu L là một lưới và M là một lưới con chỉ số ρ thì
ρL ⊆ M ⊆ L.
Định lý 1.11 Cho L là một lưới trong Rn và M là một lưới con của
L Giả sử x 1 , x 2 , , x n là một cơ sở của L Khi đó, tồn tại một cơ sở
y1, y2, , yn của M sao cho Y = CX, ở đó C là một ma trận vuông cấp
n, tam giác dưới, với các hệ số khác không trên đường chéo chính Nóicách khác, có
ở đó cij ∈ Z, cii 6= 0 với mọi i, j Ngược lại, nếu y1, y2, , yn là một cơ
sở của M thì tồn tại một cơ sở x 1 , x 2 , , x n thỏa mãn hệ phương trìnhtrên
Chứng minh Bổ đề 1.10 chỉ ra rằng ρL ⊆ M, và do đó ρ xi ∈ M vớimọi i Khi đó, tồn tại các véctơ yi ∈ M (không nhất thiết phải là một
cơ sở của M) và các số nguyên cij thỏa mãn điều kiện trên của định
lý (ta có thể chọn cii = ρ với mọi i và cij = 0 với mọi i 6= j) Do đó,tập tất cả các n-bộ véctơ yi ∈ M thỏa mãn điều kiện của định lý làkhác rỗng, và vì vậy với mỗi i ta có thể chọn yi ∈ M là véctơ mà cii là
Trang 16dương và nhỏ nhất có thể Ta sẽ chỉ ra rằng các véctơ y1, y2, , yn lậpthành một cơ sở của lưới con M Do y1, y2, , yn ∈ M nên mọi véctơ
w 1 y1+w 2 y2+ + w n yn ∈ M, w i ∈Z Giả sử, z ∈ M không phải là một
tổ hợp tuyến tính của y1, y2, , yn ∈ M Do z ∈ M ⊂ Lnên ta có
z = t1x1+t2x2+ + tkxk, k ≤ n, tk 6= 0.
Nếu có nhiều véctơ z như vậy thì ta chọn z sao cho chỉ số k là nhỏ nhất
có thể Theo giả thiết ckk 6= 0, viết tk = qckk + r, 0 ≤ r < ckk Khi đó,xét véctơ
z − qyk = (t1x1+t2x2+ + tkxk) − q(ck1x1+ck2x2+ + ckkxk)
= (t1− qck1) x1+(t2− qck2)x2+ + (tk− qckk)xk.
Do z, yk ∈ M và q ∈Z nên z − qyk ∈ M Do z và z − qyk không phải là
tổ hợp tuyến tính nguyên của y1, y2, , yn và chỉ số k được chọn là nhỏnhất nên tk − qckk 6= 0 Điều này chỉ ra rằng véctơ z − qyk ∈ M là một
tổ hợp tuyến tính của x1, x2, , xk mà hệ số của xk là khác không vànhỏ hơn ckk Điều này mâu thuẫn với việc chọnyk ở trên Do đó véctơ z
không tồn tại và mọi véctơ của M phải là một tổ hợp tuyến tính nguyêncủa y1, y2, , yn
Ngược lại Cho y1, y2, , yn là một cơ sở của M Theo Bổ đề 1.10, ta có
ρL ⊆ M Do đó theo phần đầu của chứng minh với ρL là lưới con củalưới M Ta thu được một cơ sở ρ x 1 , ρ x 2 , , ρ x n của ρL sao cho
x 1 , x 2 , , x n là một cơ sở của L và y1, y2, , yn ∈ M ⊆ L nên ta thấyrằng tất cả các phần tử của ma trận ρD−1 phải là nguyên, bởi tính duynhất của biểu diễn mỗi véctơ lưới như một tổ hợp tuyến tính nguyên củacác véctơ cơ sở
Trang 17Hệ quả 1.12 Trong phần thứ nhất của Định lý 1.11, có thể giả thiếtrằng
Nếu cii < 0 với i nào đó thì ta nhân hai vế của phương trình (1.1) với
−E ii (ma trận chỉ có phần tử ở vị trí (i, i) bằng 1 ngoài ra tất cả cácphần tử ở vị trí khác bằng không), tức −E ii Y = −E ii CX Thực chất đây
là một phép biến đổi hàng unimodular: “nhân hàng thứ i với −1”.Nếu cij < 0 hoặc cij ≥ cjj với i, j nào đó thì viết cij = qcjj + r với
0 ≤ r < cjj (ta giả sử rằng cjj > 0) Nhân hai vế của (1.1) với In− qEij,tức (I n − qE ij )Y = (I n − qE ij )CX Điều này cũng tương đương với phépbiến đổi hàng unimodular “trừ q lần hàng thứ j từ hàng thứ i”
Từ hai trường hợp trên, ta có thể biểu diễn phép biến đổi hàngunimodular như sau: U Y = U CX, ở đây U là ma trận unimodular Do
U là ma trận tam giác dưới nên, U C cũng là ma trận tam giác dưới Vìvậy, ta có thể thay thế ma trận cơ sở y1, y2, , yn củaM, gồm các hàngcủa ma trận Y bằng cơ sở mới gồm các hàng của ma trận U Y Trườnghợp còn lại có thể chứng minh theo một cách tương tự
Hệ quả 1.13 Cho L là một lưới n chiều trong Rn, và y1, y2, , ym,
m ≤ n, là một hệ véctơ độc lập tuyến tính trong L Khi đó tồn tại một
cơ sở x1, x2, , xn của L thỏa mãn hệ phương trình
Trang 18Chứng minh Ta có thể tìm n − m véctơ ym+1, , yn trong L sao chocác véctơ y1, y2, , yn là độc lập tuyến tính Khi đó ta áp dụng phầnhai của Hệ quả 1.12 cho lưới M với cơ sở y1, y2, , yn Ta có điều phảichứng minh.
Hệ quả 1.14 Cho L là một lưới n chiều trong Rn, và y1, y2, ym,
m < n là một hệ véctơ độc lập tuyến tính trong L Khi đó các điều kiệnsau đây là tương đương
1 Tồn tại (n − m) véctơ ym+1, , yn trong L sao cho hệ y1, y2, , yn
lập thành một cơ sở của L
2 Nếu z ∈ L là một tổ hợp tuyến tính của y1, y2, , ym thì nó là một
tổ hợp tuyến tính nguyên của các véctơ đó
Chứng minh (1) ⇒ (2) hiển nhiên Để chứng minh(2) ⇒ (1), giả sử rằng
y1, y2, , ym thỏa mãn điều kiện (2) Do y1, y2, , ym là độc lập tuyếntính trong L, nên ta có thể áp dụng Hệ quả 1.13 để thu được một cơ sở
x1, x2, , xn của L thỏa mãn các phương trình của Hệ quả 1.13 Xét m
véctơ cơ sở đầu tiên x1, x2, , xm, ta có phương trình ma trận Y = CX,với C có kích thước m × m hay X = C−1Y Do điều kiện (2) suy ra cácphần tử trong C−1 là nguyên Nhưng C là ma trận đường chéo dưới vớicác phần tử trên đường chéo là c11, c22, , cmm nênC−1 cũng là ma trậnđường chéo dưới với các phần tử trên đường chéo là c−111, c−122, , c−1mm Do
đó, với mọi i = 1, 2, , m, ta thấy rằng cii là một số nguyên và c−1ii lànguyên nên cii = ±1
Bây giờ ta áp dụng Hệ quả 1.12 suy racii = 1 với 1 ≤ i ≤ m và cij = 0
với 1 ≤ j < i ≤ m Do đó,C = Im và yi = xi với i = 1, 2, m Đặtyi = xi
với i = m + 1, , n ta có điều phải chứng minh
Hệ quả 1.15 Cho L là một lướin chiều trong Rn với cơ sởx 1 , x 2 , x n.Xét z ∈ L là một véctơ bất kỳ và viết
Trang 192 Ước chung lớn nhất của các số nguyên am+1, , an bằng 1.
Chứng minh Dễ thấy từ Hệ quả 1.14
Định nghĩa 1.16 Cho L là một lưới m chiều trong không gian clidean Rn Cực tiểu kế tiếp thứ i6 của lưới Λi(L) là số thực r nhỏ nhấtsao cho tồn tại i véctơ độc lập tuyến tính x1, x2, , xi ∈ L thỏa mãn
Eu-kx1k , kx2k , , kxik ≤ r Ta có thể biểu diễn như sau
Trong [11] đã đưa ra một đánh giá heuristic (dựa trên các kết quảthực nghiệm) cho véctơ ngắn nhất (cực tiểu kế tiếp thứ 1) trong lưới.Mệnh đề 1.17 (Gaussian heuristic) Cho L là một lưới n chiều.Khi đó chiều dài của Λ1(L) trong lưới xấp xỉ p2πen (det L)1/n
Phần này, luận văn trình bày thuật toán Gram-Schmidt cổ điển choviệc chuyển một cơ sở bất kỳ trong Rn thành một cơ sở trực giao Đây
là một nội dung cổ điển của đại số tuyến tính nhưng lại là một kỹ thuậtquan trọng trong thuật toán LLL
Định nghĩa 1.18 Chox 1 , x 2 , , x n là một cơ sở của Rn Trực giao hóaGram-Schmidt (GSO)7 củax 1 , x 2 , , x n là một cơ sở x∗1, x∗2, , x∗n được
6 i-th successive minimum
7 Gram-Schmidt Orthogonalization
Trang 20định nghĩa như sau:
(1 ≤ j < i ≤ n).
Lưu ý rằng trong định nghĩa trên, các véctơ không được chuẩn hóa độdài Ngoài ra, dễ thấy rằng nếux1, x2, , xn ∈Qn thìx∗1, x∗2, , x∗n ∈Qn.Vấn đề khó khăn ở đây là, nếu x1, x2, , xn là một cơ sở của lưới L thìsau khi trực giao hóa các véctơ cơ sở x∗1, x∗2, , x∗n có thể không còn nằmtrong lưới L nữa
Nhận xét 1.19 Nếu ta đặt µii = 1 với 1 ≤ i ≤ n thì ta có viết gọn
Định lý sau đây nhắc lại các tính chất cơ bản của cơ sở GSO
Định lý 1.20 Cho x1, x2, , xn là một cơ sở của Rn và x∗1, x∗2, , x∗n
là trực giao hóa Gram-Schmidt của nó Ký hiệu X (tương ứng, X∗) là
ma trận cấp n có hàng i là véctơ x i (tương ứng, x∗i) Khi đó
(a) x∗i· x∗j = 0 với mọi 1 ≤ i < j ≤ n
(b) Span(x∗1, x∗2, , x∗k) = Span(x1, x2, , xk) với mọi 1 ≤ k ≤ n
Trang 21(c) Với 1 ≤ k ≤ n, véctơ x∗k là hình chiếu của xk trên phần bù trực giaocủa Span(x 1 , x 2 , , xk−1).
(d) x∗k ≤ kxkk với mọi 1 ≤ k ≤ n
(e) det X∗= det X
Chứng minh (a) Ta chứng minh bằng quy nạp Hiển nhiên bất đẳngthức đúng với j = 1 Giả sử rằng khẳng định đúng vớij ≥ 1 Ta sẽ chứngminh rằng khẳng định cũng đúng với 1 ≤ i < j + 1 Ta có
Trang 22Khi đó, có duy nhất một phân tích xk = x0k+ y, ở đây x0k ∈ U⊥ và y ∈ U.Suy ra, x0k là hình chiếu của xk trên phần bù trực giao của U Hơn nữa,
(e) Ta có X = M X∗ ở đâyM = (µij)là ma trận tam giác dưới với µii = 1
với 1 ≤ i ≤ n Do đó det(M ) = 1 và det(X∗) = det(X)
Bổ đề 1.21 (Bất đẳng thức Hadamard) Cho X = (xij) là một matrận thực cấp n, và lấy B = maxi,j|xij| Khi đó, |det X| ≤ nn/2Bn
Chứng minh Cho xi = (xi1, , xin) với 1 ≤ i ≤ n là các hàng của matrận X Nếu các hàng này phụ thuộc tuyến tính thìdet(X) = 0 Kết quảluôn đúng Nếu các hàng độc lập tuyến tính thì lấy X∗ là ma trận màcác hàng là các véctơ cơ sở trực giao x∗1, x∗2, , x∗n Theo Định lý 1.20(c),
ta có
|det X∗| = |det X|
Do |det X∗| là thể tích của hình hộp n-chiều căng bởi các véctơ trực giao
x∗1, x∗2, , x∗n, nên theo Định lý 1.20(a) suy ra
Trang 23ma trận k × n gồm k hàng đầu tiên của ma trận X Ma trận Gram thứ
k của cơ sở này là ma trận đối xứng k × k
Gk = XkXkt.
Định thức Gram thứ k của cơ sở này là dk = det Gk
Để thuật tiện, ta đặt d 0 = 1 Nếu x i ∈Zn với mọii thì dk ∈Z với mọi
0 ≤ k ≤ n
Mệnh đề 1.23 Cho x1, x2, , xn là cơ sở của Rn, và lấy x∗1, x∗2, , x∗n
là trực giao hóa Gram-Schmidt của nó Với 1 ≤ k ≤ n, định thức của matrận Gram thứ k là
Trang 24Mệnh đề 1.24 Cho x1, x2, , xn là một cơ sở của Rn với xi ∈ Zn,
1 ≤ i ≤ n Lấy x∗1, , x∗n ∈ Qn là trực giao Gram-Schmidt của nó Lấy
dk là định thức thứ k của ma trận Gram tương ứng Khi đó
(a) Véctơ dk−1x∗k có các thành phần nguyên với mọi 1 ≤ k ≤ n
(b) d j µkj là một số nguyên với mọi 1 ≤ j ≤ k
Với k cố định, cók − 1 lựa chọn cho i, do đó ta có một hệ tuyến tính của
k − 1 phương trình theo k − 1 biến λk1, λk2, , λk,k−1 Ma trận hệ số của
hệ này là ma trận Gram Gk−1, và định thức của Gk−1 là dk−1 Theo quitắc Cramer suy ra dk−1λkj ∈Z với 1 ≤ j ≤ k − 1 Khi đó, ta có
Trang 25Do giả thiết xk ∈Zn và như trong phần (a) dj−1x∗j ∈Zn Do vậy djµkj ∈
Một phần quan trọng trong thuật toán LLL là việc đổi chỗ các véctơ
cơ sở kề nhau Mệnh đề sau đây chỉ ra việc đổi chỗ ảnh hưởng thế nàotới trực giao hóa Gram- Schmidt của cơ sở
Mệnh đề 1.25 Cho x1, x2, , xn là một cơ sở của Rn, và x∗1, x∗2, , x∗n
là trực giao hóa Gram-Schmidt của nó Lấy j trong khoảng 1 ≤ j ≤ n − 1
và lấy x ˆ1, ˆ x2, , ˆ xn là một cơ sở mới thu được sau khi hoán đổi xj và
+µj+1,jx∗j
= x∗j+1+µj+1,jx∗j
Trang 26Do x∗j và x∗j+1 là trực giao hóa nên
x∗i · ˆ x∗i · ˆ x∗i − xj · ˆx
∗ j
ˆ
x∗j· ˆ x∗j · ˆ x∗j (ˆ x∗i = x∗i, i < j)
= x∗j−xj· ˆx
∗ j
ˆ
x∗j · ˆ x∗j · ˆ x∗j = x∗j−xj· ˆx
∗ j
ˆ
x∗j· ˆ x∗j · (x∗j+1µj+1,jx∗j)
= x∗j−µj+1,j x
∗ j 2
x∗j 2
!
x∗j−µj+1,j x
∗ j
kˆ xjk2 x
∗
j −µj+1,j x
∗ j 2
Trang 27Mệnh đề 1.26 Cho x1, x2, , xn là cơ sở của Rn, và x∗1, x∗2, , x∗n làtrực giao hóa Gram-Schmidt của nó ChoL là lưới sinh bởi x 1 , x 2 , , x n.Với một y ∈ L khác không,
ở đây ri ∈Z với 1 ≤ i ≤ n Do y 6= 0 nên ri 6= 0 với i nào đó; lấy k là chỉ
số lớn nhất sao cho rk 6= 0 Khi đó,
Trang 28nghĩa 1.1) về lưới, cho phép xác định xem một tập hợp cho trước có phải
là một lưới hay không mà không cần phải xây dựng một cơ sở lưới Việcchứng minh sự tương đương của hai định nghĩa sử dụng phương pháptrực giao hóa
Định nghĩa 1.27 Một lưới L trong Rn là một nhóm con cộng tính rờirạc của Rn
Một tập hợp L được gọi là rời rạc nếu như tồn tại ε > 0 sao chokhoảng cách giữa hai phần tử bất kỳ của S không nhỏ hơn ε
Định nghĩa 1.27 có ưu điểm là không yêu cầu sự tồn tại của một cơ sởlưới cụ thể Ví dụ, xét n số nguyêna1, a2, , an và một modulus M Tậphợp các số (x 1 , x 2 , , x n ) ∈Zn thỏa mãnPn
1 aixi= 0 mod M rõ ràng lậpthành một nhóm con rời rạc của Zn Nhưng khó mà chọn được một cơ
sở không tầm thường nào của lưới này
Định nghĩa 1.28 Cho trước n véctơ x1, x2, , xn ∈ Rm là các véctơđộc lập tuyến tính, hình hộp cơ bản đóng của chúng được định nghĩa là
¯ P(x1, x2, , xn) :=
Llà một nhóm con cộng tính của Rn Hơn nữa, với mọix, y ∈ L,(x − y) ∈
L Do đó, theo Mệnh đề 1.26, ta cókx − yk ≥ min {kx∗1k , kx∗2k , , kx∗nk}.Chọn ε = min {kx∗1k , kx∗2k , , kx∗nk}, suy ra L là nhóm con cộng tính rờirạc
Bây giờ, ta sẽ chứng minh từ Định nghĩa 1.27 suy ra Định nghĩa1.1 bằng cách xây dựng một cơ sở theo thuật toán sau đây Chọn y ∈
L sao cho không có véctơ nào giữa véctơ 0 và y và đặt x1 = y Giả
sử đã chọn được các véctơ x1, x2, , xi Lấy y không nằm trong Vi = Span(x 1 , x 2 , , x i ) và xét P(x¯ 1 , x 2 , , x i , y) Hình hộp này chứa ít nhấtmột điểm của lưới (là y) và chứa một số hữu hạn điểm của lưới do tínhchất rời rạc Vì thế, có thể chọn một véctơ znằm trong hình hộp nhưng
Trang 29không thuộc Vi sao cho khoảng cách từ z đếnVi là nhỏ nhất có thể Đặt
x i+1 = z
Ta sẽ chứng minh rằng hệ x1, x2, , xn ∈ Rn được chọn nhờ thuậttoán trên lập thành một cơ sở của lưới Do theo cách chọn của thuậttoán xi ∈ Span(x / 1, x2, , xi−1) nên x1, x2, , xn là độc lập tuyến tính
Nói cách khác, z − z0 thuộc Span(x1, x2, , xn−1)cộng một bội số của x∗n
với hệ số (z n − bz n c) ∈ [0, 1) Khi đó, khoảng cách từ z − z0 đến V n−1 bằng
ký, tin tưởng rằng người ký không thể chối bỏ việc đã ký thông điệp vàtin tưởng rằng thông điệp không thể được thay đổi trong quá trình gửi
đi Chữ ký số là một thành phần cơ bản của hầu hết các bộ giao thứcmật mã và thường được sử dụng cho phân phối phần mềm, giao dịch tàichính,
Hiện nay trên thế giới có nhiều chuẩn lược đồ chữ ký khác nhau nhưECDSA và DSA [10] của Mỹ, GOST R 34.10-2012 [6] của Nga, ECGDSA[13] của Đức, KCDSA, ECKCDSA [13] của Hàn quốc Tuy nhiên, đặcđiểm chung của các lược đồ chữ ký thường bao gồm 3 thuật toán
Trang 30• Thuật toán sinh khóa: Đưa một khóa bí mật8được chọn ngẫu nhiênđều từ tập các khóa bí mật có thể và một khóa công khai9 tươngứng.
• Thuật toán ký: đầu vào là một thông điệp và một khóa bí mật đượccho trước, đầu ra là một chữ ký cho thông điệp đầu vào
• Thuật toán kiểm tra chữ ký: đầu vào là thông điệp, khóa công khai
và chữ ký được cho trước, đầu ra là bác bỏ hoặc chấp nhận tínhhợp lệ của chữ ký
Lược đồ chữ ký DSA10 được công bố đầu tiên vào năm 1991 Chođến nay lược đồ này đã trải qua nhiều phiên bản và phiên bản mới nhấtđược biết đến hiện nay là FIPS 186-4 [10] năm 2013 Ba thuật toán chínhtrong lược đồ gồm:
Thuật toán sinh khóa cho người ký:
• Chọn hai số nguyên tố p và q có q|p − 1
• Chọn G là một nhóm con của Z∗p có cấpq g là phần tử sinh củaG
• Chọn a ngẫu nhiên đều trong[1, q − 1]là khóa ký bí mật dài dạn11
• Tính A = ga mod p là khóa công khai dài hạn
Thuật toán ký của người ký trên thông điệp m:
• Chọn k ngẫu nhiên đều trong[1, q − 1]là khóa ký bí mật tức thời12
• Tính r = (gk mod p) mod q, nếu r = 0 thì chọn lại k
• Tính h(m), ở đây h là một hàm băm13 ánh xạ thông điệp tới
Trang 31• Tính s = k−1(h(m) + ar) mod q, nếu s = 0 thì chọn lại k.
• Chữ ký của thông điệp m là cặp (r, s)
Thuật toán xác minh chữ ký (r, s) trên thông điệp m:
• Xác minh r, s có thuộc [1, q − 1] hay không
14 discrete logarithm problem
Trang 321.5.2 Lược đồ ECDSA
Lược đồ chữ ký ECDSA15 là một biến thể của DSA sử dụng mật
mã đường cong elliptic Kích thước theo bít của khóa công khai cần choECDSA là gấp khoảng hai lần độ lớn của mức an toàn Ví dụ, tại mộtmức an toàn 80 bít (tức kẻ tấn công yêu cầu xấp xỉ khoảng 280 phéptoán để tìm khóa bí mật) kích thước của một khóa công khai ECDSA
sẽ cần là 160 bít, trong khi đó cùng với mức an toàn như vậy thì kíchthước khóa công khai DSA sẽ cần ít nhất là 1024 bít Mặt khác, ECDSA
và DSA có kích thước thước chữ ký là giống nhau: xấp xỉ 4 lần mức antoàn Chẳng hạn, chữ ký có kích thước 320 bít cho mức an toàn 80 bít.Xét đường cong ellipticE trên Fp, P ∈ E(Fp)có cấp là một số nguyên
tố q Ba thuật toán chính trong lược đồ này gồm:
Thuật toán sinh khóa cho người ký:
• Chọn a ngẫu nhiên đều trong [1, , q − 1] là khóa ký dài hạn
• Tính Q = aP là khóa công khai
Thuật toán ký của người ký trên thông điệp m:
• Chọn k ngẫu nhiên đều trong [1, , q − 1] là khóa ký tức thời
• Tính kP = (x, y), lấy r = x mod q nếu r = 0 thì chọn lại k
• Tính h(m), ở đây h là một hàm băm ánh xạ thông điệp tới
{0, 1, , q − 1}
• Tính s = k−1(h(m) + ar) mod q, nếu s = 0 thì chọn lại k
Thuật toán xác minh (chữ ký (r, s) của A) trên thông điệp m:
• Xác minh r, s có thuộc [1, q − 1] hay không
Trang 33• Chữ ký được chấp nhận chỉ khi r = xR mod q.
Tính đúng đắn của thuật toán: Ta có
Thuật toán sinh khóa cho người ký:
• Chọn a ngẫu nhiên đều trong [1, , q − 1] là khóa ký dài hạn
• Tính Q = aP là khóa công khai
Thuật toán ký của người ký trên thông điệp m:
• Chọn k ngẫu nhiên đều trong [1, , q − 1] là khóa ký tức thời
• Tính kP = (x, y), lấy r = x mod q nếu r = 0 thì chọn lại k
• Tính h(m), ở đây h là một hàm băm ánh xạ thông điệp tới
{0, 1, , q − 1}
• Tính s = (kh(m) + ar) mod q, nếu s = 0 thì chọn lại k
Thuật toán xác minh chữ ký (r, s) trên thông điệp m:
16 elliptic curve discrete logarithm problem
Trang 34• Xác minh r, s có thuộc [1, q − 1] hay không.
• Tính w = h(m)−1 mod q
• Tính u1= sw mod q và u2 = −rw mod q
• Tính R = (xR, yR) = u1P + u2Q
• Chữ ký được chấp nhận chỉ khi r = xR mod q
Tính đúng đắn của thuật toán: Ta có
Trang 35Chương 2
Thuật toán LLL
Trong mục này luận văn trình bày và phân tích độ phức tạp của thuậttoán LLL cho việc rút gọn cơ sở lưới Thuật toán này được lấy tên theochữ cái đầu của ba tác giả A K Lenstra, H W Lenstra Jr và L Lovász[16] những người đã giới thiệu thuật toán này đầu tiên năm 1988.Thuật toán LLL là một tổng quát hóa của thuật toán Euclid Cụthể, với a, b là các số nguyên, thuật toán Euclid tìm tổ hợp tuyến tínhkhác không nhỏ nhất của a và b do aZ+ bZ=GCD(a, b)Z Trong khi đó,
LLL tìm tổ hợp tuyến tính khác không ngắn nhất của một tập các véctơ
x1, x2, , xn ∈Zn được cho trước
Định nghĩa 2.2 Cơ sở x1, x2, , xn được gọi là một cơ sở α-rút gọn(hay cở sở LLL-rút gọn với tham số α) nếu nó thỏa mãn
(1) |µij| ≤ 1/2 với mọi 1 ≤ j < i ≤ n
1 reduction parameter
Trang 36(2) x∗i+µi,i−1x∗i−1 2≥ α x∗i−1 với mọi 2 ≤ i ≤ n.
Điều kiện (2) được gọi là điều kiện trao đổi2 và có thể được viếtthành
(20) kx∗ik2≥ (α − µ2i,i−1) x∗i−1 2, 2 ≤ i ≤ n.
Điều kiện (1) nói rằng mỗi véctơ cơ sở xi "hầu trực giao" với khônggian căng bởi các véctơ trước đó Điều kiện (2), (2’) và Mệnh đề 1.25nói rằng việc hoán vị xi−1 và xi và sau đó tính lại cơ sở GSO tạo ra mộtvéctơ mới ngắn hơn
ˆ
x∗i−1 = x∗i+µi,i−1x∗i−1,
nhưng không "ngắn hơn" nhiều quá
Định nghĩa 2.3 Ta định nghĩa tham số bổ trợ3 β như sau
4α − 1.
Như vậy, β > 34 và β1 = α −14 Nếu α = 34 thì β = 2
Phần (c) trong Mệnh đề sau đây cho ta một cận trên cho chiều dài
kx1k của véctơ đầu tiên trong một cơ sở lưới α-rút gọn theo định thứccủa lưới Kết quả tiếp theo cho ta một cận trên cho kx1k theo chiều dàicủa véctơ ngắn nhất trong lưới
Mệnh đề 2.4 Nếu x1, x2, , xn là một cơ sở α-rút gọn của lướiL trong
Rn và x∗1, x∗2, , x∗n là cơ sở trực giao hóa Gram-Schmidt của nó thì(a) kxjk2 ≤ β i−j x∗i 2 với 1 ≤ j ≤ i ≤ n
2
.
2 exchange condition
3 auxiliary parameter
Trang 37Khi đó x∗i−1 2 ≤ β x∗i 2, và
x∗j 2 ≤ βi−jkx∗ik2 (1 ≤ j ≤ i ≤ n) (2.1)Tiếp theo, vì xi= x∗i +
Trang 38Suy ra, kx1k ≤ β(n−1)/4(det L)1/n Tương tự, xét j = 2, ta có
Suy ra, kx2k ≤ β (n−2)/4 (det L)1/(n−1)
Cận trên của kx1k trong kết quả tiếp theo là hàm mũ, nhưng nó chỉphụ thuộc vào tham số rút gọn và số chiều n, nên áp dụng được cho tất
cả các lưới n chiều
Định lý 2.5 (Định lý LLL) Nếu x 1 , x 2 , , x n là một cơ sở α-rútgọn của lưới L trong Rn và y ∈ L là véctơ lưới khác không bất kỳ thì
kx1k ≤ β(n−1)/2kyk
Nói riêng, véctơ đầu tiên trong cơ sở α-rút gọn không dài hơn β(n−1)/2
lần véctơ ngắn nhất khác không của lưới L
Chứng minh Giả sử x∗1, x∗2, , x∗n là cơ sở GSO của x 1 , x 2 , , x n Từđịnh nghĩa của cơ sở α-rút gọn, với 2 ≤ i ≤ n, ta có
kx∗ik2 ≥ (α − µ∗i,i−1) x∗i−1 2 ≥ (α −14) x∗i−1 2 = 1
∗ i−1
Trang 39Kết quả vừa chứng minh là trường hợp m = 1của kết quả sau đây vềcận trên của độ dài của các véctơ trong một cơ sở α-rút gọn.
Định lý 2.6 Nếu x1, x2, , xn là một cơ sở α-rút gọn của lưới L trong
Rn và y1, y2, , ym là m véctơ lưới độc lập tuyến tính thì
i(1) ≤ i(2) ≤ ≤ i(m),
vì nếu cần, có thể đánh số lại các phần tử yj của hệ m véctơ độc lậptuyến tính
Theo định nghĩa của GSO, ta có
Ta khẳng định rằng j ≤ i(j) Thật vậy, nếu có chỉ số j sao cho i(j) < j
thì y1, y2, , yj đều thuộc vào không gian căng bởix 1 , x 2 , , xi(j), điềunày trái với tính độc lập tuyến tính của hệ y1, y2, , yj
Theo phần (a) của Mệnh đề 2.4, ta có
Trang 402.2 Thuật toán LLL
Thuật toán LLL có đầu vào là một cơ sởx1, x2, , xn của lướiL ⊂Rn
và một tham số rút gọn α ∈ R, 14 < α < 1 Đầu ra là một cơ sởα-rút gọn
• Thủ tục hoán đổi - exchange(k):
1 Set z ← yk−1, yk−1 ← yk, yk ← z (hoán đổi yk−1 và yk)
2 Set ν ← µk,k−1 Set δ ← γk∗+ ν2γk−1∗
3 Set µk,k−1 ← νγk−1∗ /δ Set γk∗ ← γk∗γk−1∗ /δ Set γk−1∗ ← δ
4 For j = 1, 2, , k − 2 do: Set t ← µk−1,j, µk−1,j ← µkj, µkj ← t