Tải bản đầy đủ (.doc) (25 trang)

Báo cáo PGP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (908.69 KB, 25 trang )

Trang 1
BÁO CÁO PGP
Lời giới thiệu
Mã hóa thông tin là việc biến đổi thông tin thành một dạng khác nhằm che dấu nội dung, ý
nghĩa thông tin. Lý thuyết mã hóa thong tin là một môn học quan trọng có nhiều ứng dụng
trong đời sống xã hội. Ngày nay, các ứng dụng mã hóa và bảo mật thong tin đang được sử
dụng ngày càng phổ biến hơn trong các lĩnh vực khác nhau trên thế giới như an ninh, quân
sự, quốc phòng,… cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng,…
Mục Lục:
Trang 2
I.Những khái niệm chung và cái nhìn khái quát về vai trò chữ ký điện tử…….3
1.1 Mã hóa bằng khóa công cộng
1.2 Chữ ký điện tử (Digital Signatures)
1.3 Mạng an toàn (Web Of Trust)
1.4 Những ranh giới tới sự an toàn (Boundaries to security)
II.Các thuật toán sinh khóa trong PGP ………………………………………….5
1.Thuật toán SHA-1
2.Thuật toán DSA
3.Thuật toán RSA
4.Thuật toán ElGamal
III.Ứng dụng PGP ………………………………………………………………….8
1. Cài đặt (Installtion)
2. Sử dụng khoá
3. Mã hoá và giải mã hoá (Encrypt And Decrypt)
4. Quá trình ký nhận và kiểm tra chữ ký (Sign And Checking Signatures)
Trang 3
I)Những khái niệm chung và cái nhìn khái quát về vai trò chữ ký điện tử
Trong những năm gần đây, sự phát triển của khoa học máy tính và internet càng
cho ta thấy rõ hơn tầm quan trọng của mã hóa thong tin. Ứng dụng của mã hóa
thong tin không chỉ đơn thuần là mã hóa và giải mã thong tin mà nó còn được ứng
dụng trong việc chứng thực nguồn gốc nội dung thong tin (kỹ thuật chữ ký điện tử),


xác nhận về người sở hữu mã khóa ( chứng nhận khóa công cộng), các quy trình
giúp trao đổi thong tin và thực hiện giao dịch điện tử an toàn trên mạng.
1.1 Mã hóa bằng khóa công cộng (Public Key Encryption)
Phương pháp mã hoá cổ điển chỉ sử dụng một Key cho sự mã hoá. Người
gửi sẽ mã hoá thông điệp của họ bằng Key này. Về phía người nhận để giải
mã hoá thông điệp thì họ cũng cần phải có Key đó. Như vậy chắc chắn
người gửi sẽ phải gửi cho người nhận Key đó. Trên lý thuyết bản thân key
đó rất có thể sẽ bị một người khác chiếm được trong quá trình vận chuyển.
Nếu như một người khác có được Key đó thì họ sẽ có thể giải mã hoá và
xem được nội dung thông điệp của người gửi. Như vậy tính an toàn và bảo
mật cho thông tin không còn nữa.
Khoá công cộng (Public Keys) được ra đời để giải quyết vấn đề này. Thực
chất khoá Public Keys là việc sử dụng 2 Keys có liên quan với nhau:

- Public Key: Được sử dụng để mã hoá những thông tin mà ta muốn chia sẻ
với bất cứ ai. Chính vì vậy ta có thể tự do phân phát nó cho bất cứ ai mà ta
cần chia sẻ thông tin ở dạng mã hoá.

