1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Mã hóa thông tin với java (tập 2 mã hóa mật mã) phần 1

48 4 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mã Hóa Thông Tin Với Java (Tập 2 Mã Hóa Mật Mã) Phần 1
Tác giả Nguyen Dinh Thuc, Bui Doan Khanh, Tran Dan Thu
Trường học Nhà Xuất Bản Lao Động Xã Hội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tài Liệu
Năm xuất bản 2006
Thành phố Sài Gòn
Định dạng
Số trang 48
Dung lượng 8,12 MB

Nội dung

Trang 1

MA HOA THONG TIN

Trang 3

LOI NOI DAU 3 f°

LOI NOI DAU

Tài liệu này được chia làm hai tập: Tập 1: Java căn bản; Tập 2: Mã hóa - Mật mã, được viết nhằm giúp đỡ các sinh viên Công nghệ Thơng tin, Tốn - Tin học và các chuyên viên Tin học nghiên cứu về mã hóa thông tin và ứng dụng của nó

Tập 2 cung cấp các kiến thức liên quan đến các chủ đề:

-_ Cơ sở toán học của mã hóa Nội dung chú trọng đến ứng dụng, vì thế, chỉ những định lý quan trọng mới được chứng minh

- _ Số học và thuật toán Trình bày các bài toán quan trọng trong lý thuyết

số ứng dụng vào mã hóa thông tin

-_ Mã Hóa và ứng dụng Trình bày, phân tích các hệ mã và các ứng dụng của nó trong mã hóa thông tin điện tử

- _ Các chủ đề liên quan đến chữ ký điện tử và bảo mật cơ sở dữ liệu

Các khái niệm toán học được trình bày một cách cô đọng, dễ hiểu Các

thuật toán được trình bày chỉ tiết và thường kèm theo các ví dự minh họa rõ ràng; tuy nhiên, bạn đọc nên thử lại các thuật toán này bằng các công cụ

toán học như Mathematica, Mapple để có thể nắm bắt được tinh thần của

phương pháp trước khi cài đặt bằng Java hoặc các ngôn ngữ lập trình khác

Kính mong bạn đọc và quý đồng nghiệp góp ý phê bình để chúng tôi có

thể cải tiến tốt hơn trong các lần xuất bản sau

Sài Gòn, tháng 10 năm 2006

Trang 4

a? 4 THU NGO

THU NGO

Kinh thua quy Ban doc gan xa!

Trước hết, Ban xuất bản xin bày tỏ lòng biết ơn và niềm vinh hạnh được đông đảo Bạn đọc nhiệt tình ủng hộ tủ sách MK.PUB

Trong thời gian qua chúng tôi rất vui và cảm ơn các Bạn đã gửi e-mail đóng góp nhiều ý kiến quý báu cho tủ sách

Mục tiêu và phương châm phục vụ của chúng tơi là:

© _ Lao động khoa học nghiêm túc

» _ Chất lượng và ngày càng chất lượng hơn e _ Tất cả vì Bạn đọc

Một lần nữa, Ban xuất bản MK.PUB xin kính mời quý Bạn đọc tiếp tục

tham gia cùng chúng tôi để nâng cao chất lượng sách Cụ thể:

Trong quá trình sử dụng sách, nếu quý Bạn phát hiện thấy bất kỳ sai sót

nào (dù nhỏ) xin đánh dấu, ghi chú nhận xét ý kiến của Bạn ra bên cạnh

rồi gửi cuốn sách này cho chúng tôi theo địa chỉ:

Nhà sách Minh Khai

249 Nguyễn Thị Minh Khai, Q.I, Tp Hồ Chí Minh

E-mail: mk.book@minhkhai.com.vn hoặc mk.pub@minhkhai.com.vn

Chúng tôi xin hoàn lại cước phí bưu điện và gửi trả lại Bạn cuốn sách cùng tên Ngoài ra chúng tôi còn gửi tặng Bạn một cuốn sách khác trong tủ

sách MK.PUB Bạn có thể chọn cuốn sách này theo danh mục thích hợp

sẽ gửi tới Bạn

Với mục đích ngày càng nâng cao chất lượng tủ sách MK.PUB, chúng tôi rất mong nhận được sự hợp tác nhiệt tình của quý Bạn đọc gần xa

'MK.PUB cùng Bạn đọc đồng hành” đề nâng cao chất lượng sách

Một lần nữa chúng tôi xin chân thành cảm ơn

Trang 5

MỤC LỤC s MỸ? MỤC LỤC LOI NOLBAU sssscisesccsstsssssscasscvvsveesstssansccosveaseevsvsanveussacceecconsvepsosaxscavscccssesenes 3 11c ố 3 MỤC LỰC oocececesssseosiseeoLDiEioH01 ncu0080480103161401401018Q:001830011 306 5 Chương 1: KIẾN THỨC CƠ SỞ SSviiiiiiirrriiiirree 9 ca ôn 9

IL,SỐ NGUYÊN ;iznbsoEidttiabgisigBliiecÐiltb)gfn@prttsasitiasssea 12

lI.1 Phép chia EUClÍ ieooeseoinikiA An dàn He 12

II.2 Số nguyên tố 13

1.3, Phép tính trên VaNh Zyrecsscccsssseessnssssssecssevsssssssnsssscssesssesessssseeensenee 14 IIL DINH LY FERMAT NHO v ,.cccssssscessssccccssssssnseseereeseseeeserssensnnnnesesseeees 16

iV BINH LÝ EULEP caccnuanemnnmimemmmananornacnannn 17

V.ĐỊNH LÝ SỐ DƯ TRUNG HOA -:-:- 22 2221212222212 20

BÀI TẬP GHƯƠNG T ga cöờ gi gng tabS00016402S0108 QhữyG H538 804460 22

Chương 2: TRƯỜNG HỮU HẠN -.oococcessrrrrrrtrrriiiiiirirrre 23 | CẤU TRÚC NHÓM ni BOOD06010100018608040 16 23 I.1 Phép tốn 2 ngơi -+e ch nhe 23 12 Nhóm và Nhóm con 24

1.3 Nhóm đơn sinh - - 5à Scằeieieiieire 26

II, VÀNH, MIỀN NGUYÊN, TRƯỜNG 26

HAA, C&U tr 0/0 07 27 II.2 Miền nguyên -ccccnhhtrrthhhHhhhhH Hư 27

Trang 6

đĐ°s MỤC LỤC

II.4 Đặc số nguyên tố của trường -sc 2s 1022111111212 sxe 29 III TÍNH CHẤT CỦA TRƯỜNG HỮU HẠN 22200EEnnneeirrre 30

IV VE DỤ ÁP DỤNG, cc5c622221111111111121T.2EEEEEEErreeeee 34

IV.1 Định lý Fermat nhỏ - +©-e2sz‡ESEE2E115111112215221501212215 152 34

IV.2 Mã hóa dựa vào nhóm 2©++2St1E1225512512551222221.2155 34

BÀI TẬP CHƯƠNG 2 ccccccccssssssssssssssssssssescesssssasessesseececessssscsseee 36

Chương 3: TÍNH TỐN SỐ LỚN -.2 37

I CÁC PHÉP TOÁN SỐ HỌC DỰA TRÊN BIỂU DIỄN NHỊ PHÂN 37

I1 Biểu diễn nhị phân

12 Thuật giải biểu diễn cơ sở nhị phân -.e5cccscris ,38)

1.3 Thuật giải cộng hai số nguyên dương - -s ©cscczxvzrzex 38

1.4 Thuật giải trừ hai số nguyên dương .- -‹.-¿ -2:c++2:zxvsscei 38 1.5 Phép cộng và trừ [mod] . -¿22c+xs+2cxkesrtrErveerrrrrrre, 39 D1 0 0 aaa 39 s27 .1, 0n 40 II CÁC PHÉP TOÁN SỐ HỌC DỰA TRÊN CƠ SỞ B 41 HLT, Cộng hai số nguyên 5c c 2nn1H.1112111111110111 1111 xxx, 41 HÀ Trừ 9 SỐ DgUIÊH cusunginno b0 An go 2142 sseeereroesseee 42 IB, Nhân hai số nguyên c1 110111011 xe se 43

Il MỘT SỐ PHƯƠNG PHÁP TÍNH NHANH TRÊN SỐ LỚN 44 III.1 Nhân số lớn III.2 Phép mod và phép chia III.3 Phương pháp số dư Trung Hoa BÀI TẬP CHƯƠNG 3

Chương 4: CÁC BÀI TOÁN QUAN TRỌNG TRONG LÝ THUYẾT SỐ

Trang 7

MỤC LỤC 7

[EAs PED WHY MUR scxvcssvvercaseccssipesscevccrssevvcscoveavsresactvsusessscencepensnnneanngnnee 49 1.2 Phép thf Rabin-Miller .secccccsssesssesssseceessssescesssecsenssneecennnneeetnnaes 51

1.3 TAO SO NQUYEM AO NON seecceceseccessecesseesesceseeseeseeenteneenenneetesessesseneanees 52

II BÀI TOÁN PHÂN TÍCH RA THỪA SỐ NGUYÊN TỐ 52

II.1 Phương pháp Fermal -:+cstennhthhhhhhhrhrriieiierie 53 II.2 Phương pháp Monte CarÌO <5 eeeteeretrertererierire 56 II.3 Phương pháp Rho -.-.- - -5-s+s+sceeenrrhhrtrrtrrrrrertrrrrrrrrrde 57

III BÀI TOÁN LOGARITHM BỜI RẠC - co 59 III.1 Một số khái niệm cơ bản : :5-csctsthiiiirrerrriirriirree 59 III.2 Tìm phần tử sinh III.3 Tính logarithm rời rạc BÀI TẬP CHƯƠNG 4 Chuong 5: MA HOA THONG TIN .73 I MÃ TUYẾN TÍNH 73 ED, MA COOSA siscissccseesscsvivcscsscssvesvasswseanascesssanerenevonecoeee 73 1.2, MA ALIN 1h 74 1.3 Mã Vigenere -. -.-ctecienhrrhthrrtrrrtrerderrdrrrdrirrrrrrrire 76 1.4 Mã khối 222 22222222ESv2v22212211kEEEtHkkrrrthgh th nhe 7 8/1 8® 79 Ê MÃ hoằn:VĨ c010881013GïDNSDSURGRIBidhBiv20018808 38.64 80 L7 Mã kết hợp thay thế/hoán vị -tcceeerirrirrrrrtrrrrrrrrrie 81

I CAC HE MA BAC HAL scccssssssscocssssensssossisoceassesatsssnnseseansonnseagesnicooes 82

I3, MRIHBI, cúng GRIINRQLRDINgH han ngang hà n4 m008eenkiene 82 J5 na - 84

II.3 Mã xác suất Blum-GoldWasSer ¿-+ 5+ + shnnh+rhhhiehiee 85

Hh, WAL OY THỪA si u nữ Gõ ba tua Hy Hinh hong n100010020011000/61 144g 88

Trang 8

Aa)” s MUC LUC

