ch ng 4 tr ng h u h n chapter 4 finite fields n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Chương 4: Trường hữu hạn Chapter 4 – Finite Fields PowerPoint Presentation
Download Presentation
Chương 4: Trường hữu hạn Chapter 4 – Finite Fields

Loading in 2 Seconds...

play fullscreen
1 / 33

Chương 4: Trường hữu hạn Chapter 4 – Finite Fields - PowerPoint PPT Presentation


  • 200 Views
  • Uploaded on

Chương 4: Trường hữu hạn Chapter 4 – Finite Fields. Fourth Edition by William Stallings Lecture slides by Lawrie Brown. Mở đầu Introduction. Giới thiệu về cấu trúc đại số - trường hữu hạn Đóng vai trò quan trọng trong lý thuyết mã – AES, đường cong Elip, IDEA, khoá công khai

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chương 4: Trường hữu hạn Chapter 4 – Finite Fields' - brody-ayers


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ch ng 4 tr ng h u h n chapter 4 finite fields

Chương 4: Trường hữu hạnChapter 4 – Finite Fields

Fourth Edition

by William Stallings

Lecture slides by Lawrie Brown

m u introduction
Mở đầuIntroduction
  • Giới thiệu về cấu trúc đại số - trường hữu hạn
  • Đóng vai trò quan trọng trong lý thuyết mã – AES, đường cong Elip, IDEA, khoá công khai
  • Liên quan đến các phép toán trên “số”: ở đây sẽ xét thế nào là “số” và nhiều kiểu phép toán khác nhau
  • Bắt đầu từ khái niệm nhóm, vành, trường của đại số trừu tượng
nh m group
Nhóm - Group
  • Cho một tập các phần tử hoặc “số”
  • Và một phép toán, mà kết quả cũng là một phần tử của tập hợp đó (tính đóng)
  • Thỏa mãn:
    • Tính kết hợp (a.b).c = a.(b.c)
  • Có đơn vị e: e.a = a.e = a
  • Có nghịch đảo a-1: a.a-1 = e
  • Nếu có tính giao hoán a.b = b.a, thì gọi là nhóm Aben
nh m xiclic cyclic group
Nhóm xiclic - Cyclic Group
  • Định nghĩa lũy thừa như là việc áp dụng lặp phép toán:
    • Ví dụ: a3 = a.a.a
    • Và đơn vị e=a^0
  • Nhóm được gọi là xiclic nếu mọi phần tử đều là lũy thừa của một phần tử cố định nào đó:
    • Chẳng hạn b = a^k đối với a và mỗi b trong nhóm
    • Khi đó a được gọi là phần tử sinh của nhóm
v nh ring
Vành - Ring
  • Tập các “số” với hai phép toán được gọi là cộng và nhân, trong đó
  • Với phép cộng là nhóm Aben
  • Với phép nhân có
    • tính đóng và
    • tính giao hoán
    • tính phân phối đối với phép cộng a(b+c) = ab + ac
  • Nếu phép nhân có tính giao hoán thì tạo thành vành giao hoán
  • Nếu phép nhân có nghịch đảo và không có thương 0, thì nó tạo thành miền nguyên
tr ng field
Trường - Field
  • Trường là một tập với hai phép toán
    • Với phép cộng là nhóm Aben
    • Với phép nhân là nhóm Aben, trừ phần tử 0
    • là vành
  • Có thể nói là có các phép toán cộng, trừ, nhân, chia số khác 0

a – b = a + (-b)

a / b = a.b-1

s h c tr n module modular arithmetic
Số học trên moduleModular Arithmetic
  • Định nghĩa phép toán Module:

a mod n là phần dư khi chia a cho n

  • Sử dụng quan hệ tương đương trên tập số nguyên

a ≡ b mod n

khi chia cho n, a và b có phần dư như nhau

    • Ví dụ: 100 ≡ 34 mod 11
  • Số b được gọi là đại diện của a, nếu

a ≡ b mod n (a = qn + b) và 0 <= b <= n-1.

module 7
Module 7

-12 mod 7 ≡ -5 mod 7 ≡ 2 mod 7 ≡ 9 mod 7

ở đây 2 là đại diện của –12, -5, 2 và 9.

...

-21 -20 -19 -18 -17 -16 -15

-14 -13 -12 -11 -10 -9 -8

-7 -6 -5 -4 -3 -2 -1

0 1 2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31 32 33 34

...

c s divisors
Ước số - Divisors
  • Số b không âm được gọi là ước số của a, nếu có số m sao cho

a = mb với a, b, m đều nguyên.

  • Tức là a chia hết cho b, ký hiệu b|a
  • Ví dụ: 1, 2, 3, 4, 6, 8, 12, 24 là các ước số của 24
c c ph p to n s h c tr n module modular arithmetic operations
Các phép toán số học trên ModuleModular Arithmetic Operations
  • Cho trước một số n
  • Có thể thực hiện các phép toán trên các số nguyên
  • Số học trên module là thực hiện các phép cộng, nhân thông thường sau đó rút gọn lại bằng phép lấy module
  • Có thể rút gọn tại bất cứ thời điểm nào

