Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
884,5 KB
Nội dung
Chữkýsố ngời xácnhậnkhôngthểchối bỏ
Đặt vấn đề
Khi ứng dụng trên mạng máy tính ngày càng trở nên phổ biến, thuận lợi
và quan trọng thì yêu cầu về an toàn mạng, về an ninh dữ liệu trên mạng ngày
càng trở nên cấp bách và cần thiết. Nguồn tài nguyên trên mạng rất dễ bị đánh
cắp hoặc phá hỏng nếu không có một cơ chế bảo mật cho chúng hoặc sử dụng
những cơ chế bảo mật quá lỏng lẻo. Thông tin trên mạng, dù đang truyền hay đ-
ợc lu trữ đều cần đợc bảo vệ. Hoặc các thông tin ấy phải đợc giữ bí mật, hoặc
chúng phải cho phép ngời ta kiểm tra để tin tởng rằng chúng không bị sửa đổi
so với dạng nguyên thuỷ của mình và chúng đúng là của ngời nhận gửi nó cho
ta.
Mạng máy tính có đặc điểm nổi bật là có nhiều ngời sử dụng, nhiều ngời
cùng khai thác một kho tài nguyên, đặc biệt là tài nguyên thông tin và các điểm
có ngời sử dụng thờng phân tán về mặt địa lý. Các điểm này thể hiện lợi ích to
lớn của mạng thông tin máy tính đồng thời nó cũng là điều kiện thuận lợi cho
những ngời muốn phá hoại an toàn thông tin trên mạng máy tính.
Do đó cách tốt nhất để bảo mật thông tin là mã hoá thông tin trớc khi gửi
đi. Mục tiêu cơ bản của mật mã là cho phép 2 ngời, thờng đợc đề cập đến nh
Alice và Bob, liên lạc trên kênh không an toàn theo cách mà đối thủ Orcar
không thể hiểu cái gì đang đợc nói. Kênh này có thể là đờng điện thoại hoặc
mạng máy tính. Thông tin mà Alice muốn gửi đến Bob sẽ đợc gọi là bản rõ
(plaintext), có thể là bất kỳ tài liệu nào có cấu trúc tuỳ ý. Alice mã bản rõ bằng
cách dùng khoá xác định trớc, và gửi bản rõ thu đợc trên kênh không an toàn.
Orcar dù thu trộm đợc mã trên kênh song khôngthể hiểu đợc bản rõ là gì, nhng
Bob là ngời biết khoá mã có thể giải mã và thiết lập bản rõ.
Có hai loại mật mã là mật mã bí mật và mật mã khoá công khai.Trong
mật mã bí mật, 2 ngời muốn trao đổi thông tin cho nhau phải thoả thuận chọn
một cách bí mật khoá k. Từ k suy ra quy tắc mã hoá e
k
và quy tắc giải mã d
k
.
Trong các hệ mật này, d
k
hoặc trùng với e
k
hoặc dễ dàng rút ra từ e
k
và việc tiết
lộ e
k
sẽ làm cho hệ thống không an toàn. Độ an toàn hệ mật chính là độ an toàn
tính toán. Trong thực tế, một hệ mật là an toàn tính toán nếu phơng pháp tốt
nhất đã biết để phá nó yêu cầu một số lớn không hợp lý thời gian tính toán,
nghĩa là quá trình thực hiện tính toán cực kỳ phức tạp, phức tạp đến mức ta coi
là khôngthể đợc. Hệ mật khoá công khai đã đáp ứng đợc những đòi hỏi đó. ý
tởng nằm sau hệ mật khoá công khai là ở chỗ nó có thể tìm ra một hệ mật trong
đó khôngthể tính toán để xác định d
k
khi biết e
k
. Quy tắc mã e
k
có thể công
khai. Hàm mã hoá công khai e
k
phải dễ dàng tính toán nhng việc giải mã phải
khó đối với bất kỳ ngời nào ngoài ngời lập mã. Tính chất dễ tính toán và khó
- 1 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
đảo ngựơc này thờng đợc gọi là tính chất một chiều. Muốn giải mã các thông
báo nhận đợc một cách hiệu quả ta cần có một cửa sập 1 chiều. Điều này đảm
bảo độ bí mật cao.
Mặt khác, mã hoá còn bao gồm cả xác thực và chữký số. Xác thực có
nhợc điểm là ở đây 2 bên cùng có chung một khoá nên khôngthể phân xử đợc
khi 1 trong 2 ngời chốibỏ thông báo họ đã gửi cho ngời kia. Hơn nữa, trong
mạng có nhiều ngời sử dụng, nếu mỗi cặp có một khoá thoả thuận nh vậy thì
mỗi ngời phải lu giữ n-1 khoá bí mật. Khi n đủ lớn, đó là một việc phiền phức,
phức tạp. Chính vì vậy mà chữkýsố đợc sử dụng nhiều hơn. Chữkýsố có
nhiệm vụ giống chữký tay nghĩa là nó dùng để thực hiện các chức năng xác
nhận của một ngời gửi trên một văn bản. Nó phải vừa mang dấu vết không chối
cãi đợc của ngời gửi, vừa gắn với từng bit của văn bản mà nếu thay đổi dù chỉ
một bit của văn bản thì chữký cũng không còn đợc chấp nhận. Nói chung các l-
ợc đồ chữký thì không cần đối thoại. Nhng trong một số trờng hợp để tăng
thêm trách nhiệm trong việc xác nhận, ngời ta dùng các giao thức hỏi- đáp để
xác định độ tin cậy của chữ ký.
Trong đồ án này tôi đi sâu tìm hiểu về lợc đồ chữký chống chốibỏ có
ngời xác nhận. ở đây chữký có thể đợc kiểm tra mà không cần đến sự cộng tác
của ngời ký mà là một ngời thứ 3- ngời xác nhận.
Chơng I
TổNG QUAN Về NGÔN NGữ C
I.1. Lịch sử hình thành và phát triển
Ngôn ngữ C do Brian W.Kernighan và Dennis M.Ritchie phát triển vào
đầu những năm 70 tại phòng thí nghiệm BELL ( Hoa Kỳ) với mục đích ban đầu
là để phát triển hệ điều hành UNIX. Bối cảnh ra đời xuất phát từ nhu cầu cần
phải có một ngôn ngữ lập trình hệ thống thay thế cho hợp ngữ (Assembly) vốn
nặng nề, độ tin cậy thấp và khó chuyển đổi giữa các hệ máy tính khác nhau.
Ngoài việc C đợc dùng để viết hệ điều hành UNIX, ngời ta nhanh chóng
nhận ra sức mạnh của C trong việc xử lý các vấn đề hiện đại của tin học: xử lý
số, văn bản, cơ sở dữ liệu, lập trình hớng đối tợng. C đã trở thành một chuẩn
mặc nhiên.
- 2 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
Liên quan đến sự hình thành và phát triển của ngôn ngữ, có thể kể đến
một số sự kiện sau:
- Năm 1978, cuốn giáo trình dạy lập trình bằng ngôn ngữ C The C
programming langguage do chính 2 tác giả của ngôn ngữ Brian W.Kernighan
và Dennis M.Ritchie biên soạn đã đợc xuất bản và đợc phổ biến rộng rãi.
- Năm 1983 một tiểu ban của viện tiêu chuẩn quốc gia Mỹ (ANSI) đợc
thành lập nhằm đề xuất ra một chuẩn cho ngôn ngữ C.
- Năm 1988 chuẩn ANSI C chính thức đợc ban hành. Chuẩn này bao
gồm các mô tả về ngôn ngữ theo Brian W.Kernighan và Dennis M.Ritchie và
quy định các th viện chuẩn của ngôn ngữ C, nhờ đó tăng tính khả chuyển của
chơng trình viết bằng C.
- Trong thế giới máy vi tính có các hệ chơng trình dịch C nổi tiếng nh:
Turbo C, Borland C của Borland Inc; MSC, VC của Microsoft Corp; Lattice C
của Lattice.
I. 2. Các tính chất đặc trng của ngôn ngữ
C là một ngôn ngữ lập trình vạn năng đợc dùng để viết các hệ điều hành
nh UNIX cũng nh các chơng trình ứng dụng nh quản lý văn bản, cơ sở dữ liệu.
C là một ngôn ngữ có mức độ thích nghi cao, gọn và không nhất thiết
phải cần tới hợp ngữ.
C độc lập với bất kỳ kiến trúc máy đặc thù nào và với một chút thận
trọng vẫn dễ dàng viết đợc các chơng trình khả chuyển (portability) tức là
những chơng trình có thể chạy mà không cần phải thay đổi gì khi có sự thay đổi
về phần cứng.
C đợc sử dụng rộng rãi trong các lĩnh vực chuyên nghiệp vì đáp ứng đợc
các yêu cầu: hiệu quả cao trong soạn thảo chơng trình và dịch ra mã máy; tiếp
cận trực tiếp với các thiết bị phần cứng.
C không đa ra các phép toán xử lý trực tiếp các đối tợng hợp thành nh là
đối tợng toàn vẹn; khôngxác định bất kỳ một phơng tiện cấp phát bộ nhớ nào
khác ngoài cấp phát tĩnh, cấp phát động theo nguyên tắc xếp chồng cho các
biến cục bộ của hàm; không cung cấp cơ chế I/O, không có phơng pháp truy
nhập tệp. Tất cả các cơ chế này đợc thực hiện bằng những lời gọi hàm trong th
viện.
C đa ra các kết cấu điều khiển cơ bản cần cho các chơng trình có cấu
trúc nh: nhóm tuần tự các câu lệnh, chọn quyết định (if); chu trình với phép
- 3 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
kiểm tra kết thúc ở đầu (for, while), hoặc ở cuối (do while); và việc lựa chọn
một trong các trờng hợp có thể (switch).
C cung cấp con trỏ và khả năng định địa chỉ số học. Các đối của hàm đ-
ợc truyền bằng cách sao chép giá trị đối và hàm đợc gọi khôngthể thay đổi đợc
giá trị của đối hiện tại.
C cho phép hàm đợc gọi đệ quy và các biến cục bộ của hàm sẽ tự
động sinh ra hoặc tạo mới với mỗi lần gọi mới. Các định nghĩa hàm không
đợc lồng nhau nhng các biến có thể đợc khai báo theo kiểu cấu trúc khối. Các
hàm có thể dịch tách biệt. Các biến có thể trong hoặc ngoài hàm. Hàm chỉ
biết đợc các biến ngoài trong cùng một tệp gốc, hoặc biến tổng thể extern. Các
biến tự động có thể đặt trong các thanh ghi để tăng hiệu quả, nhng việc khai báo
thanh ghi chỉ là một hớng dẫn cho chơng trình dịch và không liên quan gì đến
các thanh ghi đặc biệt của máy.
C không phải là một ngôn ngữ có kiểu mạnh mẽ theo nghĩa của PASCAL
hoặc ALGOL/68. Nó tơng đối thoải mái trong chuyển đổi dữ liệu nhng không
tự động chuyển các kiểu dữ liệu một cách phóng túng nh của PL/I. Các chơng
trình dịch hiện có đều không đa ra cơ chế kiểm tra chỉ số mảng, kiểu đối số
Mặc dù vậy, C vẫn còn tồn tại một số nhợc điểm nh một số phép toán có
thứ tự thực hiện cha đúng; một số phần cú pháp có thể làm tốt hơn; hiện có
nhiều phiên bản của ngôn ngữ, chỉ khác nhau ở một vài chi tiết.
Tóm lại, C vẫn tỏ ra là một ngôn ngữ cực kỳ hiệu quả và đầy sức diễn
cảm đối với nhiều lĩnh vực ứng dụng lập trình. Hơn nữa, ta biết rằng hệ mật
chuẩn hay chữkýsố luôn cần một bộsố rất lớn tức là kích cỡ của không gian
khoá rất lớn khoảng trên 300 số thập phân. Do đó, ngôn ngữ C đủ mạnh để có
thể đáp ứng đợc điều đó.
- 4 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
Chơng II
CHữ Ký Số
II.1. Giới thiệu chung về chữký số
Nh chúng ta đã biết, chữký viết tay thờng lệ gắn với tài liệu đợc dùng
để chỉ ra ngời đã ký nó. Chữký đợc sử dụng hàng ngày nh để viết th, ký hợp
đồng
ở đây, chúng ta tìm hiểu về chữký hoàn toàn khác đó là chữký số. Nó là
phơng pháp ký thông báo đợc lu dới dạng điện tử và thông báo đợc ký có thể
truyền trên mạng máy tính. Chữký tay và chữkýsố dù cùng có nhiệm vụ
chung là ký nhng có sự khác nhau cơ bản giữa chúng.
Thứ nhất, về việc ký tài liệu: Với chữký tay thì chữký là bộ phận vật lý
của tài liệu đợc ký. Tuy nhiên, chữkýsốkhông gắn một cách vật lý với thông
báo đợc ký mà đợc gắn với thông báo theo logic, do đó thuật toán đợc dùng
phải trói chữký với thông báo theo một cách nào đó.
Thứ hai, về việc kiểm tra: chữký tay đợc kiểm tra bằng cách so sánh nó
với những cái khác, những chữký đã xác thực. Ví dụ, một ngời ký trên một tấm
séc mua hàng, ngời bán hàng phải so sánh chữký trên tấm séc với chữký nằm ở
sau thẻ tín dụng để kiểm tra. Tất nhiên, phơng pháp này không an toàn lắm vì
nó tơng đối dễ đánh lừa bởi chữký của ngời khác. Khác với chữký tay, chữ ký
số có thể đợc kiểm tra bằng cách dùng thuật toán kiểm tra công khai đã biết. Vì
vậy, bất kỳ ngời nào đó đều có thể kiểm tra chữký số. Và việc sử dụng lợc đồ
ký an toàn sẽ ngăn chặn khả năng đánh lừa.
Điều khác nhau cơ bản giữa chữký tay và chữkýsố là bản sao thông
báo số đợc ký là đồng nhất với bản gốc. Trong khi đó, bản sao chép tài liệu giấy
đã ký thờng là khác với bản gốc. Điều này nghĩa là phải cẩn thận để ngăn chặn
một thông báo đã kýsố bị sử dụng lại. Ví dụ, nếu Bob ký thông báo số
cho quyền Alice rút $100 từ tài khoản ở nhà băng của mình, anh ta chỉ muốn
Alice làm việc đó một lần. Do đó, thông báo tự nó phải chứa thông tin để ngăn
chặn Alice làm lại việc đó nhiều lần.
Lợc đồ chữkýsố gồm 2 thành phần: một thuật toán ký và một thuật toán
kiểm tra. Bob có thểký thông báo x nhờ thuật toán ký (bí mật) Sig. Chữký thu
đợc Sig(x) sau đó có thể đợc kiểm tra nhờ thuật toán kiểm tra công khai Ver.
- 5 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
Khi cho cặp (x,y) thuật toán kiểm tra sẽ trả lời đúng hoặc sai phụ thuộc vào
việc chữký có đích thực không?
II. 2. Định nghĩa lợc đồ chữký số
Lợc đồ chữkýsố là một bộ năm phần tử (P, A, K, S, V) thoả mãn các điều
kiện sau:
1. P _ là một tập hữu hạn các thông báo.
2. A _tập hữu hạn các chữký có thể.
3. K _tập hữu hạn các khoá, không gian khoá.
4. Với mỗi k K, sig
k
S và ver
k
V
Mỗi sig
k
: P A, ver
k
: P * A {true, false} là những hàm sao cho mỗi
bức điện x P và mỗi chữký y A thoả mãn:
Ver(x,y) =
( )
( )
.
,
,
=
xsigykhifalse
xsigykhitrue
*Yêu cầu:
- Với mỗi khoá k K, các hàm sig
k
và ver
k
là các hàm thời gian đa thức.
- Ver
k
là hàm công khai; sig
k
là hàm bí mật để tránh trờng hợp Orcar có thể giả
mạo chữký của Bob để ký thông báo x. Với mỗi x chỉ duy nhất Bob tính đợc
chữ ký y sao cho:
Ver(x, y) = True.
Lợc đồ chữký phải an toàn. Bởi vì Orcar có thể kiểm tra tất cả các khả năng của
chữ ký y nhờ thuật toán kiểm tra công khai Ver cho tới khi đạt đợc yêu cầu tức
là tìm đợc chữký đúng. Do đó, nếu có đủ thời gian cần thiết Orcar có
thể giả mạo đợc chữký của Bob. Vì vậy mục đích của chúng ta là tìm các lợc
đồ chữký sao cho Orcar không đủ thời gian thực tế để thử nh thế.
II. 3. Một vài lợc đồ chữký số
II.3. 1. Lợc đồ chữkýsố RSA
Lợc đồ chữký RSA đợc định nghĩa nh sau:
* Tạo khoá:
Cho n = p. q; với p, q là các số nguyên tố lớn khác nhau, (n) = (p - 1)(q -
1). Cho P = A = Z
n
và định nghĩa:
K = {(n, p, q, a, b): n = p.q; p, q là các số nguyên tố; ab 1mod (n)}
Các giá trị n và b là công khai; các giá trị p, q, a là bí mật.
* Tạo chữ ký:
Với K = (n, p, q, a, b) xác định:
- 6 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
Sig
K
(x) = x
a
mod n
* Kiểm tra chữ ký:
Ver
K
(x, y) = true x y
b
mod n; x, y Z
n
.
Giả sử Bob muốn ký thông báo x, anh ta tính chữký y bằng cách:
y = sig
K
(x) = x
a
B
modn (a
B
là tham số bí mật của Bob).
Bob gửi cặp (x, y) cho Alice. Nhận đợc thông báo x và chữkýsố y, Alice tiến
hành kiểm tra đẳng thức:
x = y
b
B
modn (b
B
là khóa công khai của Bob)
Nếu đúng, Alice công nhận y là chữký trên x của Bob. Ngợc lại, Alice sẽ
coi x không phải của Bob gửi cho mình (chữ kýkhông tin cậy).
Ngời ta có thể giả mạo chữký của Bob nh sau: chọn y, sau đó tính x =
ver
K
(y), khi đó y = sig
K
(x). Một cách để khắc phục khó khăn này là việc yêu
cầu x phải có nghĩa. Do đó chữký giả mạo nói trên sẽ thành công với xác suất
rất nhỏ.
Ta có thể kết hợp chữký với mã hoá sẽ làm cho độ an toàn của chữ ký
tăng thêm.
Giả sử rằng, Alice sẽ tính chữký của cô ta là y = sig
Alice
(x), và sau đó mã
hoá cả x và y bằng cách sử dụng mật mã công khai e
Bob
của Bob, khi đó cô ta
nhận đợc z = e
Bob
(x, y). Bản mã z sẽ đợc truyền tới Bob. Khi nhận đợc z, việc tr-
ớc tiên là anh ta giải mã bằng hàm d
Bob
để nhận đợc (x, y). Sau đó anh ta sử
dụng hàm kiểm tra công khai của Alice để kiểm tra xem liệu ver
Alice
(x, y) =
true?
Nếu Alice mã hoá x trớc rồi sau đó mới ký lên bản mã đã đợc mã hoá thì
sao? Khi đó cô ta tính:
y = sig
Alice
(e
Bob
(x))
Alice sẽ truyền cặp (z, y) cho Bob. Bob sẽ giải mã z, nhận đợc x và kiểm
tra chữký y trên bằng cách sử dụng ver
Alice
. Một vấn đề tiềm ẩn trong biện pháp
này là nếu Orcar có đợc cặp (z, y) kiểu này, anh ta có thể thay thếchữký y của
Alice bằng chữký của anh ta: y
= sig
Orcar
(e
Bob
(x))
Chú ý rằng Orcar có thểký bản mã e
bob
(x) ngay cả khi anh ta không biết
bản rõ x.
- 7 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
Khi đó, nếu Orcar truyền (z, y
) tới Bob, chữký của Orcar sẽ đợc kiểm
thử vì Bob sử dụng ver
Orcar
, và Bob có thể suy ra rằng bản rõ x xuất phát từ
Orcar. Điều này cũng làm cho ngời sử dụng hiểu rằng nên ký trớc rồi sau đó
mới tiến hành mã hoá.
Ví dụ: Giả sử Bob dùng lợc đồ chữkýsố RSA với n = 247 (p = 13, q =
19); (n) = 12.18 = 216. Khoá công khai của Bob là b = 7
a = 7
-1
mod216 = 31.
Bob công khai (n, b) = (247, 7).
Bob ký lên thông báo x = 100 với chữ ký:
y = x
a
modn = 100
31
mod247 = 74.
Bob gửi cặp (x, y) = (100, 74) cho Alice. Alice kiểm tra bằng cách sử dụng khoá
công khai của Bob nh sau:
x
= y
b
modn = 74
7
mod247 = 100 = x.
Alice chấp nhận y = 74 là chữký tin cậy.
II.3.2. Lợc đồ chữký ElGamal
Lợc đồ chữkýsố ElGamal đợc giới thiệu năm 1985 và đợc Viện tiêu
chuẩn và Công nghệ quốc gia Mỹ sửa đổi thành chuẩn chữký số. Lợc đồ
ElGamal không tất định cũng giống nh hệ thống mã hoá công khai ElGamal.
Điều này có nghĩa là có nhiều chữký hợp lệ cho một thông báo bất kỳ. Thuật
toán kiểm tra phải có khả năng chấp nhận bất kỳchữký hợp lệ nào khi xác
minh.
Lợc đồ chữkýsố ElGamal đợc định nghĩa nh sau:
* Tạo khoá:
Cho p là số nguyên tố sao cho bài toán lôgarit rời rạc trong Z
p
là khó và
giả sử Z
*
p
là phần tử nguyên thủy.
Cho P = Z
*
p
, A = Z
*
p
ì Z
p-1
và định nghĩa:
K = {(p, a, , ): =
a
modp }.
Các giá trị p, , là công khai, a là bí mật.
* Tạo chữ ký:
Với K = (p, a, , ) và với số ngẫu nhiên k Z
*
1p
, định nghĩa:sig
k
(, ),
trong đó:
=
k
modp và = (x - a) k
-1
mod(p - 1).
- 8 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
* Kiểm tra chữký số:
Với x, Z
*
p
và Z
p-1
, ta định nghĩa:
Ver (x, , ) = True
.
x
modp.
Chứng minh:
Nếu chữký đợc thiết lập đúng thì kiểm tra sẽ thành công vì:
a.
r.
modp
x
modp ( vì a + r x mod(p - 1)).
Bob tính chữký bằng cách dùng cả giá trị bí mật a ( là một phần của
khoá) lẫn số ngẫu nhiên bí mật k (dùng để ký trên x). Việc kiểm ta có thể thực
hiện duy nhất bằng thông tin công khai.
Ví dụ: Giả sử p = 467, = 2, a = 127
Khi đó: =
a
modp = 2
127
mod467 = 132
Giả sử Bob có thông báo x = 100 và anh ta chọn ngẫu nhiên k = 213 vì
(213, 466) =1 và 213
-1
mod466 = 431
Bob ký trên x nh sau:
=
k
modp = 2
213
mod467 = 29
và = (x - a)k
-1
mod(p -1) = (100 127. 29).431 mod466 = 51.
Chữ ký của Bob trên x = 100 là (29, 51).
Bất kỳ ngời nào đó cũng có thể kiểm tra chữký này bằng cách:
132
29
. 29
51
189 mod 467
2
100
189 mod 467
Do đó chữký là tin cậy.
Bây giờ, ta xét độ an toàn của lợc đồ chữký ElGamal.
Giả sử Orcar thử giả mạo chữký trên thông báo x cho trớc mà không biết
a. Nếu Orcar chọn giá trị và thử tìm tơng ứng, anh ta phải tính logarit rời rạc
của log
x
-
. Mặt khác, nếu anh ta chọn trớc và sau đó thử tìm thì anh ta
phải giải phơng trình
x
modp, trong đó là ẩn. Bài toán này cha có lời
giải, tuy nhiên dờng nh nó liên quan đến bài toán đã nghiên cứu. Vẫn còn có
khả năng là tìm và đồng thời để (, ) là chữ ký. Hiện thời không ai tìm đợc
cách giải song cũng không ai khẳng định đợc là nó không có lời giải.
- 9 -
Chữ kýsố ngời xácnhậnkhôngthểchối bỏ
Nếu Orcar chọn và , sau đó thử giải để tìm x, anh ta sẽ phải tính bài
toán logarit rời rạc, tức phải tính log
. Vì thế Orcar khôngthểký một
thông điệp ngẫu nhiên bằng cách này. Tuy nhiên có một cách để Orcar ký lên
thông điệp ngẫu nhiên bằng việc chọn , , x đồng thời.
Giả thiết i và j là các số nguyên 0 i p 2; 0 j p 2 và (j, p - 1)
=1.
Khi đó thực hiện các phép tính:
=
i
j
modp
= -.j
-1
mod(p - 1)
x = -
i
.j
-1
mod(p - 1) = i. mod(p - 1).
Trong đó j
-1
đợc tính theo module (p - 1). Ta thấy rằng (, ) là chữký hợp lệ
của x. Điều này đợc chứng minh qua việc kiểm tra:
-
(
i
j
)
-
i
j
1
modp
-i.j
1
-
-
.i.j
1
modp
x
modp.
Ví dụ: p = 467; = 2; = 132.
Giả sử Orcar chọn i = 99; j = 179, khi đó j
-1
mod(p -1) = 151. Anh ta tính:
= 2
99
132
179
mod467 = 117
= - 177. 151 mod466 = 41
x = 99. 41 mod 466 = 331
Và (117, 41 ) là chữký trên x = 331.
Kiểm tra:
132
117
117
41
303mod 467
và 2
331
303 mod467
Do đó chữký là hợp lệ.
Orcar có thể giả mạo chữký theo kiểu khác là bắt đầu từ thông báo x đã
đợc Bob ký. Giả sử (, ) là chữký hợp lệ trên x. Khi đó Orcar có khả năng ký
- 10 -
[...]... về chữký chống chốibỏ và chữký ngời xácnhận Lợc đồ chữký ngời xácnhận đã giải quyết đ- 35 - Chữ kýsố ngời xácnhậnkhôngthểchốibỏ ợc một số yếu điểm của lợc đồ chữký chống chốibỏ Trong lợc đồ chữký chống chốibỏ chỉ gồm 2 thành phần tham gia là ngời ký và ngời xácnhận (hoặc ngời kiểm tra) Do vậy, nếu ngời ký từ chối cộng tác đồng nghĩa với việc chữkýkhông đợc kiểm tra Trong lợc đồ chữ. .. chữký ngời xác nhận, khả năng kiểm tra các chữký là ngời đại diện đợc thêm vào thực thể gọi là ngời xácnhận Sự kiểm tra của ngời xácnhận chính xác hơn ngời ký, cô ta ( anh ta) có khả năng xácnhận hoặc từ chối độ tin cậy của chữký nhng cô ta (anh ta) không có khả năng giả mạo mọi chữký Trong nhiều lợc đồ chữký ngời xác nhận, ngời kýkhôngthểxácnhậnchữký của mình là tin cậy Nếu ngời xác nhận. .. thách thức ngời ký nó và rằng ngòi - 29 - Chữ kýsố ngời xácnhậnkhôngthểchốibỏkýkhôngthể trả lời sai Bởi vì ngời ký luôn luôn có thể thuyết phục một ngời bất kỳ nào đó rằng một chữký tin cậy là tin cậy và chữkýkhông tin cậy là không tin cậy Nh vậy ngời nhận ít nhất yên tâm rằng ngời kýkhôngthể từ chối một chữký tin cậy Các chữký chống chốibỏ có nhiều ứng dụng nh trong cuộc bán đấu giá... tra chữký Nh một sự bảo vệ an toàn, ngời xácnhận còn có thể kiểm tra chữký nếu ngời ký từ chối cộng tác Chơng này giới thiệu lợc đồ chữký ngời xácnhậnkhôngthểchối bỏ, đa ra chức năng kiểm tra chữký của cả ngời ký và ngời xácnhận Lợc đồ này là sự biến đổi của chữký ngời xácnhận Lợc đồ cung cấp một cách linh hoạt đối với ngời ký và ngời sử dụng cũng nh bao hàm các biến đổi của ngời xác nhận. .. chốibỏ Nó lôi cuốn 3 phía cùng tham gia: đó là bên nhậnchữ ký, ngời ký và ngời xácnhận Bên nhậnchữký đặt tên là Rita, là phía không cần khóa công khai Ngời ký đặt tên là Simon, và ngời xác nhận, đặt tên là Colin, mỗi ngời có khóa công khai đợc phép chấp nhận bởi Rita Giao thức ký chỉ gồmtơng tác giữa Simon và Rita Nó làm cho Rita bị thuyết phục rằng - 30 - Chữkýsố ngời xácnhậnkhôngthểchối bỏ. .. không Lợc đồ chữký nh thế đợc sửa đổi sao cho việc xác định hàm một chiều bao gồm chữký chống chốibỏ theo cách thích hợp Chẳng hạn, đầu ra của hàm một chiều mới có thể đợc xác định nh đầu ra của hàm gốc đợc XOR với chữký chống chốibỏ Nh vậy sự tự do hoàn toàn trong lựa chọn cái gì là chữký chống chối - 31 - Chữ kýsố ngời xácnhậnkhôngthểchốibỏbỏ cho phép sự tự do hoàn toàn trong việc chọn đầu... bảo vệ này là quá yếu Nó dựa trên ngời ký cộng tác trong việc tiếp tục xácnhậnchữký Nếu ngời kýkhôngthể đáp ứng đầy đủ các điều kiện trong giao thức hỏi đáp hoặc ngời ký từ chối hợp tác thì bên nhậnkhôngthể sử dụng chữký Ví dụ, nếu Bob xây dung câu trả lời d không đúng theo giao thức hoặc Bob từ chối tham gia kiểm tra chữký thì Alice khôngthể sử dụng chữký đó để rút tiền Ví dụ 1: Ông Giám đốc... ngời xácnhận đợc chỉ định cơ sở nh sau: Simon đa cho Rita chữ kýsố tự xác thực trên thông báo thỏa thuận đợc ký bởi khóa riêng của anh ta trừ việc chữký là không đầy đủ theo nghĩa nó tùy thuộc vào sự tin cậy của chữký chống chốibỏ bất kỳChữký chống chốibỏ này đợc tạo bởi Simon nh thể nó đợc ký bởi Colin và nó tơng ứng một cách tin cậy với khóa công khai của Colin ( Simon có khả năng tạo chữ ký. .. của chữký gốc không đầy đủ của Simon Vì vậy, Colin có thể chứng minh điều đó bằng nhiều cách khác nhau Sự khéo léo của tiếp cận cấu trúc ở trên là cách để tạo chữký tự xác thực tùy thuộc vào chữký chống chốibỏ Điều này có hai khía cạnh Một mặt, nếu chữký chống chốibỏ là không tin cậy và có thể đợc chọn tự do thì chữký tự xác thực sẽ không có giá trị theo nghĩa là bất kỳ ngời nào cũng có thể. .. chính xác Ta có: (109.4-237)125 188 mod467 và (68.4-9)45 188 mod467 (d e ) f (D f ) e modp 2 1 2 1 Vậy Alice tin chắc rằng chữký đó là không đúng Bây giờ, chúng ta cần phải chứng minh 2 điều là: a Bob có thể thuyết phục Alice rằng chữkýkhông đúng đó là giả mạo - 23 - Chữ kýsố ngời xácnhậnkhôngthểchốibỏ b Bob khôngthể làm cho Alice bị thuyết phục rằng chữký đúng đó là giả mạo ngoại trừ xác . điều đó.
- 4 -
Chữ ký số ngời xác nhận không thể chối bỏ
Chơng II
CHữ Ký Số
II.1. Giới thiệu chung về chữ ký số
Nh chúng ta đã biết, chữ ký viết tay thờng. là chữ ký. Hiện thời không ai tìm đợc
cách giải song cũng không ai khẳng định đợc là nó không có lời giải.
- 9 -
Chữ ký số ngời xác nhận không thể chối bỏ
Nếu