III.2 Mã Pohlig-Hellman : :-+2c:zt222c+vxvvvittrtrrtrkrtrrerirrrr 89 III.3 Mã hồi {ÁC -:::27522v2222t 12222221 tt 90 TWA MB BSÄ á eue-cnbuid50 016288021108 S4G1/GUA08g1018aaga gui 9

BÀI TẬP GHUỐN G6 incoaenndainaiindiidiniieiiriiaddasnaralseaassssansrasau ĐÓ, Chương 6: CHỮ KÝ SỐ VÀ BẢO MẬT CƠ SỞ DỮ LIỆU 97 Te THONG DIEP COP specs cpsvceysesscerncyyreecccesecvnvegeconeiaeceasuasennstocesuvosessnes 97 1.1 Ký bằng F4SA : -cccc::t 2222 trrt tErrrriiirrrree 97 1.2, Ky bang ma Rabin .98 ll CHỮ KÝ SỐ

II.1 Khái niệm

l2 HaH'Baiii'MAGHEE trang t,áanghi209siill30406300:ã.808033800A 99

liã,:Ký bằng ElGaIHHliuiasavdiieasinadiRidnaidaggAcoa064100011160116031 6040 100 II.4 Tấn công hàm ký SỐ Ăn 111211 1x cex 101

II.5 Định danh tri thức trị không .- - ScctS sirsierrrrrv 102

III BẢO MẬT CSDL -2222- 2222 22L22211022111.1211111 01.0 0 103

8.0 00h 103

III.2 Nghỉ thức mã CSDL 5+5 Se St v21 312211211157 sxc 104

Trang 9

Chương 1: Kiến thức cơ sở 9 MP?

Chương

KIẾN THỨC CO SỬ Chương này trình bày kiến thức toán học cơ sở dưới góc nhìn của mã hóa

thông tin Các khái niệm sẽ được trình bày trực quan, tương đối chặt chẽ,

nhưng lại không đi vào các thuật toán và kiến thức chuyên sâu Những chủ

để chuyên sâu và cụ thể hơn sẽ được trình bay trong những chương sau

I ANH XA BIEN DOI

Hầu hết các phương pháp mã hóa đều dựa trên một song ánh”? nào đó: mỗi ký tự trong thông điệp gốc được chuyển thành một ký tự

trong thông điệp được mã hóa Việc giải mã được thực hiện bằng cách sử dụng ánh xạ ngược của ánh xạ này Người ta thường ký hiệu E

(viết tắt của Encryption) cho ánh xạ mã hóa và D (viết tat cla Decryption) cho ánh xạ ngược (tức là D=E”) được dùng để giải mã

Chúng ta sẽ tìm hiểu cụ thể hơn qua một vài ví dụ đơn giản sau đây Ví dụ 1.1 Giả sử ánh xạ E được xác định trên tập các chữ cái tiếng Anh Q = fa, b, ¢, , x, y, Z} biến mỗi chữ thành chữ đứng ngay sau: a thành b, b thành e, , y thành z; riêng z được biến thành a Với ánh xạ này thì ta có

thể mã hóa thông điệp:

đen gap toi sau buoi hop

thành thông điệp: efo hbq upj tbv cvpj ipd

Trang 10

Chương 1: Kiến thức cơ sở Nếu đồng nhất mỗi chữ cái của tập Q với số thứ tự của nó (a là 0, b là 1,

z là 25) thì ta có thể viết ánh xạ E như sau):

E(œ) = (œ+1) mod 26 Khi đó ánh xạ ngược là: p(B) = (B-1) mod 26

Ví dụ 1.2 Giả sử việc mã hóa được đặt cơ sở trên tập chữ số thập phân

{0, 1, ., 9} với tương ứng như sau:

0 1 2 3 4 5 6 7 89 ơ_ D(j) 6 4 7 2 08 9 3 1 5 E(0œ) B

Khi đó số 19236610 được mã hóa thành 45729946 Trường hợp này nếu mỗi chữ cái của tập Q (ví dụ 1) được đồng nhất với 2 chữ số: ví dụ a là 01, b là 02, , z là 26 thì có thể mã hóa thông điệp của ví dụ 1 như sau:

đen gap toi sau buoi hop

040514 070116 201509 190121 02211509 081516

606840 636449 764865 456474 67744865 614849

Ví dụ 1.3 Giả sử mỗi phần tử x e {0, 1, , 9} được mã hóa theo qui luật E(x)= x’ mod 11, nghĩa là ta có sự tương ứng như sau:

0 1 2 3 4 5 6 7 8 9 x D(y) 0 1 8 5 9 4 7 2 6 3 E(x) y

Anh xa của ví dụ này là một song anh đặc biệt: ta có thể thấy rằng ánh xạ ngược là p(y) = y? mod 11 Chẳng hạn ta có: D(3)=37 mod 11 = 2187 mod 11 = 9 Vi du 1.4 Xét một song ánh của tập {0, 1, , 9} như sau: 0 1 2 3 4 5 6 7 89 x Dự) 0 1 6 4 3 9 28 7 5 E(x) y Trường hợp này với mọi xz0 ta luôn có: E(x).x mod 11 = 1 Chẳng hạn ta có: E(8).8 = 7 x8 = 56 = 5 x11 +1 Do đó: E(8).8 mođ 11 = 1 — — _

® Ký hiệu mod dùng để chỉ số dư của phép chia số nguyên, chẳng hạn 27 chia 4

Trang 11

Chương 1: Kiến thức cơ sở T† M° Khi vận dụng trong thực tế, “luật chơi” cho các phép mã hóa có nhiều mức độ khác nhau:

1 Không công bố thuật toán hay phương pháp mã hóa: đây là

cách làm khép kín, mang tính chất cá thể, khó trao đổi và chia sẻ thông tin trong cộng đồng;

2 Phương pháp mã hóa (thuật toán mã hóa và giải mã) được

công bố nhưng “chìa khóa" lại được dấu bí mật Thông thường

chỉ có một khóa duy nhất được dùng chung cho nhóm người sở

hữu thông tin;

3 Phương pháp được công bố, một số khóa được công khai (thông thường dùng để mã hóa) nhưng các khóa bí mật (dùng

để giải mã) thì không công bố, chỉ có người sở hữu thông tin mới được dùng khóa bí mật để mở

Để cụ thể hơn, ta sẽ phân tích các ví dụ đã trình bày ở trên

Đối với ví dụ 1.1 thì khóa chính là số K=1 (được dùng để mã hóa và giải

mã); nếu đã công bố cách mã hóa thì mặc dù có dấu khóa đi nữa ta vẫn

có thể dò tìm được khóa bằng cách thử 25 trường hợp khác nhau cho các

số từ 1 đến 25: như vậy trong thực tế không thể cơng bố thuật tốn của

phương pháp này

Trong trường hợp ví dụ 1.2 thì khóa chính là dãy chữ số K=6472089315, đây chính là một hoán vị của tập hợp 10 phần tử; nếu công bố thuật toán và dấu khóa K thì có thể dò tìm bằng cách thử tổ hợp gồm 10! = 3,6 triệu trường hợp: có vẻ khó để thử khi tính bằng tay nhưng lại không khó đối với máy tính; nếu ta nâng lên cỡ tổ hợp 26t (chẳng hạn hoán vị của 26 chữ cái tiếng Anh) thì việc thử tất cả các tổ hợp cũng rất khó khăn đối với máy tính Trong thực tế nếu thông tin mã hóa có dạng văn bản (ngôn ngữ của một nước nào đó), ngay cả khi dùng hoán vị của các chữ cái người ta cũng có thể dò tìm được khóa nhờ vào: tần số xuất hiện của chữ cái trong văn bản (chỉ phụ thuộc vào ngôn ngữ), một văn bản chưa mã hóa (có kích thước đủ lớn) và bản được mã hóa của nó

Trang 12

M)” i2 Chương 1: Kiến thức cơ sở

làm trên các số rất lớn để ngay cả muốn dò tìm khóa bí mật bằng máy tính thì cũng tốn quá nhiều thời gian (chẳng hạn vài trăm năm)

Đối với ví dụ 1.4 thì dãy chữ số K = 0164392875 là khóa bí mật nếu chỉ công bố là mã hóa theo một phép hoán vị Còn nếu công bố thêm rằng ánh xạ mã hóa phải thỏa mãn điều kiện:

E(x).x mod 11 = 1, Vxe{1, 2, , 9}

thì việc dò tìm ánh xạ giải mã rất đơn giản: với mỗi số x z 0 chỉ cần tìm số

ye(1,2, , 9} sao cho xy mod 11 = 1

II SỐ NGUYÊN

Các tính chất số học trên số nguyên được sử dụng làm nền tang cho các phép mã hóa Ta có thể thấy tất cả các ví dụ trong phần trước đều dựa trên một vài tính chất nào đó của số nguyên Trong phần này

chúng ta sẽ hệ thống hóa những tính chất cơ bản được vận dụng thường xuyên trong mã hóa thông tin và mật mã

IL1 Phép chia Euclid

Cho trước 2 số nguyên a và b với b z 0 Phép chia Euclid khẳng

định rằng tồn tại duy nhất 2 số nguyên q (thương số) và r (dư số) sao cho: a= qb +rvà 0 <r < |b| Điều này có nghĩa là dư số r có thể lấy

một trong |b| giá trị 0, 1, ., JbJ-1

