Tải bản đầy đủ (.pdf) (20 trang)

Giáo trình Mật mã học - PGS.TS. Nguyễn Bình (chủ biên) - Trường Đại Học Quốc Tế Hồng Bàng

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 (369.7 KB, 20 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Lời nói đầu



<i>Trong s phỏt trin của xã hội lồi ng−ời, kể từ khi có sự trao </i>
<i>đổi thơng tin, an tồn thơng tin trở thành một nhu cầu gắn liền với nó </i>
<i>nh− hình với bóng. Từ thủa sơ khai, an tồn thơng tin đ−ợc hiểu đơn </i>
<i>giản là giữ đ−ợc bí mật và điều này đ−ợc xem nh− một nghệ thuật chứ </i>
<i>ch−a phải là một ngành khoa học. Với sự phát triển của khoa học kỹ </i>
<i>thuật và công nghệ, cùng với các nhu cầu đặc biệt có liên quan tới an </i>
<i>tồn thơng tin, ngày nay các kỹ thuật chính trong an tồn thơng tin bao </i>
<i>gồm: Kỹ thuật mật mã (Cryptography), Kỹ thuật nguỵ trang </i>
<i>(Steganography), Kỹ thuật tạo bóng mờ (Watermarking - hay xăm điện </i>
<i>tử). Kỹ thuật mật mã nhằm đảm bảo ba dịch vụ an tồn cơ bản:Bí mật </i>
<i>(Confidential), Xác thực (Authentication), Đảm bảo tính tồn vẹn </i>
<i>(Integrity). Có thể thấy rằng mật mã học là một lĩnh vực khoa học rộng </i>
<i>lớn có liên quan rất nhiều đến tốn học nh−: Đại số tuyến tính, Lý </i>
<i>thuyết thơng tin, Lý thuyết độ phức tạp tính tốn…. </i>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<i>Hy vọng cuốn sách sẽ là tài liệu tham khảo hữu ích cho giảng </i>
<i>viên, sinh viên các tr−ờng đại học về kỹ thuật và công nghệ. </i>


<i>Xin trân trọng gii thiu cựng bn c. </i>


<i>Hà Nội, ngày 23 tháng 10 năm 2003 </i>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>thuật ngữ viết tắt </b>



<b>DES </b> Data Encryption Standard Chn m· d÷ liƯu
<b>LAN </b> Local Area Network M¹ng cơc bé


<b>MDV </b> MÃ dịch vòng



<b>MTT </b> MÃ thay thế


<b>MHV </b> MÃ hoán vị


<b>ECB </b> Electronic Code Book Chế độ quyển mã điện tử
<b>CFB </b> Cripher Feedback Chế độ phản hồi mã
<b>CBC </b> Cripher Block Chaining Chế độ liên kết khối mã
<b>RSA </b> Rivest - Shamir - Adleman


<b>MAC </b> Message Authentication Code Mã xác thực thông báo
<b>OWHF </b> Oneway Hash Funtion Hàm băm một chiều
<b>CRHF </b> Collision Resistant hash function Hàm băm khó va chạm
<b>MDC </b> Manipulation Detection Code Mã phát hiện sự sửa đổi
<b>LSB </b> Least Signification Bit Bit thấp nhất (có giá trị nhỏ


nhÊt


<b>Header </b> Tiêu đề


<b>IDEA </b> International Data Encryption
Algorithm


Thuật toán mà hóa dữ liÖu
quèc tÕ


<b>PGP </b> Pretty Good Privacy ThuËt to¸n m· hãa PGP
<b>SET </b> Secure Electronic Transaction Giao dịch điện tử an toàn
<b>LFSR </b> Linear Feedback Sequence


Register



Thanh ghi håi tiÕp tuyÕn tÝnh


<b>Firewall </b> Bøc t−êng lưa


<b>Server </b> M¸y chđ


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

PhÇn I



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>bỉ tóc vỊ lý thuyết số </b>



<b>1.1. Số nguyên </b>


Tập các số nguyên

{

<sub>K</sub>,3,2,1,0,1,2,3,<sub>K</sub>

}

=Z.


<b>1.1.1. §Þnh nghÜa 1.1 </b>


Cho a,b∈Ζ


a lμ−íc cđa b nÕu ∃c∈Z:b=a.c. Ký hiƯu lμ ab.


<b>1.1.2. C¸c tÝnh chÊt chia hÕt </b>


Ζ


∀a,b,c ta cã:
(i)aa.


(ii) NÕu abvμ cb th× ac.



(iii) NÕu ba vμ ca th× a

(

bx +cy

)

víi ∀x,y∈Z.
(iv) NÕu abvμ ab th× a=±b.


<b>1.1.3. Định nghĩa 1.2 (Thuật tốn chia đối với các số nguyên) </b>


NÕu a vμ b lμ c¸c sè nguyên với b1
thì a=qb+r; 0r<b


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

PhÇn d− cđa phÐp chia a vμ b đợc ký hiệu amodb=r
Thơng của phép chia a v b đợc ký hiệu adivb=q


Ta có .


b
a
b
a
b
mod
a
,
b
a
b
div
a








=





=


<i>Ví dô: </i>a = 73, b = 17.


73 div 17 = 4, 73 mod 17 = 5.


<b>1.1.4. Định nghĩa 1.3 (Ước chung) </b>


c lớc chung của a v b nếu ca&cb.


<b>1.1.5. Định nghĩa 1.4 (Ước chung lớn nhất (ƯCLN)) </b>


Số nguyên dơng d l ƯCLN của các số nguyên a v b (Ký
hiệu d = (a, b)) nÕu:


(i) d lμ−íc chung cđa a vμ b.
(ii) NÕu cã cavμ cb th× cd.


Nh vậy (a,b) l số nguyên dơng lớn nhất ớc của cả a v b
không kể (0,0) = 0.



<i>VÝ dơ: C¸c </i>−íc chung cđa 12 vμ 18 lμ

{

±1,±2,±3,±6

}


(12,18) = 6


<b>1.1.6. Định nghĩa 1.5 (Bội chung nhỏ nhất (BCNN)) </b>


Số nguyên dơng d l BCNN của các số nguyên a vμ b (Ký
hiÖu d = BCNN (a,b)) nÕu:


(i) ad,bd.


(ii) Nếu có ac, bc thì dc.


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<i>Chơng 1: Bỉ tóc vỊ lý thut sè</i> 11


<b>1.1.7. TÝnh chÊt </b>


( ) ( )

a,b
b
.
a
b
,
a
BCNN =


<i>VÝ dô: </i>

(

)

(

)

36


6
18
.


12
18
,
12
BCNN
6


18
,


12 = = =

.



<b>1.1.8. Định nghĩa 1.6 </b>


Hai số nguyên dơng a v b đợc gọi l nguyên tố cùng nhau
nếu: (a,b) = 1.


<b>1.1.9. Định nghĩa 1.7 </b>


Số nguyênp2đợc gọi l số nguyên tố nếu các ớc dơng
của nó chỉ l 1 v p. Ngợc lại p đợc gọi l hợp số.


<b>1.1.10. Định lý cơ bản của số học </b>


Với mỗi số nguyên n2 ta luôn phân tích đợc dới dạng
tích của luỹ thừa của các số nguyªn tè.


k
2



1 e


k
e
2
e


1 p p


p


n= <sub>K</sub>


Trong đó p<sub>i</sub> lμ các số nguyên tố khác nhau vμ e<sub>i</sub> lμ các số
nguyên d−ơng. Hơn nữa phân tích trờn l duy nht.


<b>1.1.11. Định nghĩa 1.8 </b>


Vi n ≥2, hμm Φ

( )

n đ−ợc xác định lμ số các số nguyên trong
khoảng

[ ]

1,n nguyên tố cùng nhau với n.


<b>1.1.12. C¸c tÝnh chÊt cđa hμm </b>Φ<b>(n) </b>


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

(iii) NÕu 1 2 ek


k
e
2
e



1 p p


p


n= <sub>K</sub> lμ ph©n tÝch ra thõa sè nguyªn tè
cđa n th×:


( )

<sub>⎟⎟</sub>


⎜⎜



⎟⎟


⎜⎜



⎟⎟


⎜⎜



=
Φ

k
2
1 p
1
1
p
1
1
p
1
1
n


n <sub>K</sub> .


<b>1.1.13. Định lý 1.1 </b>


Với n5 thì

( )


)
n
(ln
ln
6
n
n >
Φ


<b>1.2. c¸c thuËt to¸n trong z </b>



Cho a v b l các số nguyên không âm v nhỏ hơn hoặc bằng
n. Cần chú ý rằng số các bit trong biểu diễn nhị phân cña n lμ


[lgn] + 1 vμ số nμy xấp xỉ bằng lgn. Số các phép toán bit đối với
bốn phép toán cơ bản trên các số lμ cộng, trừ, nhân vμ chia sử
dụng các thuật toán kinh điển đ−ợc tóm l−ợc trên bảng 1.1. Các kỹ
thuật tinh tế hơn đối với các phép toán nhân vμ chia s cú phc
tp nh hn.


<i>Bảng 1.1: Độ phức tạp bit của các phép toán cơ bản trong Z </i>


<b>Phép toán </b> <b>Độ phức tạp bit </b>


Cộng a + b 0(lga + lgb) = 0(lgn)
Trõ a – b 0(lga + lgb) = 0(lgn)
Nh©n a.b 0((lga).(lgb)) = 0((lgn)2<sub>) </sub>


Chia a = qb + r 0((lga).(lgb)) = 0((lgn)2<sub>)</sub>


ƯCLN của 2 số nguyên a vμ b có thể c tớnh theo nh lý sau:


<b>1.2.1. Định lý 1.2 </b>


NÕu 1 2 k 1 2 fk


k
f
2
f
1


e
k
e
2
e


1 p p ,b p p ...p


p


a= <sub>K</sub> = trong đó e<sub>i</sub> ≥0,f<sub>i</sub> ≥0
thì

( )

( 1 1) ( 2 2) min(ek,fk)


k
f
,
e
min
2
f
,
e
min


1 p p


p
b
,
a



CLN = <sub>K</sub>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<i>Ch−¬ng 1: Bỉ tóc vỊ lý thut sè</i> 13

( )

(1 1) ( 2 2) max(ek,fk)


k
f
,
e
max
2
f
,
e
max


1 p p


p
b
,
a


BCNN = <sub>K</sub> .


<i>Ví dụ: Cho a = 4864 = 28.19; b = 3458 = 2.7.13.19. Khi đó: </i>


( ) (

)




( ) (

a,b 4864,3458

)

2 .7.13.19 442624.
BCNN
38
19
.
2
3458
,
4864
b
,
a
CLN
8 <sub>=</sub>
=
=
=
=
=


<b>1.2.2. Định lý 1.3 </b>


Nếu a v b l các số nguyên dơng với a>b thì ƯCLN(a,b) =
ƯCLN (b,a mod b). Thuật toán Euclide sau sẽ cho ta cách tính
ƯCLN rất hiệu quả m không cần phải phân tÝch ra thõa sè
nguyªn tè.


<b>1.2.3. Thuật toán Euclide </b>



Tính ƯCLN của 2 số nguyên


Vo : Hai số nguyên không âm a v b víi a > b
Ra : ¦CLN cđa a vμ b.


(1) While b≠0 do


r
b
,
b
a
,
b
mod
a


r← ← ←


(2) Return (a).


<b>1.2.4. Định lý 1.4 </b>


Thuật toán trên có thời gian chạy chừng 0(

( )

lgn 2) các phép
toán bit.


<i>Ví dụ: Sau đây l</i> các bớc chia của thuật toán trên khi tính:


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Thuật tốn trên có thể đ−ợc mở rộng để khơng những chỉ
tính đ−ợc ƯCLN của 2 số nguyên a vμ b mμ cịn tính đ−ợc các số


ngun x vμ y thoả mãn ax+by=d.


<b>1.2.5. ThuËt to¸n Euclide më rộng </b>


Vo : Hai số nguyên không âm a v b với ab


Ra : d = ƯCLN(a,b) v các sè nguyªn x vμ y tháa m·n
ax+by=d.


(1) Nếu b= 0 thì đặt d ←a , x←1 , y←0 vμ return (d, x, y)
(2) Đặt x<sub>2</sub> ←1, x<sub>1</sub> ←0, y<sub>2</sub> ←0, y<sub>1</sub>←1


(3) While b > 0 do


(3.1) q←

a/b

,r←a−qb,x←x<sub>2</sub>−qx<sub>1</sub>,y←y<sub>2</sub>−qy<sub>1</sub>
(3.2) a←b, b←r, x<sub>2</sub> ←x<sub>1</sub>, x<sub>1</sub>←x, y<sub>2</sub> ←y<sub>1</sub>, y<sub>1</sub> y
(4) Đặt da,xx<sub>2</sub>,yy<sub>2</sub> v v return (d, x, y).


<b>1.2.6. Định lý 1.5 </b>


Thuật toán trên có thời gian chạy cỡ 0((lgn)2<sub>) các phép toán bit.</sub>
<i>Ví dụ: Bảng 1.2 sau chỉ ra các b</i>ớc của thuật toán trên với
các giá trị vo a = 4864 v b = 3458


<i>Bảng 1.2: Thuật toán Euclide mở rộng </i>


<b>Q r x y </b> <b>a </b> <b>b </b> <b>x2 </b> <b>x1 </b> <b>y2 </b> <b>y1 </b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<i>Ch−¬ng 1: Bổ túc về lý thuyết số</i> 15
Với các đầu vμo a = 4864 vμ b = 3458



Bëi vËy ta cã:


¦CLN(4864,3458) = 38 vμ (4864)(32) + (3458)(-45) = 38.
<b>1.3. Các số nguyên modulo n </b>


<b>1.3.1. Định nghÜa 1.9 </b>


Nếu a vμ b lμ các số nguyên thì a đ−ợc gọi lμ đồng d− với b
theo modulo (ký hiệu lμ a = b mod n) nếu n

(

a−b

)

.


Số nguyên n đ−ợc gọi lμ modulo đồng d−.
<i>Ví dụ: </i>24≡9mod5vì 24 – 9 = 3.5


1117mod7 vì 1117= 4.7.


<b>1.3.2. Các tính chất </b>


Đối víi a,a<sub>1</sub>,b,b<sub>1</sub>,c∈Ζ ta cã:


(1) a≡b

(

modn

)

nÕu vμ chØ nÕu a vμ b cịng cã phÇn d− khi
chia cho n.


(2) Tính phản xạ: aa

(

modn

)

.


(3) Tớnh i xng: Nu ab

(

modn

)

thì b≡a

(

modn

)


(4) Tính bắc cầu: Nếu a≡b

(

modn

)

vμ b≡c

(

modn

)


thì a≡c

(

modn

)



(5) NÕu a≡a<sub>1</sub>

(

modn

)

vμ b≡b<sub>1</sub>

(

modn

)

th×

a+b≡a<sub>1</sub>+b<sub>1</sub>

(

modn

)

vμ a.b≡a<sub>1</sub>.b<sub>1</sub>

(

modn

)



</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

NÕu a = qn + r víi 0≤r≤n th× a≡r

(

modn

)

.


Bởi vậy mỗi số ngun a lμ đồng d− theo modulo n với một số
nguyên duy nhất nằm trong khoảng từ 0 tới n - 1, số nμy đ−ợc gọi
lμ thặng d− tối thiểu của a mod n. Nh− vậy a vμ r có thể đ−ợc
dùng để biểu thị cho lớp t−ơng đ−ơng ny.


<b>1.3.3. Định nghĩa 1.10 </b>


Các số nguyên modulo n (ký hiệu Z<sub>n</sub>) l tập (các lớp tơng
đơng) của các số nguyên

{

0,1,2,<sub>K</sub>,n1

}

. Các phép cộng, trừ, nhân
trong Zn ®−ỵc thùc hiƯn theo modulo n.


<i>VÝ dơ: </i> Z<sub>25</sub> =

{

0,1,<sub>K</sub>,24

}

. Trong

Z

<sub>25</sub> ta cã:
13 + 16 = 4 vì 13+16=294

(

mod25

)


Tơng tự 13.16 = 8 trong Z25.


<b>1.3.4. Định nghĩa 1.11 (Phần tử nghịch đảo) </b>


Cho a∈Z<sub>n</sub>, Phần tử nghịch đảo (ng−ợc theo phép nhân) của
a mod n lμ một số nguyênx∈Z<sub>n</sub>sao cho: ax≡1

(

modn

)



Nếu x tồn tại thì nó lμ duy nhất, a đ−ợc gọi lμ khả nghịch.
Phần tử nghịch đảo của a đ−ợc ký hiu l a1<sub>. </sub>


<b>1.3.5. Định nghĩa 1.12 </b>


Phộp chia của a cho bmodnlμ tích của a vμ b−1<sub> mod n tích </sub>


nμy đ−ợc xác định nếu b lμ phn t kh nghch


<b>1.3.6. Định lý 1.6 </b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<i>Ch−¬ng 1: Bỉ tóc vỊ lý thut sè</i> 17


<b>1.3.7. §Þnh lý 1.7 </b>


Cho d = (a,n). Ph−ơng trình đồng d− ax≡b

(

modn

)

có nghiệm
x nếu vμ chỉ nếu db, trong tr−ờng hợp nμy có đúng d nghiệm nằm
giữa 0 vμ n - 1, những nghiệm nμy lμ tất c cỏc ng d theo
modulo nd.


<b>1.3.8. Định lý 1.8 (PhÇn d− China) </b>


Nếu các số nguyên n<sub>1</sub>,n<sub>2</sub>,<sub>K</sub>,n<sub>k</sub> lμ ngun tố cùng nhau từng
đơi một thì hệ các ph−ơng trình đồng d−:




(

)



(

)



(

k

)



k


2
2



1
1


n
mod
a


x


....
...
...


n
mod
a


x


n
mod
a


x







sÏ cã nghiÖm duy nhÊt theo modulo n

(

n = n<sub>1</sub>.n<sub>2</sub><sub>K</sub>n<sub>k</sub>

)

.


<b>1.3.9. ThuËt to¸n Gausse </b>


Nghiệm x của hệ ph−ơng trình đồng d− trong định lý phần
d− China có thể đ−ợc tính bằng:



=


= k


1
i


i
i


iN M mod n


a
x


Trong đó: N<sub>i</sub> =n/n<sub>i</sub>vμ M<sub>i</sub> = N<sub>i</sub>1mod n<sub>i</sub>


Các tính toán ny có thể đợc thực hiện trong 0(

( )

lgn2) các
phép toán trên bit.


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>1.3.10. Định lý 1.9 </b>



Nu

(

n<sub>1</sub>,n<sub>2</sub>

)

=1 thỡ cp phng trình đồng d−.
x ≡ a

(

mod n<sub>1</sub>

)

, x ≡ a

(

mod n<sub>2</sub>

)



cã mét nghiÖm duy nhất x a

(

mod n<sub>1</sub>,n<sub>2</sub>

)

.


<b>1.3.11. Định nghĩa 1.13 </b>


Nhóm nh©n cđa Z l<sub>n</sub> μ Z<sub>n</sub>* =

{

a∈Z<sub>n</sub>

( )

a,n =1

}



Đặc biệt, nếu n l số nguyên tố thì Z<sub>n</sub>* =

{

a 1an1

}

.


<b>1.3.12. Định nghĩa 1.14 </b>


Cấp của Z l*<sub>n</sub> số các phần tử trong Z (ký hiÖu *<sub>n</sub> Z ) *n


Theo định nghĩa của hμm Phi-Euler ta thấy:
Z*<sub>n</sub> =Φ

( )

n


Cần để ý rằng nếu a∈Z<sub>n</sub>* vμ b∈Z<sub>n</sub>* thì a,b∈Z*<sub>n</sub> vμ bởi vậy


*
n


Z lμ đóng đối với phộp nhõn.


<b>1.3.13. Định lý 1.10 </b>


Cho p l một số nguyên tố:


(1) Định lý Euler: Nếu aZ<sub>n</sub>* thì aΦ( )n ≡1

(

mod n

)

.


(2) NÕu n lμ tÝch cña các số nguyên khác nhau v nếu

( )



(

mod n

)


s


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<i>Ch−¬ng 1: Bỉ tóc vỊ lý thut số</i> 19


<b>1.3.14. Định lý 1.11 </b>


Cho p l một số nguyên tố:


(1) Định lý Ferma: Nếu

( )

a,p =1 thì ap−1 ≡1

(

mod p

)

.


(2) Nếur ≡s

(

mod p−1

)

thì ar ≡ as

(

mod p

)

đối với mọi số
nguyên a. Nói một cách khác khi lμm việc với modulo của một số
ngun tố p thì các luỹ thừa có thể đ−ợc rỳt gn theo modulo p - 1.


(3) Đặc biệt ap ≡ a

(

mod p

)

víi mäi sè nguyªn a.


<b>1.3.15. §Þnh nghÜa 1.15 </b>


Cho a∈Z*<sub>n</sub>. CÊp cđa a (ký hiƯu l ord

( )

a ) l số nguyên dơng
nhỏ nhất t sao cho at 1

(

mod n

)

.


<b>1.3.16. Định nghĩa 1.16 </b>


Cho a∈Z*<sub>n</sub>,ord

( )

a =t vμ as ≡1

(

mod n

)

khi đó t lμ −ớc của
s. Đặc biệt t Φ

( )

n .


<i>Ví dụ: Cho n = 21, khi đó </i>


Z<sub>21</sub>* =

{

1,2,4,5,8,10,11,13,16,17,19,20

}



Chó ý r»ng Φ

( )

21 = Φ

( ) ( )

7 Φ 3 = 12 = Z<sub>21</sub>* . Cấp của các
phần tử trong Z*<sub>21</sub> đợc nêu trong bảng sau:


<i>Bảng 13: Cấp của các phần tử trong </i>Z*<sub>21</sub>


*
21


Z


a∈ 1 2 4 5 8 10 11 13 16 17 19 20


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>1.3.17. §Þnh nghÜa 1.17 </b>


Cho α∈Z<sub>n</sub>* . NÕu cÊp cđa

l

( )

n thì đợc gọi l phần
tử sinh hay phần tử nguyên thủy của Z . NÕu *<sub>n</sub> Z cã mét phÇn tư *<sub>n</sub>
sinh thì Z đ*<sub>n</sub> ợc gọi l cyclic.


<b>1.3.18. Các tính chất của các phần tử sinh của </b>

Z

*<sub>n</sub>


(1)

Z

*<sub>n</sub> cã phÇn tư sinh nÕu vμ chØ nÕu n=2,4,pk hc lμ


k


p



2 , trong đó p lμ một số ngun tố lẻ vμ k≥1. Đặc biệt, nếu p lμ


mét sè nguyên tố thì

Z

*<sub>n</sub> có phần tử sinh.
(2) Nếu

l một phần tử sinh của

Z

*<sub>n</sub>thì:
Z<sub>n</sub>* ={αimodn 0≤i≤Φ

( )

n −1}


(3) Giả sử rằng α lμ một phần tử sinh của

Z

*<sub>n</sub>, khi đó
n


mod


b = αi cịng lμ mét phÇn tư sinh cña

Z

*<sub>n</sub> nÕu vμ chØ nÕu

( )



(

i,Φn

)

=1. Từ đó ta rút ra rằng nếu

Z

*<sub>n</sub> lμ cyclic thì số các phần
tử sinh lμ Φ

(

Φ

( )

n

)

.


(4)

α

Z

*n lμ mét phÇn tư sinh cđa
*
n


Z

nÕu vμ chØ nÕu


( )n /p <sub>≠</sub><sub>1</sub>

<sub>(</sub>

<sub>mod</sub><sub>n</sub>

<sub>)</sub>



αΦ đối với mỗi nguyên tố p của Φ

( )

n .


<i>Ví dụ: </i>

Z

*<sub>21</sub> không l cyclic vì nó không chứa mét phÇn tư cã
cÊp Φ

( )

21 =12 (Chó ý rằng 21 không thỏa mÃn điều kiện (1) ở trên).


*
25


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<i>Ch−¬ng 1: Bỉ tóc vỊ lý thut số</i> 21


<b>1.3.19. Định nghĩa 1.18 </b>


Cho aZ*<sub>n</sub>, a đợc gọi l thặng d bậc hai modulo n (hay
bình phơng cđa modulo n) nÕu tån t¹i x∈Z*<sub>n</sub> sao cho


(

modn

)


a


x2 ≡ . Nếu khơng tồn tại x nh− vậy thì a đ−ợc gọi lμ thặng
d− không bậc hai mod n. Tập tất cả các thặng d− bậc hai modulo
n đ−ợc ký hiệu lμ Q<sub>n</sub>, còn tập tất cả các thặng d− không bậc hai
đ−ợc ký hiệu lμ Q . Cần chú ý rằng theo định ngha <sub>n</sub> 0Z*<sub>n</sub>. Bi
vy 0Q<sub>n</sub>v 0Q<sub>n</sub> .


<b>1.3.20. Định lý 1.12 </b>


Cho p l một số nguyên tố lẻ vμ α lμ mét phÇn tư sinh cđa


*
p


Z . Khi đó a∈Z*<sub>p</sub> lμ một thặng d− bậc hai modulo p nếu vμ chỉ
nếu a = αi mod p, trong đó i lμ một số nguyên chẵn. Từ đó rút ra
rằng

(

)




2
1
p


Q<sub>p</sub> = − vμ

(

)


2


1
p


Q<sub>p</sub> = − , tøc lμ mét nưa sè phÇn tư trong


*
p


Z l các thặng d bậc hai v nửa còn lại thặng d không bậc hai.
<i>Ví dụ: </i>=6 l một phần tử sinh của

Z

*<sub>13</sub>. Các lũy thừa của


đợc liệt kê ở bảng sau:


i 0 1 2 3 4 5 6 7 8 9 10 11


αi<sub> mod 13</sub> <sub>1 6 10</sub> <sub>8 9 2 12</sub> <sub>7 3 5 4 11 </sub>


Bëi vậy Q<sub>13</sub> ={1,3,4,9,10,12}, Q<sub>13</sub> ={2,5,6,7,8,11}.
<b>1.3.21. Định lý 1.13 </b>


Cho n lμ tích của hai số nguyên tố lẻ khác nhau q vμ p,
n = p.q, khi đó a∈Z*<sub>n</sub> lμ một thặng d− bậc hai modulo n nếu vμ chỉ


nếu a∈Q<sub>p</sub>vμ a∈Q<sub>p</sub>. Điều đó dẫn tới

(

)(

)



4
1
q
1
p
Q
.
Q


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

(

)(

)


4
1
q
1
p
3


Q<sub>n</sub> = − −


<i>Ví dụ: Cho n = 21. Khi đó </i>


Q<sub>21</sub> ={1,4,16} Q<sub>21</sub> ={2,5,8,10,11,13,17,19,20}


<b>1.3.22. Định nghĩa 1.19 </b>


Cho aQ<sub>n</sub>. Nếu xZ*<sub>n</sub>thỏa mÃnx2 a

(

modn

)

thì x đợc gọi
l căn bậc hai của a mod n.



<b>1.3.23. Định lý 1.14 (Số các căn bậc hai) </b>


(1) Nếu p l một số nguyên tố lẻ v aQ<sub>n</sub>thì a đợc gọi l


căn bậc hai theo modulo p.


(2) Tổng quát hơn, cho 1 2 ek


k
e
2
e


1 p p


p


n= <sub>K</sub> , trong đó p<sub>i</sub> lμ các số
nguyên tố lẻ phân biệt vμ e<sub>i</sub> ≥1. Nếu a∈Q<sub>n</sub>thì có đúng 2k<sub> căn bậc </sub>
hai khác nhau theo modulo n.


<i>Ví dụ: Các căn bậc 2 của 12 mod 37 l</i> 7 v 30. Các căn bậc 2
của 121 mod 315 lμ 11, 74, 101, 151, 164, 214, 241 vμ 304.


<b>1.4. C¸c thuËt to¸n trong Zn</b>


Cho n l một số nguyên dơng. Các phần tử của Z<sub>n</sub> sẽ đợc
biểu thị bởi các số nguyên Q<sub>21</sub> =

{

0,1,2,...,n1

}

.


Ta thÊy r»ng, nÕu a,b∈Z<sub>n</sub>th×



(

)






+

+
<
+
+
=
+
n
b
a
r
b
a
n
b
a
b
a
n
mod
b
a



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<i>Ch−ơng 1: Bổ túc về lý thuyết số</i> 23
phần d− của kết quả sau khi chia cho n. Các phần tử nghịch đảo
trong Zn có thể đ−ợc tính bằng cách dùng thuật tốn Euclide mở
rộng đ−ợc mơ tả d−ới đây:


<b>1.4.1. Thuật tốn (Tính các nghịch đảo trong Z<sub>n</sub>) </b>


Vμo : a∈Z<sub>n</sub>.


Ra : a−1modn(nÕu tån t¹i).


(1) Dùng thuật tốn Euclide mở rộng để tìm các số nguyên x
vμ y sao cho ax + ny = d trong đó d = (a,n).


(2) NÕu d > 1 thì a1<sub> mod n không tồn tại. Ng</sub><sub></sub><sub>ợc lại return (x). </sub>
Phép lũy thừa theo modulo có thể đợc thực hiện có hiệu quả
bằng thuật toán nhân v bình phơng có lặp. Đây l một thuật
toán rất quan träng trong nhiỊu thđ tơc mËt m·. Cho biĨu diễn
nhị phân của k l:




=


t


0
i


i


i2


k trong ú mi k<sub>i</sub>∈

{ }

0,1 khi đó


( ) ( ) ( )

0 0 1 1 t t


i


k
2
k
2
k
2
t


0
i


i
k


k <sub>a</sub> <sub>2</sub> <sub>a</sub> <sub>a</sub> <sub>a</sub>


a =

= <sub>K</sub>


=


<b>1.4.2. Thuật tốn nhân vμ bình ph−ơng có lặp để lấy luỹ </b>
<b> thừa trong Zn</b>



Vμo: a∈Z<sub>n</sub>vμ sè nguyªn k,

(

0≤k<n

)

có biểu diễn nhị phân:



=


= t


0
i


i
i2


k
k


Ra: ak<sub> mod n. </sub>


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

(3) Nếu k<sub>0</sub> = 1 thì đặt b←a.
(4) For i from 1 to t do


(4.1) §Ỉt A←A2modn


(4.2) Nếu k<sub>i</sub> =1 thì đặt b←A.bmodn
(5) Return (b).


<i>Ví dụ: Bảng 1.4 sau chỉ ra các b</i>ớc tính to¸n
5596mod1234 =1013



<i>B¶ng 1.4: TÝnh 5596<sub> mod 1234</sub></i>


<b>i 0 1 2 3 4 5 6 </b> <b>7 8 </b> <b>9 </b>


ki 0 0 1 0 1 0 1 0 0 1


A 5 25 625 681 1011 369 421 779 947 925
b 1 1 625 625 67 67 1059 1059 1059 1013


Số các phép toán bit đối với phép toán cơ bản trong Z<sub>n</sub> đ−ợc
tóm l−ợc trong bảng 1.5.


<i>Bảng 1.5: Độ phức tạp bit của các phép toán cơ bản trong Z<sub>n</sub></i>


<b>Phép toán </b> <b>Độ phức tạp bit </b>


Céng modulo a + b 0(lgn)
Trõ modulo a - b 0(lgn)
Nh©n modulo a.b 0((lgn)2<sub>) </sub>


Nghịch đảo modulo a-1<sub> mod n </sub> <sub>0((lgn)</sub>2<sub>) </sub>


Lòy thõa modulo ak<sub> mod n, k < n </sub> <sub>0((lgn)</sub>3<sub>) </sub>


<b>1.5. c¸c ký hiƯu legendre vμ jacobi </b>


</div>

<!--links-->

×