a+b mod n = [a mod n + b mod n] mod n

a.b mod n = [a mod n . b mod n] mod n

s h c tr n module modular arithmetic1
Số học trên moduleModular Arithmetic
  • Có thể thực hiện các phép toán trên các đại diện:

Zn = { 0, 1, 2, 3, …, n-1 }

  • Zn với các phép toán module tạo thành vành giao hoán có đơn vị
  • Các chú ý:
    • nếu (a+b)≡(a+c) mod n thì b≡c mod n
    • Nhưng (ab)≡(ac) mod n thì b≡c mod n chỉ khi nếu a là nguyên tố cùng nhau với n
v d c c ph p to n tr n module
Ví dụ các phép toán trên module

Áp dụng các tính chất của modulo:

(11*19 + 1017) mod 7 =

((11*19) mod 7 + 1017 mod 7) mod 7 =

((11 mod 7* 19 mod 7) mod 7

+ (10 mod 7)17 mod 7) mod 7=

((4.(-2)) mod 7 + (((32)2)2)2 * 3 mod 7)mod 7=

((-1) mod 7 + ((22)2)2 * 3 mod 7)mod 7 =

(-1 + 5) mod 7 =

4

c s chung l n nh t greatest common divisor gcd
Ước số chung lớn nhấtGreatest Common Divisor (GCD)
  • Là bài toán chung của lý thuyết số.
  • GCD(a,b) là ước số chung dương lớn nhất của a và b.
    • Ví dụ: –GCD(60,24) = 12
  • Nếu hai số a, b nguyên tố cùng nhau thì GCD(a, b) = 1,
    • Ví dụ GCD(8,15) = 1,
    • 8 v à 15 là hai số nguyên tố cùng nhau
thu t to n c lit euclidean algorithm
Thuật toán Ơcơlit Euclidean Algorithm
  • Tính chất GCD(a,b) = GCD(b, a mod b)
  • Thuật toán Ơcơlit tìm GCD(a, b):

EUCLID(a,b)

1. A = a; B = b

2. if B = 0 return A = gcd(a, b)

3. R = A mod B

4. A = B

5. B = R

6. goto 2

example gcd 1970 1066
Example GCD(1970,1066)

1970 = 1 x 1066 + 904 gcd(1066, 904)

1066 = 1 x 904 + 162 gcd(904, 162)

904 = 5 x 162 + 94 gcd(162, 94)

162 = 1 x 94 + 68 gcd(94, 68)

94 = 1 x 68 + 26 gcd(68, 26)

68 = 2 x 26 + 16 gcd(26, 16)

26 = 1 x 16 + 10 gcd(16, 10)

16 = 1 x 10 + 6 gcd(10, 6)

10 = 1 x 6 + 4 gcd(6, 4)

6 = 1 x 4 + 2 gcd(4, 2)

4 = 2 x 2 + 0 gcd(2, 0)

tr ng galoa galois fields
Trường Galoa - Galois Fields
  • Trường Galoa đóng vai trò quan trọng trong lý thuyết mã
  • Có thể chứng minh được rằng số các phần tử của trường hữu hạn bằng lũy thừa của p^n của sô nguyên tố p
  • Được biết đến là trường Galoa, ký hiệu GL(p^n)
  • Thường sử dụng các trường:
    • GF(p)
    • GF(2n)
tr ng galoa gl p galois fields gf p
Trường Galoa GL(p)Galois Fields GF(p)
  • GL(p) gồm tập {0,1, … , p-1}
  • Với các phép toán cộng và nhân module
  • GL(p) tạo thành trường vì mọi a thuộc {0,1, … , p-1} đều có phần tử nghịch đảo a-1: a . a-1 = 1
  • Như vậy trên GL(p) ta có thể thực hiện các phép toán cộng, trừ, nhân, chia.
t m s ngh ch o finding inverses

Tìm số nghịch đảoFinding Inverses

EXTENDED EUCLID(m, b)

1. (A1, A2, A3)=(1, 0, m);

(B1, B2, B3)=(0, 1, b)

2. if B3 = 0

return A3 = gcd(m, b); no inverse

3. if B3 = 1

return B3 = gcd(m, b); B2 = b–1 mod m

4. Q = A3 div B3

5. (T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q B3)

6. (A1, A2, A3)=(B1, B2, B3)

7. (B1, B2, B3)=(T1, T2, T3)

8. goto 2

gi i th ch
Giải thích
  • Các quan hệ sau là bất biến:
    • mT1 + bT2 = T3; mA1 + bA2 = A3; mB1+bB2=B3
    • Vì ban đầu: m.1 + b.0 = m; m.0 +b.1 = b
  • Khi B3 = 1:
    • mB1+bB2=1
    • bB2 = 1+ mB1
    • bB2 = 1 mod m
    • Do đó: B2 = b-1 mod m
s h c a th c polynomial arithmetic
Số học đa thứcPolynomial Arithmetic
  • Sử dụng các đa thức bậc nhỏ hơn hoặc bằng n