Tính chia hết: Khi r=0 ta nói rằng a chia hết (hay chia chẵn) cho b và b là ước số của a Ký hiệu: bla

®% Ước số chung: số nguyên d được gọi là ước số chung của hai số

nguyên x và y nếu d|x và dịy

% Ước số chung lớn nhất: số nguyên d > 0 được gọi là ước số chung lớn nhất của hai số nguyên x và y, ký hiệu d=(x, y)#) nếu d là ước số chung của x, y và với mọi ước số chung e của x, y ta đều có eld

% Cặp số nguyên tố cùng nhau: hai số nguyên x và y được gọi là

nguyên tố cùng nhau nếu ta có (x, y)=1

m—————

Trang 13

Chương 1: Kiến thức cơ sở 13 ma

Ví dụ 1.5 Số 15 có tất cả 3 ước số dương: 1, 3, 5, 15, Có tất cả 8 số

dương nhỏ hơn 15 và nguyên tố cùng nhau với 15: 1, 2, 4, 7, 8, 11, 13, 14

Số 6 không nguyên tố cùng nhau với 15 bởi vì (6,15)=3

Định lý 1.1 Cho trước 2 số nguyên a, b và giả sử d=(a, b) Tồn tại các số nguyên X, y sao cho ax + by = d Hệ quả: Nếu (a, b)=† thì tổn tại các số nguyên x, y sao cho ax + by = 1 Ví dụ 1.6 Với (6,15)=3 ta tìm được -2 và 1: (-2)6 + 1(15) = 3 Do 4 và 3 nguyên tố cùng nhau ta tìm được -2 và 3: (-2)4 + 3(3) = 1 I2 Số nguyên tố

Một số nguyên p được gọi là số nguyên tố nếu p # +1 và với mọi số nguyên a, b nếu p|ab thì p|a hay p|b

Từ định nghĩa này ta có một số nhận xét như sau: - Số 0 là số nguyên tố;

- _ Các số —1 và † không phải là số nguyên tố;

- _ Một số nguyên dương p>1 là số nguyên tố khi và chỉ khi p có đúng 2 ước số là 1 và chính p; - _ Nếu p là số nguyên tố dương và 1<m«<p thì ta ln có gcd(m, p)=1 (tức m và p nguyên tố cùng nhau) Tức là có tất cả p-† số dương nhỏ hơn p mà nguyên tố cùng nhau với p, chúng là: 1,2, ~,P-1; - Một số nguyên p là số nguyên tố khi và chỉ khi =p là số nguyên tố

Bài toán kiểm tra một số nguyên dương n cho trước có phải là số nguyên tố hay không (tức “Primality Test Problem’) la mOt bai toán đóng vai trò rất quan trọng trong lý thuyết số nói chung và trong lý thuyết mật mã nói

riêng Thật ra, có rất nhiều bài toán nổi tiếng liên quan đến số nguyên tố,

chúng tôi sẽ dành hẳn một chương để trình bày riêng cho chủ để này

Trang 14

IMỊ :4 Chương I1: Kiến thức cơ sở

Định lý 1.2 (Định lý cơ bản của số học)

Mọi số nguyên dương n>1 đều có thể phân tích duy nhất ann dich các lũy thừa của các số nguyên tố dương, nghĩa là có thể viết: n = p;°'p;°Ê p;°*; với pị<pz< <p là các số nguyên tố

1L3 Phép tính trên vành Z„

Xét số nguyên n>1 Vành Za là tập các dư số có được khi chia mỗi số nguyên cho n, tức là gồm n số 0, 1, 2, n-1 Hai phép cộng

(+) và nhân (.) được định nghĩa trong Za như sau:

% Phép cộng: a+b (phép cộng trong Za) là số dư khi chia a+b (phép cộng số nguyên bình thường) cho n

Phép nhân: a.b (phép nhân trong Zạ) là số dư khi chia a.b (phép

nhân số nguyên bình thường) cho n

Ký hiệu

Vì cần phải viết cả số nguyên thông thường và các số trong Za (với số

nguyên n>1 nào đó) nên để không nhầm về ký hiệu các số trong Zn Akhi đã xác định n) thường được viết với dấu gach 6 trén dau: 7, 2, 3y «

Chang hạn khi ta xét Z¿: do các số 1, 5, 9 đều có chung tính chất là khi

chia cho 8 thì dư 3 nên ta có thể viếtlà 1= 5= 8

Trang 15