- Private Key: Đúng như cái tên, Key này thuộc sở hữu riêng tư của bạn và
nó được sử dụng để mã hoá thông tin cho mục đích cá nhân của riêng bạn.
Chỉ mình bạn sở hữu nó, Key này không được phép và không lên phân phát
cho bất cứ ai.
Khi cần thực hiện các nhu cầu mã hoá các thông tin riêng tư của chính mình
một cách bí mật mà không muốn chia sẻ thông tin ấy cho bất cứ ai. Bạn cần
phải sử dụng Private Key. Ngược lại khi muốn mã hoá các thông tin với
mục đích chia sẻ nó với một số đối tượng mà bạn muốn chia sẻ thông tin
bạn sẽ sử dụng Public Key để mã hoá chúng rồi gửi cho họ. Sau đó bản
thân họ sẽ sử dụng Private Key của chính mình để giải mã hoá.
Điều quan trọng ở khái niệm này là bạn phân biệt và hiểu được tính năng và
cách sử dụng của 2 loại Keys: Public Key và Private Key.


1.2 Chữ ký điện tử (Digital Signatures)
Để chứng minh rằng một thông điệp đã thực sự được gửi bởi chính người
gửi mà không phải là do một kẻ khác giả mạo. Khái niệm Digital Signatures
được ra đời. Khi sử dụng Digital Signatures bạn sẽ kiểm tra được tính xác
thực của một thông điệp. Việc sử dụng Digital Signatures sẽ giảm bớt nguy
Trang 4
cơ giả mạo thông điệp (đặc biệt là các thông điệp giả mạo các hãng
Security, Software lớn với mục đích phát tán Virus hay Trojan tới bạn). Bởi
bạn có thể dễ dàng xác minh được thông điệp đó có phải thực sự đến từ đó
hay không ?
Digital Signatures là sự kết hợp giữa Secret Key (khoá bí mật) và text. Tiếp
đó nó sẽ sử dụng Public Key của người gửi để thẩm tra thông điệp. Nó
không chỉ kiểm tra, thẩm định thông tin về người gửi mà nó còn có thể
kiểm tra cả nội dung của thông điệp. Như vậy bạn sẽ biết được rằng thông
điệp đó không bị giả mạo và nó không bị sửa đổi hay can thiệp vào nội
dung trong quá trình vận chuyển.
1.3 Mạng an toàn (Web Of Trust)
Một điểm yếu trong thuật toán của Public Key. Cho phép một người sử
dụng có thể mang và lưu hành một Public Key với User ID không chính
xác. Kẻ tấn công có thể lợi dụng yếu điểm này để giải mã và đọc những
thông điệp của bạn. Kẻ tấn công sẽ khai thác nó bằng cách sử dụng các
Public Key với các thông tin về User ID giả mạo trong đó.
Chính vì vậy giải pháp PGP (GnuPG - Gnu Privacy Guard) đã được ra đời
để giải quyết vấn đề này. Public Key có thể được ký nhận bởi người sử
dụng khác. Chữ ký này (Signatures) thừa nhận Key được sử dụng bởi UID
(User Identification - Định danh người dùng) thực sự thuộc về những người
sở hữu nó chính thức. Bạn có thể tin tưởng vào sự tin cậy của Key đó, khi
bạn tin tưởng người gửi Key đó và bạn biết chắc chắn rằng Key đó thực sự
thuộc quyền sở hữu của người gửi đó. Chỉ khi bạn thực sự tin tưởng vào