f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi

  • Có một số cách khác nhau
    • Có thể thực hiện các phép toán thông thường trên đa thức
    • Các phép toán trên đa thức với các hệ số trên module p
    • Các phép toán trên đa thức với các hệ số trên mod p và sau đó lấy mod m(x) (modulo theo đa thức m(x))
ph p to n a th c th ng th ng ordinary polynomial arithmetic
Phép toán đa thức thông thườngOrdinary Polynomial Arithmetic
  • Phép toán đa thức thông thường
  • Cộng trừ các hệ số tương ứng
  • Nhân mọi hệ số với cùng một số
  • eg

let f(x) = x3 + x2 + 2 and g(x) = x2 – x + 1

f(x) + g(x) = x3 + 2x2 – x + 3

f(x) – g(x) = x3 + x + 1

f(x) x g(x) = x5 + 3x2 – 2x + 2

ph p to n a th c v i module h s
Phép toán đa thức với module hệ số
  • Cho số nguyên tố p tùy ý
  • Tính các hệ số theo module p
    • Tạo thành vành
  • Quan tâm đến mod 2
    • là mọi hệ số là 0 hoặc 1
    • eg. let f(x) = x3 + x2 and g(x) = x2 + x + 1

f(x) + g(x) = x3 + x + 1

f(x) x g(x) = x5 + x2

ph p to n a th c v i module a th c
Phép toán đa thức với module đa thức
  • Cho đa thức g(x)
    • Viết f(x) dạng: f(x) = q(x) g(x) + r(x)
    • Có thể coi r(x) là phần dư
    • Ta viết: r(x) = f(x) mod g(x)
  • Nếu không có phần dư ta nói g(x) là ước của f(x) hay g(x) chia hết f(x)
  • Trong trường hợp g(x) không có ước ngoài 1 và chính nó, thì ta nói g(x) là đa thức nguyên tố hoặc không rút gọn được
  • VD x3 + x + 1 là nguyên tố; x4 + 1 không nguyên tố (x4 + 1 = (x + 1)(x3 + x2 + x + 1)
  • Số học đa thức theo module của đa thức nguyên tố tạo thành trường
a th c c chung l n nh t
Đa thức ước chung lớn nhất
  • c(x) = GCD(a(x), b(x)) nếu c(x) là đa thức bậc lớn nhất mà chia hết cả a(x), b(x)
  • Có thể điều chỉnh thuật toán Euclid để tìm

EUCLID[a(x), b(x)]

1. A(x) = a(x); B(x) = b(x)

2. if B(x) = 0 return A(x) = gcd[a(x), b(x)]

3. R(x) = A(x) mod B(x)

4. A(x) = B(x)

5. B(x) = R(x)

6. goto 2

ph p to n a th c v i module a th c1
Phép toán đa thức với module đa thức
  • Có thể tính trên trường GF(2n)
  • Đa thức với các hệ số module 2 và bậc nhỏ hơn bằng n,
  • Có thể rút gọn theo module của đa thức nguyên tố bậc n (đối với phép nhân)
  • Tạo thành trường hữu hạn
  • Có thể tìm được nghịch đảo nhờ thuật toán Euclide mở rộng
x t v m t t nh to n
Xét về mặt tính toán
  • Vì các hệ số là 0, 1 nên các đa thức có thể biểu diễn như các xâu bit
  • Phép cộng trở thành XOR trên các xâu bit đó
  • Nhân trở thành Shift và XOR
  • Phép tính module đa thức nguyên tố thực hiện bằng phép lặp thế bậc cao nhất với phần dư
computational example
Computational Example
  • in GF(23) have (x2+1) is 1012 & (x2+x+1) is 1112
  • so addition is
    • (x2+1) + (x2+x+1) = x
    • 101 XOR 111 = 0102
  • and multiplication is
    • (x+1).(x2+1) = x.(x2+1) + 1.(x2+1)

= x3+x+x2+1 = x3+x2+x+1

    • 011.101 = (101)<<1 XOR (101)<<0 =

1010 XOR 101 = 11112

  • polynomial modulo reduction (get q(x) & r(x)) is
    • (x3+x2+x+1 ) mod (x3+x+1) = 1.(x3+x+1) + (x2) = x2
    • 1111 mod 1011 = 1111 XOR 1011 = 01002
s d ng ph n t sinh using a generator
Sử dụng phần tử sinhUsing a Generator
  • Tương đương với trường hữu hạn
  • Phần tử sinh là phần tử mà mọi lũy thừa của nó sinh ra mọi số khác 0
    • Trong F có 0, g0, g1, …, gq-2
  • Có thể tạo nên phần tử sinh bằng cách lấy căn của các đa thức nguyên tố
  • Sau đó định nghĩa phép nhân bằng cách lấy tổng số mũ của cùng cơ số
summary
Summary
  • have considered:
    • concept of groups, rings, fields
    • modular arithmetic with integers
    • Euclid’s algorithm for GCD
    • finite fields GF(p)
    • polynomial arithmetic in general and in GF(2n)