Chương I1: Kiến thức cơ sở 1ø [RA

Trong ví dụ này ta có thể thấy một vài tính chất đặc biệt của phép nhân

trong Zs như sau:

- _ Tính khả nghịch Mọi phần tử xz0 đều có phần tử y sao cho: xy=1 Cuthé: 1 1= 1, 2.3= 1, 3.2=1, 4.4=1

- _ Tồn tại phần tử sinh (với phép nhân) Tồn tại một phần tử “sinh ra” mọi phần tử x0 nhờ phép nhân Chẳng hạn với phần tử 2 thì ta có:

1z2', 3=23, 4=2? [mod 5] Hay cũng có thể viết là: 1= 2', 3= 23, 2 Với phần tử 3 thì tacó: 1= 3!, 2= 33, 4= 37

Ví dụ 1.9 Tính chất khả nghịch và tồn tại phần tử sinh đối với phép nhân như trong ví dụ trên không chắc đúng cho tập Z, bat ky Chang hạn ta xét

Za; các phần tử 1 và 5 khả nghịch bởi vì tacó 1.1= 1va 5.5= 14; trong khi các phần tử 2, 3, 4 không khả nghịch (chẳng hạn không tồn

tại XeZa sao cho: 2 x= 1)

Định lý sau đây trình bày về các điều kiện liên quan đến tính khả nghịch

và tồn tại phần tử sinh đối với phép nhân trong Za

Định lý 1.3

() Nếu p là số nguyên tố dương thì mọi phần tử khác 0 của Z; đểu khả nghịch

Hơn nữa tồn tại â e Z; sao cho mọi phần tử x Z; đều có thể viết dưới dạng

X= 3”, với m nguyên

(ii) Với n>1 là số nguyên Với mọi số nguyên a thổa điểu kiện (a, n)=† thì a luôn

khả nghịch trong Zn

Ví dụ 1.10 Nhờ vào tính chất khả nghịch và có phần tử sinh của Z;; để

thực hiện một phép mã hóa đơn giản cho các phần tử 0, 1, 2, , 9 Xem

Trang 16

16 Chương 1: Kiến thức cơ sở

- _ Mã hóa nhờ nghịch đảo (tương tự ví dụ 1.4): các phần tử từ 2 đến 9

được mã hóa bằng phần tử nghịch đảo, ngoài ra 1 mã hóa thành 0 và

0 mã hóa thành 1; như vậy ta có thể mã hóa như sau:

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

- _ Mã hóa nhờ số mũ biểu diễn: các phần tử từ 2 đến 9 được mã hóa

bởi số mũ khi biểu diễn bằng phần tử sinh, chẳng hạn bởi vì 6 = 2°

nên 6 được mã hóa thành 9, ngoài ra 1 mã hóa thành 0 và 0 mã hóa

thành 5; như vậy ta có thể mã hóa như sau:

0 1 2 3 4 5 6 7 8 9 5 0 1 8 2 4 9 7 3 6

II ĐỊNH LÝ FERMAT NHỎ

Định lý 1.4 Với p là số nguyên tố dương, với mọi số nguyên a không là bội số p thì ta luôn có aP” = 1 [mod p]

Vi p nguyên tố nên điều kiện p không là ước số của a cũng tương đương với điều kiện (a, p)=1

Có 2 trường hợp như sau:

- _ Nếu a là bội số của p thì đương nhiên p là ước số của aP ~ a;

- _ Nếu a không là bội số của p thì theo định lý trên p là ước số của aP' ~ 1 nên cũng là ước số của a(aP† — 1) = aP — a

Như vậy trong mọi trường hợp ta luôn có: a? = a [mod p]

Mặt khác nếu e và d là 2 số nguyên dương thỏa điều kiện: ed=k(p-1)+1 với

k là một số nguyên nào đó (điều này cũng tương đương với e d= 1

trong Zp , tức là d là phần tử nghịch đảo của e trong vành Zp1) Khi dé:

ae? = al?! = (aP"')a = a [mod p] Nhd vay ta co hệ quả sau đây

Hệ quả: Giả sử p là số nguyên tố dương ()_ Với mọi số nguyên a ta có aP = a [mod p]

() Nếu e, d nguyên dương và thỏa điểu kiện ed=1 [mod p-†] thì ta có (a°)! = (a)°

=a [mod p]

Nhờ hệ quả này mà ta có thể mã hóa nhờ số e (bằng cách nâng lên lũy

thừa e) và giải mà bằng một số khác là d (nâng số bị mã hóa lên lũy thừa

Trang 17

Chương 1: Kiến thức cơ sở 1r [M?

Ví dụ 1.11 Xem trở lại ví dụ 1.3: thực chất là ta thực hiện hai ánh xa trong

Zi E(x)=x) và D(y)=y” Trường hợp này p=11 là số nguyên tố dương, p- 1=10 và ta có 3 7 = 21 = 1 [mod 10] Vì vậy ta luôn có: (a3)” = (a”)?=a

[mod 11] Như vậy 3 và 7 chính là hai khóa của phép mã hóa

Ví dụ 1.19 Với số nguyên tố p=69431, ta chọn e=813 và d=427 thi ed=1

[mod 69430] Ta có thể mã hóa và giải mã các số trong tập {0, 1, 2,

69430) nhờ hai ánh xạ trong Zas¿s¡ như sau: E(x)=x?!? và D(y)=y"?7 Chẳng hạn số 172 được mã hóa thành: 172° mod 69431 = 42984 Và số 42984 được giải mã thành: 42984'” mod 69431 = 172 IV ĐỊNH LÝ EULER

Định lý Euler là mở rộng của định lý Fermat Thực tế phép mã

hóa trong các ví dụ 1.11 và 1.12 rất dễ bị tấn công: ngay cả khi p rất lớn nếu đã biết khóa ø thì có thể tìm rất nhanh số d sao cho ed=† [mod p-1] Định lý Euler khắc phục điểm này nhờ có thể thay số nguyên tố p bởi tích của 2 hay nhiều số nguyên tố

Cho trước số nguyên dương n>1 Hàm “phí Euler' được xác định như sau: gín) là số lượng các số nguyên dương a nhỏ hơn n mà

nguyên tố cùng nhau với n Chẳng hạn số n=12 có 4 số 1, 5, 7, 11

thỏa điều kiện này nên ta có o(12)=4 Trường hợp tổng quát nếu n

phân tích thành các thừa số nguyên tố n = pi tpa°2 pv" thì có thể

chứng minh:

1 1 1

se)=n(1~t [ta {tre } Py Pa Py

Đặc biệt với mọi số nguyên tố p ta có @(p)=p-1; nếu n là tích của hai số nguyên tố p và q (với pzq) thì (n)=(p-1)(q-1); nếu n=p” với p nguyên tố thì ọ(n)=p“"(p-1)

Ngoài ra hàm ọ cũng có tính chất: ọ(ptn?=œfm+-vfm) vớtmrơi sdinguyén

dương m, n thỏa điều kiện (m, n)=1 8W10Jđ/jNNUVHEUIBWlợc phát

Trang 18

MỸ % Chương 1: Kiến thức cơ sở

Định lý 1.5 Giả sử n>1 là số nguyên dương Với mọi số nguyên a nguyên tố cùng nhau với n thì ta ln có a*f® = 1 [mod n]

Ta có thể thấy rằng nếu n là số nguyên tố dương thì định lý này trở

thành định lý 1.4 (định lý Fermat nhỏ) Trong định lý này một điểm rất

quan trọng là không thể bổ qua điều kiện *a nguyên tố cùng nhau với n Để hiểu rõ hon ta xem vi dy sau đây

Vi du 1.13 Xem n=2 x 3= 6, ta cd g(n) = 2 Quan sát kết quả tính sau đây:

a 0 a 2 3 4 5

a? mod 6 0 1 4 1 4 1

Ta thấy rằng với các số ae{1, 3, 5} (nguyên tố cùng nhau với 6) thì a? = 1

[mod 6]; nhưng với các số khác như 0, 2, 4 thì điểu này lại không đúng

Bây giờ ta khảo sát trường hợp được ứng dụng nhiều trong thực tế, đó là

n=pq với p và q đều là số nguyên tố dương và pzq Giả sử a là một số nguyên bất kỳ thỏa mãn điều kiện 1< a < n và e, d là hai số nguyên dương thỏa mãn điều kiện ed=1 [mod o(n)], tức là ed=1 + kọ(n)

Do p, q là 2 số nguyên tố phân biệt ta có các trường hợp sau:

- Nếu (a, n)=1 thì theo định lý Euler ta co a®” = 1 [mod n], ta suy ra a°

=a! tol") = a, (a9)*=a [mod n]

- Néu (a, n)=d > 1 thì d=p hoặc d=q và a phải viết được thành một trong hai dạng a=rq với 1<r<p hoặc a=pr với 1<r<q Do vai trò của p và q ngang nhau ta chỉ cần xét một trường hợp a=rq với 1<r<p Khi đó (a,

p)=1 nên aPz 1 [mod p] và ta có thể viết a?=tp+1 Ta suy ra: aed = a! + kg(n) a a.ak(P-ta-1) = a.(aPtyKiat) => a®=a(tp+1)M") = a(Mp+1) = (rq)Mp +a => a%=rMn+aza [modn]

Như vậy trong mọi trường hợp ta đều có: a°= a_ [mod n] Nhờ vậy ta có hệ quả sau đây, chính là cơ sở toán học cho phương pháp mã hóa công khai

RSA (viết tắt tên của 3 tác giả Rivest, Shamir, Adleman)

Công trình của 3 tác giả này được phát triển tai vién MIT (Massachusetts

Institute of Technology) trong ném 1977 va được công bố lần đâu tiên uào

năm 1978 Tuy nhién Clifford Cocks cing công bố kết quả tương tự uào năm

1973 trong báo cáo của CESG (Communications-Electronics Security Group),

Trang 19

Chương 1: Kiến thức cơ sở 19 fa?

Hệ quả 1.5a: Giả sử n=pq với p, q nguyên tố dương và pzq, e, d là hai số nguyên dương thỏa mãn ed=1 [mod o(n)] Với mọi a nguyên, 1< a < n ta có a = a [mod n] Vi dụ 1.14 Xét n=3 x 11 = 33 Ta có @(n)=2 x 10=20, chọn d=3 và e=7 thì de=21=1 [mod 20] Như vậy có thể mã hóa các số của tập Zas={0, 1, 2, -, 32)

nhờ ánh xạ Da(x)=x? và giải mã nhờ ánh xạ ngược Ez(y)=y” Mặt khác, Ví dụ này cũng khá thú vị: cũng có thể giải mã bằng Eiz(y)=y! (mặc dù 3x 17z11 [mod 20) Tức là khóa bằng số 3 nhưng lại có thể mở bằng số 7 hoặc số 17 Độc giả có thể khảo sát và giải thích “hiện tượng” này xem

như bài tập

Hệ quả 1.5a có thể mở rộng cho trường hợp n là tích của nhiều số nguyên tố đôi một phân biệt nhau Trước hết ta nhận xét một vài tính chất của số có dạng n=p¡pa px Với С, Ðz, ~, px là các số nguyên tố và pzp;¡ nếu izj

- Nếu e là một ước số bất kỳ của n thì (c,nc)=1, và do đó 9(n)=9(c)@(n/c)

- Gia st& a nguyén Ta goi c=(a,n); néu a và n/c có ước nguyên tố

chung p>1, khi đó p cũng là ước chung của a và n (Vì p | n/c là ước của n), do đó p|e=(a,n) Như vậy p là ước chung của n/c va c: mâu

thuẫn với tính chất (c,n/c)=1 Tóm lại ta có: (a,n/c)=18), Hệ quả mở rộng được phát biểu như sau

Hệ quả 1.5b: Giả sử n có dạng tích số các số nguyên tố đôi một phân biệt

n=p;pz p, và e, d là hai số nguyên dương thỏa mãn ed=† [mod o(n)] Khi đó mọi a

nguyên, ta có a*” = a [mod n]

Chứng minh Thực hiện phép chia Euclid ta có a=qn+r với 0<r<n, do đó:

a =r và a°° = r°° [mod n) Như vậy ta chỉ cần chứng minh: r*Ý = r [mod n]

Nếu r=0 thì điều phải chứng minh là hiển nhiên, do đó có thể giả sử 0<r<n

Gọi c=(r, n) thì 1<c<n; Nếu c=1 thì áp dụng định lý Euler cho r và n ta Có:

r#)= 1 [mod n] và có thể suy ra ngay điểu phải chứng minh (tham khảo

các nhận xét trước hệ quả 1.5a) Bây giờ ta giả sử 1< c=(r, n) < n Theo các nhận xét trên ta có (a, n/c)=1 va (n)=9(c)g(n/c) Do (r, n/c)=1 và n/c>1, có thể áp dụng định ly Euler cho r và níc: r9) = 4 [mod n/c] Như vậy có thể viết: r2 = t(n/e)+1 Suy ra: ed Od a pt HHO) p phOCO) =p pkoleDolnve) „ r (pc) kg) EE

® Chú ý là tính chất này chỉ đúng khi n có dạng đang xét Ngược lại thì điều

Trang 20