Key của người ký nhận cũng như tin tưởng vào Signatures đó. Để tăng
thêm tính tin tưởng vào Key bạn có thể so sánh Finger Print bởi các kênh
đáng tin cậy .
1.4 Những ranh giới tới sự an toàn (Boundaries to security)
Nếu bạn có dữ liệu và bạn muốn giữ an toàn cho dữ liêuj của bạn. Khi đó
bạn cần xác định nó sử dụng thuật toán mã hoá nào. Bạn đang nghĩ về sự an
toàn một cách tổng thể cho hệ thống của bạn. Trên lý thuyết PGP được
chúng ta coi là an toàn, nhưng khi bạn đọc tài liệu này đã có một số tính dễ
tổn thương của PGP được biết đến. Trong cuộc sống không một điều gì có
thể được coi là tuyệt đối. Tính an toàn của PGP cũng vây. Nhưng ta dám
khẳng định với bạn rằng việc tấn công PGP không phải là việc dễ. Đa số
các cuộc tấn công đề xảy ra phần lớn do sự bất cẩn của người sử dụng.
Chẳng hạn như việc đặt Password không tốt sẽ dẫn đến việc Secret Key bị
Crack. Hay một vài nguyên nhân khác mặc dù khó xảy ra nhưng chúng ta
không thể không đề phòng như: PC của bạn bị dính Trojan, Keylogger, một
ai đó đọc các thông tin về PGP hiển thị trên màn hình của bạn...
Những sự kém an toàn ta đã nêu ở trên không hề có ý gì khác chỉ mong bạn
hiểu rằng. Không một công cụ nào có tính an toàn tuyệt đối cả (PGP cũng
vậy). Bạn sẽ có sự an toàn tuyệt đối trên hệ thống của mình khi bạn thường
Trang 5
xuyên để ý, thắt chặt và thực hiện nghiêm túc các chính sách và nội quy về
bảo mật, an toàn hệ thống...
II)Các thuật toán sinh khóa trong PGP.
1.Thuật toán SHA-1:
Khởi gán các biến:
h0 := 0x67452301
h1 := 0xEFCDAB89
h2 := 0x98BADCFE
h3 := 0x10325476
h4 := 0xC3D2E1F0

Tiền xử lý:
• Thêm bit 1 vào cuối thông điệp
• Thêm vào k bit 0 sao cho độ dài thông điệp nhận được đồng du 448
(mod 512)
• Thêm 64 bit biểu diễn độ dài dài của thông điệp gốc (giá trị lưu
dạng big-endian)
• Chia thông điệp (đã padding) thành các khối 512 bit
• Với mỗi khối 512-bit:
• Chia thành 16 word (32 bit, big-endian) w[0..15]
• Mở rộng 16 word (32 bit) thành 80 word (32 bit)
• w[i]=(w[i-3]⊕ w[i-8] ⊕ w[i-14] ⊕ w[i-16]) <<< 1 với 16 ≤ i < 80
• A= h0, B= h1, C= h2, D= h3, E= h4
• 80 chu kỳ xử lý
• h0+=A, h1+=B, h2+=C, h3+=D, h4+=E
• Kết quả:= h0 | h1 | h2 | h3 | h4
⊕:phép Xor
Chu kỳ xử lý:
• t là số thứ tự của chu kỳ
• A, B, C, D, E là 5 word (32 bit) của trạng thái
• F là hàm phi tuyến (thay đổi tùy theo chu kỳ)
• <<< n là phép quay trái n vị trí
• ⊞ phép cộng modulo 2
32
.
• K
t
là hằng số .
Trang 6
[ ]
( )

( ) ( )( )
( ) ( ) ( )







≤≤⊕⊕
≤≤∧∨∧∨∧
≤≤⊕⊕
≤≤∧¬∨∧
=
7960 ,
5940 ,
3920 ,
190 ,
,,
tZYX
tZYZXYX
tZYX
tZXYX
ZYXtF








≤≤
≤≤
≤≤
≤≤
=
7960,
5940,
3920,
190,
t
t
t
t
K
t
0xca62c1d6
0x8f1bbcdc
0x6ed9eba1
0x5a827999
2.Thuật toán DSA:
2.1 Ký:
• Tạo 1 số ngẫu nhiên với mỗi thông điệp, giá trị k thỏa mãn 0 < k < q
.
• Tính r = (g
k
mod p) mod q .
• Tính s = (k
-1
(SHA-1(m) + x*r)) mod q, ở đây SHA-1(m) là hàm