ae [MJ zo Chương 1: Kiến thức cơ sở = _ f#=ri[t(n/c)+1Ƒ*#® = r[M(n/c)+1] => f#Ở=(r/e)Mn+r=r [mod n} (Chú ý là r/c là số nguyên bởi vì c là ước của r) Ví dụ 1.15 Xét n=5 x 7 x 11= 385 ta có g(n)=4 x 6 x 10= 240; xem 2 số e=13 và d=37 ta có ed=481 = 1 [mod 240] Do đó có thể mã hóa tập Zsg5={0, 1, 384} nhờ ánh xạ E(x)=x!3 và giải mã bằng ánh xạ ngược của

nó là D(y)=y!” Chẳng hạn ta có:

4'3 mod 384 = 284;

ngược lại thì 284°” = 4 [mod 385]

V ĐỊNH LÝ SỐ DƯ TRUNG HOA

Đây là định lý làm cơ sở để biểu diễn một số nguyên theo một tập

hợp các số nguyên cho trước, đôi một nguyên tố cùng nhau Sở dĩ có tên gọi như vậy bởi vì người ta cho rằng định lý được phát minh bởi Hàn Tín (một nhà quân sự tài ba phò trợ cho Lưu Bang - Hán Cao tổ,

vua thái tổ của nhà Hán, Trung Quốc) Tương truyền rằng trong quá trình điểm binh, Hàn Tín thường dùng định lý này để biết chính xác được quân số của mình sau một số lần dàn trận, sắp xếp đội hình Trước hết chúng ta sẽ xét một ví dụ đơn giản gồm ba số đôi một nguyên tố cùng nhau

Vi dụ 1.16 Các sinh viên một lớp (không quá 210 em) khi sắp hàng 5 thì lẻ 2, sắp hàng 6 thì lẻ 3, sắp hàng 7 thì lẻ 4 Lớp này có bao nhiêu học sinh?

Trước hết ta chú ý rằng 210=5.6.7 và đáp số không phải là 210 sinh viên (vì nếu là 210 sắp hàng 5, 6, 7 đều chấn) Như vậy ví dụ này tương đương

với tìm số nguyên dương a với 0<a<210 sao cho a thỏa mãn đồng thời các

điều kiện:

a =2 [mod 5], a = 3 [mod 6], a = 4 [mod 7}

Xét số b = [2(x)6.7 + 3(y).7.5 + 4(z).5.6] mod 210 với x, y, z nguyên thì

0<b<210 và có tính chất:

b = 2(x)6.7 [mod 5]

b = 3(y)7.5 [mod 6]

Trang 21

Chương 1: Kiến thức cơ sở z¡ [MP Như vậy ta chỉ cần chọn x, y, z sao cho (thì b sẽ thỏa mãn yêu cầu như đặt ra cho a): (x)6.7 = 1 [mod 5] (y)7.5 = 1 [mod 6] (z)5.6 = 1 [mod 7]

Vi 6.7=42= 2 [mod 5], 7.5=35=5 [mod 6], 5.6=30=2 [mod 7] nén hé sau

cùng tương đương với:

2x = 1 [mod 5] 5y = 1 [mod 6] 2z = 1 [mod 7]

Như vậy có thể chọn x=3, y=5, z=4 Suy ra: b=207

Ví dụ trên là chính là một trường hợp đặc biệt của định lý số dư Trung Hoa được phát biểu như sau Chúng ta cũng có thể dựa vào các bước tính toán như ví dụ trên để chứng minh định lý số dư Trung Hoa một cách dễ dàng

Định lý 1.6 Giả sử n>1 là số nguyên dương và mị, mạ, mạ là n số nguyên lớn

hơn 1 đôi một nguyên tố cùng nhau Đặt M=m;m; mạ Cho trước các số nguyên ay,

â;, an Khi đó tổn tại duy nhất một số nguyên x (0<x<M) thỏa mãn đồng thời các phương trình đồng dư sau đây:

Trang 22

[MI? ;2 Chương 1: Kiến thức cơ sở

BÀI TẬP CHƯƠNG 1

1 Viết chương trình để kiểm chứng lại các ví dụ đã trình bày trong

chương này Nên viết tổng quát bằng cách bổ sung thêm các tham số cần thiết, chú ý giải quyết trường hợp bị tràn số nếu có

2 f Nghiên cứu ví dụ 1.14: vấn đề có thể mở hay khóa bằng nhiều

chìa khác nhau Khảo sát tất cả các tổ hợp chìa (mở hay khóa)

các cho ví dụ này

3 Ở Nghiên cứu ví dụ 1.15: nếu khóa bằng chìa khóa 13 thì có thể

mở bằng chìa nào khác với chìa 37 được hay không? Hãy khảo

sát tất cả các tổ hợp chìa (mở hay khóa) các cho ví dụ này

4 Chứng minh định lý số dư Trung Hoa

5 Hãy xây dựng bộ thư viện hàm hỗ trợ cho việc tính toán theo các mệnh đề, định lý, hệ quả trong chương này Nghiên cứu giải

quyết hai vấn đề:

- Số nguyên được phép lớn tùy ý

- _ Tốc độ chấp nhận được

Trang 23

Chương 2: Trường hữu hạn 23 wa’

Chuong

TRUONG HUU HAN

Trường hữu hạn là một cấu trúc đại số đóng vai trò rất quan trong trong

toán học thuần túy nói chung và trong lý thuyết bảo mật thông tin nói

riêng Trong chương này, chúng tôi cố gắng đúc kết những tính chất cơ

bản của trường hữu hạn thường được áp dụng trong mật mã và mã hóa

thông tin Một số cấu trúc đại số cơ sở (như nhóm, vành, miền nguyên) cũng có những mối liên hệ mật thiết với cấu trúc trường và cũng đóng vai

trò nhất định trong mã hóa thông tin Vì vậy, chúng tôi sẽ bắt đầu với các cấu trúc đại số này cùng với những ví dụ được chọn lọc để minh họa

1 CẤU TRÚC NHĨM

11 Phép tốn 2 ngơi

Cho tập hợp AzØ Một phép tốn hai ngơi (hay phép toán trong) xác định trên A là một ánh xạ từ A2? vào A

Nếu ta ký hiệu ánh xạ này là ° thì ảnh của (x, y)e A? có thể được

viết là x°y (thay vì viết °(x, y) theo ký hiệu ánh xạ thông thường) Tập A với phép toán hai ngôi như vậy cũng được nói Ia co trang bị phép tốn hai ngơi và viết là (A, °) Phép toán ° có thể thỏa mãn một vài

tính chất nào đó, chẳng hạn như:

Trang 24

° 24 Chương 2: Trường hữu hạn

Mỗi tập hợp có thể có nhiều phép toán hai ngơi, những phép tốn này

thỏa mãn các tính chất nào đó tùy theo phép tốn được trang bị Đơi

khi phần tử trung hòa cũng được gọi là phần tử đơn vị

dụ 2.1 Trên tập các số nguyên Z ta định nghĩa phép toán ° xác định bởi công thức: x ° y = xy — x Cy thé: 5°3 = 10, 2°7= 12 Phép toan nay

khơng giao hốn bởi vì: 3°6=12 # 5°3; có phần tử trung hòa bên phải là 2

VÌ: X°®2=x, VxeZ Tuy nhiên, có thể chứng minh rằng phép toán này

không có phần tử trung hòa (cả hai bên như trong định nghĩa) 1.2 .- Nhóm và Nhóm con

Một nhóm là một bộ (G, *), trong đó G là một tập hợp với phép

toán hai ngôi * thỏa mãn các tính chất sau đây:

(1) Tính kết hợp: x*(y*z) = (x*y)*z, V x, y,zeQ

(2) Có phần tử trung hòa eeG: e*x = x*e = x, VxeQ

(3) Khả đảo: V xeG, 3x'<G thỏa mãn: x*x' = x'*x =e

Có thể chứng minh rằng phần tử trung hòa e nói trên là duy nhất và với mỗi x cố định thì phần tử đảo x' tương ứng với x cũng duy nhất

Trong một số trường hợp đặc biệt:

- _ Nếu phép toán * của nhóm được ký hiệu là + thì người ta

thường ký hiệu phần tử trung hòa là 0 và phần tử đảo x' của x được ký hiệu là -x để giống như phép cộng các số thông

thường

- Tương tự, nếu phép toán * ký hiệu là dấu chấm nhân thì người

ta thường ký hiệu phần tử trung hòa là 1 (và gọi là phần tử

đơn vị) và phần tử đảo x' của x được ký hiệu là x† Tích a.b cũng được viết gọn là ab

Tuy nhiên do thói quen, ta chỉ dùng ký hiệu cộng (+) cho phép toán của nhóm khi phép toán có thêm tính chất giao hoán (lúc đó nhóm cũng được gọi là nhóm giao hoán) và gọi nhóm này là nhóm cộng Xét nhóm G và phần tử ae G Nếu G là nhóm nhân thì biểu thức aa a (tác hợp a với nhau n lần) được ký hiệu là a” ; ngoài ra ta cũng ký hiệu

Trang 25

Chương 2: Trường hữu hạn 25 pa’

đang xét là nhóm giao hoán Đối với trường hợp nhóm cộng thì cũng có các qui ước và tính chất tương tự cho ký hiệu ma (thực hiện phép cộng m lần), ta cũng có (m+n)a=ma+na và (mn)a=m(na)=n(ma) với mọi số nguyên m, n; nếu nhóm đang xét là nhóm cộng giao hoán thì

ta sẽ có thêm tính chất n(a+b)=na + nb

Ví dụ 2.2 Trên tập hợp G các số thực khác -1, ta định nghĩa phép toán ° như sau: x ° ÿy = Xy +x+ y thì (G, ° ) là một nhóm giao hoán bởi vì:

-_ Với mọi X, y, Zta có: X°(/°Z) = XVZ+XV+VZ+ZX+X+y+Z = (X°V)°Z

-_ Với mọi x ta có: x°Ö = x = 0°x

-_ Với mọi x ta có: xe- =—* ox =0

x +1 x+† -_ Với mọi x, y ta có: X°y = ÿ°X

Các nhóm con đóng vai trò rất quan trọng trong bản thân lý

thuyết nhóm và trong các lĩnh vực toán học cũng như các lĩnh vực

khoa học có vận dụng lý thuyết nhóm Cho trước một nhóm (G, °) với phần tử trung hòa là e Nhóm con G; của G là một tập con của G thỏa điều kiện: eeG; và bản thân G¡ cũng là một nhóm với phép toán ° ; ta ký hiệu: G¡<@

Ví dụ 9.3 Xét tập hợp các số nguyên Z với phép + thông thường Hiển nhiên (Z, +) là một nhóm cộng với phần tử trung hòa là 0 Xét tập hợp các số chẵn: 2Z = { 2k / keZ } Ta có 0e2Z và có thể kiểm chứng rằng (2Z, +)

là một nhóm giao hoán Như vậy, (2Z, +) là nhóm con của (Z, +) Nhưng

đối với tập các số lẻ 2Z+1 thì phép + không phải là phép tốn hai ngơi xác định trên tập hợp này (vì tổng 2 số lễ lại là số chẵn)

Sau đây là một định lý rất quan trọng trong lý thuyết nhóm hữu hạn Định lý này thường được áp dụng cho các cấu trúc hữu hạn mà

hàm ý một cấu trúc nhóm

Định lý 2.1 [Định lý Lagrange]

Giá sử G là một nhóm hữu hạn và H<6 Ta có IGI (số phần tử của G) chia chấn cho IHI (số phần tử của H)

Định lý này hàm ý rằng mọi nhóm con của G phải có số phần tử

là ước số của IGI Chẳng hạn, nếu G có 29 phần tử, do 29 (nguyên tố,

Trang 26

MP?

1.3

I

26 Chương 2: Trường hữu hạn phần tử trung hòa) và chính G Nếu G là nhóm 15 phần tử thì nhóm

con của G có thể gồm 1, 3, 5 hay 15 phần tử; trong đó 2 nhóm con

hiển nhiên là {e} và chính G Nhóm đơn sinh

Xét một nhóm G và tập A c G Nhóm con của G sinh bởi tập A, ký hiệu <A>, là nhóm con nhỏ nhất của G mà chứa tập A Khái niệm “nhỏ nhất" ở đây được hiểu là nếu có một nhóm con G; của G mà A c G; thì ta phải có <A> c G; Tập A được gọi là tập sinh của nhóm <A>

Như vậy ta có (e là phần tử trung hòa của G): <e> = {e} va

<G>=G Tuy nhién, trong thực tế người ta quan tâm đến các tập sinh

của nhóm G mà càng nhỏ thì càng tốt Chẳng hạn, khi ta xét tập

H={a 2+bV3 :abe z} với phép cộng thì H là một nhóm sinh bởi tập chỉ gồm 2 phần tử {v2.8}; tập H,=[a/2:ae Z} là một nhóm con

của H sinh bởi 4/2

Nhóm G được gọi là nhóm đơn sinh nếu G sinh bởi một tập chỉ

gồm 1 phần tử: tức là tồn tại aeG sao cho G=<a> Trong ví dụ vừa nói

trên thì nhóm H¡ được gọi là nhóm đơn sinh Người ta cũng gọi nhóm đơn sinh là nhóm tuần hoàn (nhóm “cyclic”) bởi vì nếu G=<a> thì mọi phần tử của G có thể viết dưới dạng: a” với meZ (nếu ký hiệu theo nhóm nhân) hoặc ma với meZ (nếu ký hiệu theo nhóm cộng)

Xét nhóm G và phần tử aeG (giả sử ký hiệu theo nhóm nhân) Nếu nhóm con <a> là nhóm hữu hạn thì ta gọi số phần tử của nhóm

<a> là cấp của phần tử a; khi đó có thể chứng minh rằng cấp của a

cũng chính là số nguyên dương k nhỏ nhất sao cho a*=e,

VÀNH, MIỄN NGUYÊN, TRƯỜNG

Ngoài cấu trúc nhóm chỉ được trang bị một phép toán 2 ngôi, các

cấu trúc thông dụng khác thường được trang bị đồng thời nhiều phép toán Các cấu trúc như: vành, miền nguyên, trường được trang bị đồng

Trang 27

Chương 2: Trường hữu hạn 27 wa” II.1 Cấu trúc Vành

Một vành là một bộ (R, +, ) với R là tập hợp có trang bị đồng thời hai phép tốn hai ngơi + (cộng) và (nhân) thỏa mãn các điều kiện sau đây:

(1) Cấu trúc (R, +) là một nhóm giao hoán (phần tử trung hòa ký

hiệu là 0);

(2) Phép toán nhân của R có tính chất kết hợp;

(3) Phép nhân có tính chất phân phối hai bên đối với phép cộng,

nghĩa là:

Va,b,ceR, a(b+c) = ab + ac

Va,b,ceR, (b+c)a= ba+ca

Một vành R được gọi là vành giao hoán nếu phép toán nhân có tính giao hoán (nghĩa là: Va, be, ab=ba); vành R được gọi là có đơn

vị (hay “có 1”) nếu phép toán nhân có phần tử đơn vị (nghĩa là: 1<R

và VxeR, 1x=x1=x\)

Ví dụ 2.4 Ta xét tập (5Z, +, ) gồm các số nguyên chia chấn cho 5 với phép cộng và nhân số nguyên thông thường Nhận xét rằng tổng 2 số chia chấn cho 5 cũng chia chẵn cho 5, tích 2 số chia chẵn cho 5 cũng vậy, ta có thể kiểm chứng rằng 5Z là một vành giao hoán; tuy nhiên vành này không có phần tử đơn vị

I2 Miền nguyên

Một vành R, giao hoán, có đơn vị 1z0 được gọi là một miền

nguyên nếu R có thêm tính chất sau đây: Vx, yeR, xy=0 => x=0 v y=0

Tập các số nguyên Z là một miền nguyên quan trọng được sử dụng làm nền tảng để xây dựng nhiều cấu trúc đại số có nhiều ứng dụng

trong toán học lý thuyết và ứng dụng

Ví dụ 2.ð Xét tập Z; gồm tập hợp các số dư khi chia cho 7 với phép cộng

va nhan modulo 7 (xem chương 1) thì Z; là vành giao hoán có đơn vị Hơn

nữa, nếu x ÿ = 0thì xy = 0 [mod 7]; điểu này tương đương với xy chia

chấn cho 7, mà 7 nguyên tố nên x chia chẵn cho 7 hay y chia chẵn cho 7; do đó x= 0hay y= 0 Vậy Z; là một miền nguyên Tuy nhiên Z¿ là một

vành giao hoán có đơn vị, nhưng lại không phải là miền nguyên bởi vì ta

Trang 28

aye 28 Chương 2: Trường hữu hạn

Ví dụ 2.6 Xét tập Z[Ý5] gồm tập hợp các số có dạng x+y¥5 (x, yeZ) véi phép cộng và nhân thông thường Dễ dàng kiểm chứng đây là một miền nguyên (phần tử trung hòa của phép cộng là: 0=0+04/5 ; phần tử đơn vị

la 1=1+0¥5 )

Dinh lý 2.3: Với mọi số nguyên tố p»0 thì Z; luôn là một miền nguyên

Để chứng minh định lý 2.2 ta có thể lý luận tương tự như trường hợp Z; trong ví dụ 2.5

IL3 Vành chia và Trường

Vành chia và trường là các cấu trúc chú ý đến việc khả nghịch của Các phần tử khác 0 Những cấu trúc này được định nghĩa như sau:

(a) Vành (R, +, ) có đơn vị 1z0, được gọi là một vành chia nếu mọi

phần tử xz0 của R đều khả nghịch đối với phép nhân

(b) Trường là một vành chia giao hoán (phép toán nhân có thêm tính chất giao hoán)

Mọi trường F đều là miền nguyên Thật vậy, trước hết hiển nhiên, theo

định nghĩa của trường, F đã là một vành giao hoán có đơn vị Hơn

nữa, nếu ab=0 thì hoặc a=0, hoặc az0 thì a khả nghịch, nghĩa là tồn tại a”, ta có: a'(ab)=a0=0, ta Suy ra: (a”a)b = 0 = 1b = 0 = b=0,

Tóm lại: ab=0 = a=0vb=0 nên F là một miền nguyên

Sự liên hệ về mặt lý thuyết giữa miền nguyên, vành chia và trường được thể hiện trong 2 định lý quan trọng sau đây

Định lý 2.3: Mọi miền nguyên hữu hạn đều là trường

Hệ quả: Với mọi số nguyên tố p>0 thì 2p luôn là trường Chứng minh:

Giả sử R là miền nguyên hữu hạn và ae R, az0 Ta xét ánh xạ ftừ HR vào R định nghĩa bởi f(x)=ax Nếu Í(x1)=f(x2) thì ta Suy ra a(x1-x2)=0; do R là miền nguyên nên a=0 hay x1-x2=0, mà az0 nên phải có x1-x2=0, do đó x†1=x2 Như Vậy, f là một đơn ánh từ R vào R Mặt khác, do R hữu hạn nên f cũng là Song ánh Vì vậy phần tử 1eR

phải có tiền ảnh đối với ánh xạ f: tức là tồn tại phần tử beR sao cho:

Í(b)=1 nên ab=1 Như Vậy, mọi phần tử az0 đều khả nghịch: ta có thể

kết luận R là trường (vì phép nhân đã giao hoán theo định nghĩa của

Trang 29

Chương 2: Trường hữu hạn 29 ay?

Từ định lý trên ta có thể thấy ngay Z; luôn là trường nếu p là số

nguyên tố (Vì Zp hữu hạn và là một miền nguyên theo định lý 2.2) Định lý 2.4: Mọi vành chia hữu hạn đều là trường

Định lý 2.4 khá thú vị: bởi vì tính chất hữu hạn lại hàm ý thêm sự giao hoán của phép nhân Như vậy, việc nghiên cứu cấu trúc vành chia hữu hạn đồng nhất với nghiên cứu trường hữu hạn Việc chứng minh định lý này (thực chất là chứng minh tính giao hốn của phép nhân) rất cơng phu và chuyên nghiệp Một vấn đề khá hấp dẫn: hãy

cho một ví dụ “thực tế” về cấu trúc vành chia mà không phải là trường

(đương nhiên đây là phải là một cấu trúc vô hạn); cho đến nay các giáo trình toán học chuyên ngành chỉ cho ví dụ bằng cách xây dựng một vành chia khơng giao hốn về mặt lý thuyết

H4 Đặc số nguyên tố của trường

Giả sử F là một trường Phần tử đơn vị 1eF Với mỗi số nguyên

dương n, ta quan tâm đến biểu thức sau đây (ký hiệu là n.1): t(n)=1 + 1 + + 1 (cộng phần tử 1 n lần) = 5”1 ist Với mọi m, n nguyên dương, ta luôn có: t(m+n) = t(m)+t(n) va t(mn)=t(m)t(n); néu m>n thi t(m-n) = t(m)-t(n)

Có hai trường hợp xảy ra đối với biểu thức dạng nói trên (chú ý là 0 và

1 là 2 phần tử không và đơn vị của trường F chứ không phải là số nguyên thông thường):

- Trường hợp 1: Tồn tại số nguyên dương n sao cho n.1=0 ;

- Trường hợp 2: Với mọi số nguyên dương n ta có n.1z0

Chẳng hạn, đối với trường Z; thì ta có 1 + 1+ 1= 3= 0 điều

này tương ứng với trường hợp 1 Nhưng ngược lại đối với trường các

số thực thông thường thì tổng của các số 1 không bao giờ bằng 0: điều này tương ứng với trường hợp 2

Như vậy, các trường có thể chia thành 2 lớp ứng với 2 trường hợp nói trên Một trường F hữu hạn luôn phải thuộc về trường hợp 1 Thật vậy, bởi vì tập K={ t(n) / ne|lN } c F nên K hữu hạn, do đó tồn tại mzn

Trang 30

wy” 30 Chương 2: Trường hữu hạn sử m>n, khi đó: t(m-n) = t(m)-t(n) = 0, nhu vay với r=m-n nguyén

dương thì r.1 = t(r) = 0 Chú ý rằng điều đảo lại không đúng: một trường thuộc về trường hợp 1 chưa chắc là trường hữu hạn

Giả sử F là một trường thuộc về trường hợp 1, trong số các số

nguyên dương n thỏa điểu kiện n.1=0: ta gọi p là số nhỏ nhất thỏa điều kiện này Với mỗi trường F, số p này luôn tồn tại (do tính sắp tốt của IN) và duy nhất (dựa vào tính nhỏ nhất của P): P gọi là đặc trưng hay đặc số của trường F Định lý sau đây khẳng định rằng đặc số của một trường luôn luôn là số nguyên tố

Định lý 2.5: Giả sử F là trường có đặc số p nguyên dương (như vậy trường F đang xét thuộc về lớp trường ứng với trường hợp 1) Khi đó p là số nguyên tố

Hệ quả: Mọi trường hữu hạn luôn tồn tại đặc số và đặc số này là một số nguyên tố

Chứng minh:

Thật vậy, nếu p không nguyên tố, ta giả sử p=ab với 0<a,b<p

Theo định nghĩa thì p thỏa điều kiện: t(p)=0 Thay p=ab ta có t(ab)=0, tức là t(a)t(b) = 0, do F là trường nên t(a)=0 hay t(b)=0: vì cả a và b

nguyên dương nên điều này mâu thuẫn với tính chất nhỏ nhất của p Mặt khác, ta có thể thấy rằng đặc số của trường F đang xét cũng chính là cấp của phần tử 1 (phần tử đơn vị của phép nhân) khi xét trong nhóm cộng của F

Từ định lý trên ta cũng thấy rằng trường hữu hạn luôn có đặc số là số nguyên tố Đối với các trường thuộc về trường hợp 2, do không tồn tại số nguyên dương n thỏa điều kiện n.1=0 (nhắc lại là 1 và 0 là hai phần tử của trường F), ta qui ước rằng các trường này có đặc số 0

(hay “đặc trưng 0”, số 0 này là số nguyên)

HI.TÍNH CHẤT CỦA TRƯỜNG HỮU HẠN

Trong toàn bộ phần này ta luôn xét các trường có một số hữu hạn các phần tử Theo kết quả của phần trước thì mỗi trường hữu hạn F

luôn có một đặc số nguyên tố p duy nhất Nếu trường F gồm q phần

tử thì ta cũng ký hiệu F là GF(q) (GF Ja viết tắt của “Galois Field”)

Mệnh để 2.1: Với mọi a e GF(q) \ {0} thì ta luôn tó a*? = † (Chú ý rằng số 1 trong q-† là số nguyên còn số 1 ở vế phải của biểu thức lại là phẩn tử đơn vị của

Trang 31

Chương 2: Trường hữu hạn 3 [MJ°

Chứng minh:

Giả sử aeGF(q) và az0 Đặt IF* = GF(q)\0), có thể kiểm chứng dễ

dàng rằng IF* là một nhóm đối với phép nhân của trường Giả sử cấp của a là k: k =|<a>| ta có a*=1; vì <a> là nhóm con của IF* nên theo dinh ly Lagrange thi k là ước số của q-1 (là số phần tử của IF*), viết q-1=km với meZ Từ đó ta suy ra: a#! = a*" = (ah) = 1,

Trong trường GF(q) ta quan tâm đến tập hợp con sau đây (nhắc lại rằng trường đang xét là trường hữu hạn với đặc số nguyên tố p):

Fạ= {1(m)=$4//me z| cGF(q)

Có thể chứng minh rằng bản thân F; cũng là một trường gồm đúng p phần tử (trong đó gồm cả 2 phần tử 1 và 0 của trường GF(q) đang xét) Hơn nữa F; hoàn toàn giống trường thặng dư Z; về mặt cấu trúc

Đây là một trường con rất đặc biệt của trường GF(q) được dùng để

biểu diễn các phần tử còn lại của trường

Định lý sau đây đặc trưng hóa cấu trúc của một trường hữu hạn

bất kỳ Số phần tử của một trường hữu hạn luôn luôn là lũy thừa của một số nguyên tố

Định lý 2.6: Giả sử GF(q) là trường hữu hạn với đặc số nguyên tố p và trường con

F; của GF(q) được xây dựng như bên trên

a)

b)

Tén tai một số nguyên dương m và các phan ti ay, az, ., am € GF(q) thỏa mãn

các điểu kiện:

Trang 32

MỊ? 32 Chương 2: Trường hữu hạn

Chứng minh:

Phần b của định lý được suy ra trực tiếp từ phần a: bởi vì mọi phần tử

của GF(q) đểu tương ứng duy nhất với một bộ

(as, 0a, ., am) mà mỗi œ lấy một trong p giá trị trong Fy Nhu vay ta chỉ cần chứng minh phần a của định lý

Chọn phần tử a; e GF(q) mà a; # 0 Ta đặt: Ay = {œ ai / Với œ 6 Fp } c GF(q)

Nếu ơi a; = B; a; thi do a; #0 nén a, kha nghịch, ta suy ra: o4= By; do

d6 néu oy # By thi a; a; # By ay; nhu vay tap A; gém dung p phan tu Nếu A;=GF(q) thì ta có điểu cần chứng minh với nhờ chọn m=1

Ngược lại thì A; chứa hẳn trong GF(q), ta chon az € GF(q)\ Ay (tức là

aa# A¡ ; aa#0 bởi vì 0e A¡) Tiếp tục đặt:

Aa = {Giải + dạaa / với œ , đạc Fạ } c GF(q)

Giả st oa; + ogag = Briar + Boas (VỚI œ, dạ, Bị, Bạ © Fp)

= (œ-B¡)ai = (Ba-o¿)a;; nếu Bạ # ơœ; thì suy ra Bạ-œ; #0 nên kha nghịch ta suy ra: az=Aa: với A= (Bạ~ø¿) Í(œ~B\)e Fp ; tức là ae A;: mâu thuẫn với cách chọn a; ở trên như vậy ÿạ=ơœ;

=> 0;a:=B1a; Theo nhu tinh chat cla A, thi ta cd Gœ=B¡

Bây giờ, nếu A¿=GF(q) thì ta có điều phải chứng minh với m=2; nếu ngược lại thì A; chứa hẳn trong GF(q) ta lai chon age GF(q)\ Ap (tức là as£ A¡ ; aa#0 bởi vì 0e A;) và đặt:

Ag = {04 a1 + Ol Az + dạ 8a / VỚI 0y, dạ, 0a 6 F;} c GF(q)

Gia sU oa; + dạ; + dạaa = j\A; + Bạa; + Bạaa (Với œ, œa, dạ, By, Ba, Bs € Fp); nếu œ#Bạ thì ta suy ra ay = À¡8¡ + À¿8; với M=(Ba~ơœa) (œ~B¡) e Fp và A¿=(Ba—œa) (œa—Ba) € F; ; tức la age Ag: mâu thuẫn với cách chọn 4s, VÌ vậy ta phải có œ=Bạ > œ¡A¡+ơœaaa=B¡a:+;a¿ Theo tính chất của Ag thì ta phải có: œ¡=B; và =o

Qui trinh nói trên cứ tiếp tục: bởi vì GF(q) hữu hạn nên đến lúc nào đó

ta đã xây dựng được các tập Ay, Ap, , Am ; théa tinh chất như yêu cầu và ay„¡ £ A, với mọi k=1, 2, m-1 và tập cuối cùng:

Trang 33

Chương 2: Trường hữu hạn 33 MP OYA + 0a8a + + (mâm = yâ + a¿ + + Ômâm

(VỚI œ, 0a, ., Œm, Ba, Ba, ., Bm € Fp)

Khi đó, nếu ơ„#Bm thì nhờ chuyển vế và nhân với (B„-œm)" ta suy ra Ame Am.: mâu thuẫn với am# Am ; VÌ vậy œm= Bm do dé:

yay + OAs + + OmsAms = {8+ + Bode + + Bm-t@m-t

Theo tính chất của Am thì ta có œ = B„ với ke{1, 2, ., m-1}

Hệ quả: Xét trường GF(p") với đặc số nguyên tố p

a) _ Mọi phần tử khác 0 của trường GF(p") đều là nghiệm của đa thức x?””'~1 b) Tập các phần tử của GF(p”) là tập nghiệm của đa thức x?” —x

c) Trường hợp p=2 thì tập các phần tử của GF(2") là tập nghiệm của đa thức

xP +x

Định lý 2.6 là định lý rất quan trọng của trường hữu hạn Nhờ định lý

này mà mọi trường hữu hạn đều phải có số phần tử là lũy thừa của số nguyên tố Hơn nữa, số phần tử của trường hữu hạn lại đặc trưng được cấu trúc của trường; tức là hai trường hữu hạn có cùng số phần tử thì phải có cùng cấu trúc Điều này khác hẳn đối với lý thuyết nhóm: hai nhóm cùng số phần tử chưa chắc có củng cấu trúc; ngoài

ra bài toán khảo sát, phân loại tất cả các nhóm có cấp n (nhóm gồm

có n phần tử) chưa được giải quyết một cách tổng quát

Ta biết rằng tập các phần tử khác 0 của một trường tạo thành một

nhóm với phép nhân Đối với trường hữu hạn GF(p”), định lý sau đây xác định hoàn toàn cấu trúc của nhóm nhân GF(p™) \ {0}

Định lý 2.7: Giả sử GF(p") là trường hữu hạn với đặc số nguyên tố p Gọi IF* = GF(p”) \ {0} Nhóm nhân IF* là nhóm đơn sinh

Nhờ định lý 2.7, tồn tại phần tử œ0 của GF(p”) sao cho GF(p”) =

Trang 34

M) 34 Chương 2: Trường hữu hạn

IV VÍ DỤ ÁP DỤNG

IV.1 Định lý Fermat nhỏ

Giả sử p là số nguyên tố Mọi phần tử của trường Z;¿ đều là nghiệm của đa thức x? - x Từ đó suy ra rằng với mọi số nguyên a ta

đều có aP = a [mod p] 1V.2.Mã hóa dựa vào nhóm

Xét nhóm G có cấp n (ký hiệu theo phép nhân) Theo tính chất của nhóm: mọi phần tử aeG đều thỏa mãn a"=e, điểu này kéo theo

a"''=a, Nếu số n+1 có thể phân tích thành tích của 2 số nguyên

dương lớn hơn 1: n+1 = K.M thì ánh xạ E(x)=xX sẽ mã hóa các phần tử của nhóm G (như vậy khóa mã hóa là K); mặt khác ánh xạ D(y)=yM

sẽ giải mã, phục hồi lại thông tin cũ bởi vì: D(E(x)) = (x*)™ = x (như

vậy chìa khóa để mở là M)

Cũng do tính chất của nhóm ta có thể mã hóa với bất kỳ khóa nào có dạng: K+tn với t=1, 2,.3, bởi vì ta luôn có x*"~xK(x"Jt=xK; tương tự ta giải mã bằng M+tn với t=1, 2,

Đối với nhóm ký hiệu theo phép cộng ta hoàn toàn có thể thực

hiện tương tự: ánh xạ mã hóa E(x)=Kx và ánh xạ giải mã D(y)=My Ví dụ 2.7, Xét Zz;s; với phép toán cộng Trường hợp này n+1=2263= 31 x 73 Ta chọn khóa mã hóa K=31+2262=2293 (giao cho người có nhiệm vụ mã hóa) và khóa giải mã M=73 + 3x2262 =6859 (giao cho người có nhiệm vụ giải mã)

- Mỗi phần tử ae{10, 11, , 300} được mã hóa bởi công thức

E(a)=2293a mod 2262 Ví dụ: E(27)=837 ; E(199)=1645

- Mỗi phần tử đã được mã hóa sẽ được giải mã bởi công thức

D(b)=6859b mod 2262 Ví dụ:

D(837)= (6859 x 837) mod 2262 = 27 D(1645)=(6859 x 1645) mod 2262 = 199

Tuy nhiên, trường hợp này người giữ khóa mã hóa K=2293 vẫn có thể biết

cách giải mã, người này biết số 2262 và tính:

R = (2262+1) / (2293 mod 2262) = 73

Người này biết số 73 (chứ không cần biết số 6859) và giải mã:

Trang 35

Chương 2: Trường hữu hạn 35 D(1645)= (73 x 1645) mod 2262 = 199

Trường hợp tổng quát hơn ta giả sử K và M là 2 số thỏa mãn KM=1 [mod n], tức là KM =tn + 1 Khi đó với mọi phần tử aeG, ta có:

aX = al ~ (a"Ja = a bởi vì a"=e Như vậy ta có (a)M = (aM)K = a:

nghĩa là ta có thể khóa bằng K và mở bằng M hay ngược lại

Ví dụ 2.8 Xét p=200003 là số nguyên tố và Z; với phép toán nhân các số

khác 0 Trường hợp này Z; \ {0} tạo thành một nhóm đối với phép nhân, nhóm này có p-1=200002 phần tử Với K=70001 và M=33337 thì KM= 2333623337 = 11668 x 200002+1 Do đó có thể mã hóa bởi ánh xạ

Trang 36

Chương 2: Trường hữu hạn BÀI TẬP CHƯƠNG 2

Một số bài tập trong chương này là tổng quát hóa của các kết quả

và bài tập của chương 1

1 Phần tử a trong nhóm G có cấp hữu hạn là m Giả sử k là số

nguyên dương thỏa mãn (k, m)=1 Chứng minh a* cũng có cấp m 2 Chứng minh mọi nhóm cấp nguyên tố đều đơn sinh

3 Chứng minh mọi nhóm cấp 35 đều đơn sinh

4 Với p là số nguyên tố Chứng minh rằng nhóm nhân Zp\(0} là nhóm đơn sinh

5 _ Giả sử F là một trường có đặc số nguyên tố p Xét tập con F¡ của F gồm các phần tử có dạng là tổng các số 1 (phần tử đơn vị của

trường F) Chứng minh F1 cũng là trường

6 Xét trường GF(b”) có đặc số nguyên tố p Chứng minh rằng với moi a, be GF(p") ta có: (a+b)* =a+b

7 Lập bảng cộng và nhân cho các trường: a) GF(7)=Z; b) GF(2?)

c)GF(2) d) GF(3?)

8 Sử dụng các phương thức về số nguyên lớn của lớp BigInteger

cài đặt 1 số hệ mã dựa trên nhóm như trình bày trong phần IV

Trang 37

Chương 8: Tính toán số lớn a7 (a?

Chuong

TÍNH TỐN SO LON Trong mã hóa thông tin và mật mã, việc phải thực hiện các phép toán trên số lớn xảy ra rất thường xuyên Vì thế, việc xây dựng được các chương trình máy tính thực hiện nhanh các phép toán số học là điều rất cần thiết cho mã hóa thông tin Ta sẽ khảo sát các phương pháp tính số lớn trong chương này Trước hết, ta sẽ khảo sát chỉ tiết các thuật toán được thực hiện trên cơ sở biểu diễn của các số nguyên dưới dạng nhị phân; sau đó,

ta mở rộng cho dạng biểu diễn cơ số bất kỳ; và phần cuối, là một số

phương pháp mở rộng khác

L_ CÁC PHÉP TOÁN SỐ HỌC DỰA TREN BIỂU DIỄN

NHI PHAN

1.1 Biéu dién nhj phan

Định nghĩa 8.1 Mọi số nguyên a e N' = N\ 0) đều có thể được biểu diễn duy nhất dưới dạng: a= anÐ" + an.42"” +,„+ a2 + ao = Losin a2', (*) aye {0,1} va a, = 1 Hệ thức (*) được gọi là biểu diễn nhị phân của số nguyên a và được viết dưới dạng: a = nân-1 Ai8o

Các số nguyên a¡ được gọi là các ký số; an là ký số bậc cao; ao là ký số

bậc thấp; và n+1 là chiều dài của số a (dưới dạng nhị phân)

Trang 38

II” ss Chương 8: Tính toán số lớn

Lưu ý Ta có thể mở rộng định nghĩa (*) (bằng cách thêm các số 0 vô nghĩa vào trước) để cho mọi số đều có cùng chiều dài Ví dụ, số 8 và 21 có biểu diễn nhị phân cùng chiều dài 5 lần lượt là 01000 và 10101

12 Thuật giải biểu diễn cơ sở nhị phân Input: ae N; Output: a = ann.; 3;ao Và q, r : a = qb+r,0<r<2 (1) Tìmn:2"<a< 2"*!, (2) For ¡ =n Downto 1 Do { a Tìm k:k2'<a < (k+1)2!; b Đặta,=k,a=k-— 2l; } (3) ao = a; r = ao; q= an2"+ + az2+ a¡ (4) Return (anaa.: a:ao,q,r) Chú ý là: asa<c2 n slog(a)/og(2) < n+1 ° n = [log(a)/Iog(2)]

I3 Thuật giải cộng hai số nguyên dương

Input: x,y e N; x= Xn X+Xo VÀ ÿ = Ya V1Yo ; Output: x + y = Wn W+Wo (1) ¢=0; (2) Fori=0 Ton Do{ a Wi= (Xi + Vị + C)%2 b lÍ(Xị+ y¡ + c) < 2 Then c = 0 Else c = 1 } (3) Wau=ec; (4) Return Wa„i WWo Ghi chú Trong bước (2), ta có: 0<X%i, Vị S2;0<X+yi+c<3; Vì thế: WÍ = (Xi + Vị + ©) % 2 = Xị + Vị + € nẾU Xị + Vị +e <2; Wi = (Xi + Vị +) — 2 nếu Xị + Vị +c >2,

14 Thuật giải trừ hai số nguyên dương

Input xy 6 NỈ; x 3 Y ; X = Xạ XyXo Và V = Vạ V)Yo |

Output: x - ý = Wa WIWo

Trang 39

Chương 3: Tinh toán số lớn 2ø [ÄÄJ° (2) Fori=0 Ton Do { a W¡=(Xi- Vị¡+ C©)%2 b If(X¡- y¡+ c) < 2 Then c = 0 Else c = -1 } (3) Return Wn,i W+Wo Ghi chú Trong bước (2), ta có: 0 <X¡- ÿ¡ ST; Xi - Vị +C 3Ö @ Xị — Vị 3 <0; Vì thế:

Wi= (Xi - Vị + €) % 2 = Xị - Yị + c nếu Xị - Vị + C 3Ô ;

Wi= (Xi - Vị + €) = Xi — Yị +C + 2 nếu Xị - Vị + € < Ô

1.5 Phép cộng và trừ [mod]

Nếu x, y € Zm, ta CÓ:

(x + y) mod m = x + y nếu x+ y<m; (x+ y) mod m =x + y-m nếu x+ y>m

(x — y) mod m = x+m~ y nếu x<Y; (x - y) mod m = x - y nếu x >ÿy

Nhờ vậy, ta có thể thực hiện các phép cộng và trừ [mod]: (x + y) [mod mỊ, (x~ y) [mod m] một cách dễ ràng nhờ vào các thuật toán cộng và trừ các

số nguyên

1.6 Phép nhân [mod]

Khi x, y và m là những số nguyên lớn, 0 < x, y < m và y= Losicn Yi2' la

biểu diễn nhị phân của y, ta có:

(x*y) mod m = (Yox + Losisn y(2") mod m)) mod m ;

(2*'x) mod m = (2((2*) mod m)) mod m, 0 <ï <n

Nhờ vậy, ta có thể xây dựng thuật toán tính tích mod nhanh như sau:

Trang 40

Lưu ý 2x = x + x [mod m] là phép cộng [mod] và nếu x có biểu diễn nhị

phân thì 2x là dịch các bit của x sang phải 1 vị trí 1.7 Phép lũy thừa [mod]

Định nghĩa 3.2 Cho x e Z, và p e NỈ” Phép lũy thừa [mod m] là phép tính giá

trị của biểu thức y = x? % m

!° ao Chương 8: Tính toán số lớn

Theo định nghĩa trên, ta có thể thực hiện phép lũy thừa [mod] qua phép nhân [mod] Tuy nhiên, cách tính như vậy rất kém hiệu quả Ta sẽ xây dựng một thuật toán tính lũy thừa [mod] hiệu quả hơn từ định nghĩa sau

Định nghĩa 3.3 Cho x e Zm và một số nguyên p e N” có biểu diễn nhị phân P = Losicnpi2’ Ta c6: XP = XP (X7)Pi(x4)Po (x2), Thuật giải (tính lũy thừa [mod]) Input: x e Zm, p= Yp2 i=Ø Output: y = x? [mod m]

(1) If (p = 0) Then Return(y) Else y = 1 (2) A=x va If (po = 1) Then y = x (3) For i=1 Ton Do {

a A=A? [mod m];

b If (pj) = 1) Then y = (Ay) [mod m]

}

(4) Return y

Luu y A? = A*A va Ay = A*y là các phép nhân [modl]

Ngày đăng: 15/10/2022, 10:34

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w