băm mã hoá SHA-1 áp dụng cho thông điệp m .
• Tính toán lại chữ ký trong trường hợp không chắc chắn khi r=0 hoặc
s=0 .
• Chữ ký là (r,s) .
2.2 Xác nhận:
• Loại bỏ chữ ký nếu hoặc 0< r <q hoặc 0< s <q không thỏa mãn.
• Tính w = (s)
-1
mod q
• Tính u1 = (SHA-1(m)*w) mod q
• Tính u2 = (r*w) mod q
• Tính v = ((g
u1
*y
u2
) mod p) mod q
• Chữ ký là có hiệu lực nếu v = r.
2.3 Sự đúng đắn của giải thuật:
Trang 7
Lược đồ ký số là đúng đắn có ý nghĩa khi người xác nhận luôn chấp
nhận các chữ ký thật. Điều này có thể được chỉ ra như sau:
Từ g = h
z
mod p suy ra g
q
≡ h
qz
≡ h
p-1
≡ 1 (mod p) bởi định lý Fermat

nhỏ. Bởi vì g>1 và q là số nguyên tố suy ra g có bậc q.
Người ký tính
Như vậy
Bởi vì g có bậc q chúng ta có
Cuối cùng, tính đúng đắn của DSA suy ra từ:
3.Thuật toán RSA :
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh
không an toàn (ví dụ như Internet). Với thuật toán RSA, Alice đầu tiên cần
tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật.
3.1 Ký và tạo khóa:
1. Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và
độc lập.
2. Tính: .
3. Tính: giá trị hàm số Ơle : .
4. Chọn một số tự nhiên e sao cho và là số nguyên tố
cùng nhau với .
5. Tính: d sao cho : .
- Các số nguyên tố thường được chọn bằng phương pháp thử xác suất.
- Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng
- Bước 5 có thể viết cách khác: Tìm số tự nhiên sao cho
cũng là số tự nhiên. Khi đó sử dụng giá trị
Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob chuyển
M thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác
định lại M) được thỏa thuận trước.Lúc này Bob có m và biết n cũng như
Trang 8
e do Alice gửi. Bob sẽ tính c là bản mã hóa của m theo công thức:
Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo
môđun) bằng thuật toán bình phương và nhân. Cuối cùng Bob gửi c cho
Alice .
• c là thông báo .

• e là khóa ký .
• Công bố: n,d (Public key )
• Giữ bí mật: p,q và e ( Private key)
3.2 Xác nhận và giải mã
Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm được m
từ c theo công thức sau:
Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước. Quá
trình giải mã hoạt động vì ta có
.
Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ)
nên:

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dư
Trung Quốc, ta có:
.
hay:
.
4.Thuật toán ElGamal:
4.1 Ký :
• Phát sinh khóa : p, q,
α
, a, y=
α
a
mod p

α
là phần tử sinh của Z*
p
• Public key (p,

α
), private key (a)
• Tạo chữ ký
• Chọn ngẫu nhiên k, 1 ≤ k ≤ p-1, gcd(k, p-1)=1
• Tính r =
α
k
mod p
• Tính k
-1
mod (p-1)
• Tính s = k
-1
∗ (h(m) - ar) mod (p-1)
• Chữ ký là (r,s)
4.2 Xác nhận
• Kiểm tra chữ ký
Trang 9
• Kiểm tra 1 ≤ r ≤ p-1
• Tính v
1
= y
r
r
s
mod p
• Tính h(m) và v
2
=
α

h(m)
mod p
• Chữ ký hợp lệ ⇔ v
1
=v
2

)(mod r)(
)1(mod )(
)1(mod })({
sr)(
1
p
parmhks
parmhks
aksarmh
α≡α≡α
−−≡
−−≡
+

III)Ứng dụng PGP
1. Cài đặt (Installtion)
Bạn có thể lấy GnuPG từ Site chính thực của GnuPG
( từ bạn có thể chọn các Mirmor có vị trí địa lý ở
gần bạn để Download GnuPG về.
Phiên bản mà nhóm làm là phiên bản có giao diện dành cho window. Hiện
nay là vesion gpg4win-1.1.3
Sau đó nhắp đôi vào gpg4win-1.1.3


Ta chọn next để tiếp tục
Trang 10
Ta chọn next, mặc định ta sẽ có hình sau:
Ta thấy bảng trên, chọn next ta được như hình sau

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×