< Return to Video

Fermat và Euler (18 min)

  • 0:00 - 0:04
    Trong bài trước chúng ta nói về đảo nghịch modulo và chúng ta nói rằng thuật toán của Euclid
  • 0:04 - 0:08
    sẽ cho chúng ta 1 cách hiệu quả để tìm ra nghịch đảo của một phần tử theo modulo N.
  • 0:08 - 0:12
    Trong phần này chúng ta sẽ tiếp tục tiến đến
  • 0:12 - 0:16
    thế kỉ 17 và 18 để nói về
  • 0:16 - 0:20
    Fermat và Euler (hâm mộ hai bác này quá ;). Trước khi làm việc đó thì tôi sẽ ôn lại cho các bạn một chút
  • 0:20 - 0:24
    những gì đã trình bày ở phần trước. Như mọi khi thì tôi kí hiệu N
  • 0:24 - 0:28
    là một giá trị nguyên dương có n bit.
  • 0:28 - 0:32
    Hay có thể nói N nằm giữa 2 mũ n và 2 mũ n+1. Ta cũng kí hiệu p
  • 0:32 - 0:37
    là một số nguyên tố nào đó. Bây giờ ta sẽ coi ZN như là một tập hợp số nguyên từ 0
  • 0:37 - 0:41
    tới N-1 và ta có thể sử dụng phép cộng và nhân modulo N.
  • 0:41 - 0:46
    Chúng ta cũng sử dụng ZN* là một tập các phần tử nghịch đảo của ZN và cũng đã chứng minh một bổ đề đơn giản
  • 0:46 - 0:51
    rằng X là khả nghịch khi và chỉ khi X
  • 0:51 - 0:56
    và N nguyên tố cùng nhau. Không chỉ có thế,ta cũng đã hoàn toàn hiểu được phần tử nào là khả nghịch
  • 0:56 - 1:01
    phần tử nào không.Ta cũng đã biết một thuật toán rất hiệu quả dựa trên
  • 1:01 - 1:06
    thuật toán Euclidean mở rộng để tìm nghịch đảo của một phần tử trong ZN.
  • 1:06 - 1:10
    thời gian chạy của thuật toán này chỉ xấp xỉ bình phương của n.
  • 1:10 - 1:16
    n số bit của số N.
  • 1:16 - 1:21
    Bây giờ chúng ta sẽ đi từ thời Hi Lạp tới thế kỷ 17
  • 1:21 - 1:26
    và nói về Ferma. Ferma là người đã tạo ra rất nhiều định lý quan trọng. Một trong số đó tôi muốn trình bày hôm nay sẽ như sau.
  • 1:26 - 1:31
    Giả sử tôi đưa cho các bạn số nguyên tố p. Lúc đó bất cứ
  • 1:31 - 1:36
    phần tử X nào thuộc tập ZP*,
  • 1:36 - 1:41
    nếu tôi tính X^(p-1) thì tôi sẽ được một phần tử thuộc ZP.
  • 1:41 - 1:46
    Một ví dụ như sau: P=5, nếu tôi lấy 3 mũ P - 1
  • 1:46 - 1:51
    3 mũ 4, kết quả là 81
  • 1:51 - 1:55
    và cũng bằng 1 theo modulo 5. phù hợp với định lý của Fermat
  • 1:55 - 2:00
    Một điều rất lý thú là Fermat không chứng minh định lý này
  • 2:00 - 2:04
    mà phải 100 năm sau mới có người chứng minh nó
  • 2:04 - 2:09
    hơn nữa anh ta lại chứng minh một định lý tổng quát hơn cả định lý gốc
  • 2:09 - 2:14
    Bây giờ ta sẽ xem thử một ứng dụng của định lý Fermat.
  • 2:14 - 2:19
    nhắc lại, p là một số nguyên tố
  • 2:19 - 2:25
    Ta biết được gì? Ta biết X ^ (p-1) = 1.
  • 2:25 - 2:30
    ta có thể viết, X nhân X mũ p trừ 2.
  • 2:30 - 2:34
    kết quả vẫn là một.
  • 2:34 - 2:39
    điều này chứng tỏ, X mũ p trừ 2 là nghịch đảo của X
  • 2:39 - 2:44
    đây lại là một thuật toán khác để tìm nghịch đảo của X khi modulo cho một số nguyên tố
  • 2:44 - 2:49
    đơn giản chỉ cần lấy X mũ p trừ 2, ta sẽ được nghịch đảo của X
  • 2:49 - 2:54
    đây là một cách tốt để tìm nghịch đảo với modulo một số nguyên tố
  • 2:54 - 2:58
    nhưng nó có hai nhược điểm so với thuật toán của Euclid.
  • 2:58 - 3:03
    Đầu tiên là nó chỉ hoạt động với modulo nguyên tố. Euclid thì khác, cũng làm việc với modulo là hợp số
  • 3:03 - 3:07
    thứ hai, thuật toán này ít hiệu quả hơn
  • 3:07 - 3:11
    khi ta nói về thuật toán tính lũy thừa theo modulo ở phần cuối của video
  • 3:11 - 3:15
    bạn sẽ thấy thời gian chạy của nó sẽ là lập phương chiều dài của p
  • 3:15 - 3:20
    hay cách khác là log của P lập phương
  • 3:20 - 3:24
    thuật toán của Euclid thì lại có thể tính
  • 3:24 - 3:30
    nghịch đảo trong thời gian tỉ lệ với bình phương chiều dài của p
  • 3:30 - 3:37
    thế là thuật toán mới này vừa ít tổng quát hơn và cũng kém hiệu quả hơn so với Euclid.
  • 3:37 - 3:41
    Số nguyên tố rất quan trọng
  • 3:41 - 3:48
    ta sẽ sử dụng nó trong vài tuần tới.
  • 3:48 - 3:52
    tôi sẽ trình bày một ứng dụng của định lý Fermat
  • 3:52 - 3:57
    Giả sử ta muốn tạo ra một số nguyên tố ngẫu nhiên rất lớn, khoảng một nghìn bit hoặc nhiều hơn.
  • 3:57 - 4:02
    Số ta đang tìm lớn của 2 mũ 1024.
  • 4:02 - 4:07
    có một thuật toán xác suất rất đơn giản để làm điều này. Ta cần chọn ngẫu nhiên một số
  • 4:07 - 4:12
    nguyên trong khoảng nào đó, sau đó kiểm tra xem số nguyên này có thỏa định lý của Fermet hay không?
  • 4:12 - 4:17
    Ta sẽ kiểm tra
  • 4:17 - 4:22
    sử dụng cơ số 2, ta kiểm tra xem 2 mũ p trừ 1 có bằng 1 trong Zp hay không
  • 4:22 - 4:27
    nếu kết quả là không, thì ta biết chắc rằng p không phải là số nguyên tố
  • 4:27 - 4:33
    nếu vậy, ta sẽ trở lại bước 1 với một số nguyên tố khác
  • 4:33 - 4:37
    Ta cứ làm lại, làm lại
  • 4:37 - 4:42
    cho tới khi nào ta được một số thỏa điều kiện này.
  • 4:42 - 4:46
    khi đó ta dừng thuật toán và xuất kết quả
  • 4:46 - 4:52
    Tuy khá là khó để chứng minh
  • 4:52 - 4:56
    nhưng nếu một số vượt qua được điều kiện trên thì *cực kì* có khả nănglà số nguyên tố.
  • 4:56 - 5:01
    xác suất mà p không là số nguyên tố là cực kì nhỏ.
  • 5:01 - 5:06
    khoảng cở 2 mũ -60 cho một số dài 1024 bit
  • 5:06 - 5:11
    khi số bit càng nhiều thì xác suất một số thỏa điều kiện mà lại không phải là số nguyên tố
  • 5:11 - 5:16
    giảm xuống 0 rất là nhanh. Đây là một thuật toán thú vị ;)
  • 5:16 - 5:20
    Ta nhận ra là không thể đảm bảo kết quả là nguyên tố
  • 5:20 - 5:25
    những gì ta biết là nó rất, rất có thể là nguyên tố.
  • 5:25 - 5:30
    nói khác đi, nếu nó không phải là số nguyên tố thì ta cực kì không may mắn.
  • 5:30 - 5:34
    Xác suất không may nắm nhỏ đến mức *có thể bỏ qua*
  • 5:34 - 5:40
    nếu bạn nhìn vào tập tất cả các số có 1024 bit.
  • 5:40 - 5:45
    tập các số nguyên tố ở đây,
  • 5:45 - 5:51
    và sau đó một tập nhỏ các hợp số mà qua được phép thử,
  • 5:51 - 5:56
    ta gọi chúng là FP. Có một phần rất nhỏ hợp số sẽ qua được điều kiện kiểm tra
  • 5:56 - 6:01
    Tuy nhiên vì ta chọn một cách ngẫu nhiên
  • 6:01 - 6:05
    một cái ở đây, ở đâu, ở đâu, và cứ như thế, ta chọn những số nguyên ngẫu nhiên
  • 6:05 - 6:10
    xác suất mà ta chọn phải FP là rất nhỏ
  • 6:10 - 6:15
    nhỏ tới mức có thể bỏ qua được (negligible)
  • 6:15 - 6:21
    có thể chứng được mình tập FB là cực nhỏ.
  • 6:21 - 6:25
    chọn ngẫu nhiên một số thì rất khó mà trúng phải FP
  • 6:25 - 6:29
    Thật ra đây không phải là thuật toán tốt nhất để sinh ra số nguyên tố
  • 6:29 - 6:33
    ta có những thuật toán tốt hơn nhiều
  • 6:33 - 6:36
    thậm chí ta có những thuật toán rất hiệu quả
  • 6:36 - 6:40
    để kiểm tra một số có phải là số nguyên tố
  • 6:40 - 6:45
    một cách chắc chắn
  • 6:45 - 6:49
    dù sao thì phép thử Fermat cũng là một phép thử rất đơn giản và dễ thực hiện để kiểm tra số nguyên tố
  • 6:49 - 6:53
    Điểm đáng chú ý cuối cùng ở đây
  • 6:53 - 6:57
    là, cần bao nhiều vòng lặp để
  • 6:57 - 7:02
    tìm ra một số nguyên tố. Một kết quả cổ điển
  • 7:02 - 7:06
    được gọi là định lý số nguyên tố, nói ràng, sau vài trăm vòng lặp
  • 7:06 - 7:10
    ta sẽ tìm được một số nguyên tố với xác suất cao.
  • 7:10 - 7:15
    Giờ thì ta đã hiểu được định lý Fermat
  • 7:15 - 7:19
    tiếp theo ta sẽ nói về cấu trúc của ZP*
  • 7:19 - 7:24
    Ta tiến thêm 100 năm nữa
  • 7:24 - 7:29
    vào thế kỉ 18, để gặp gỡ Euler.
  • 7:29 - 7:33
    Điều đầu tiên, Euler nhìn nhận ZP*, theo toán học hiện đại, là một nhóm vòng (cyclic group).
  • 7:33 - 7:38
    Nhóm vòng, nghĩa là sao?
  • 7:38 - 7:43
    nó có nghĩa là tồn tại phần tử nào G nào đó thuộc ZP*, sao cho nếu ta lấy G
  • 7:43 - 7:48
    và lấy mũ, G bình phương, G lập phương, v.v. Cứ tiếp tục như vậy
  • 7:48 - 7:53
    cho đến khi tới G mũ p trừ 2. Lưu ý là không ra khỏi G mũ p trừ 2
  • 7:53 - 7:57
    vì ta biết, theo định lý Fermat rằng, G mũ p - 1 bằng 1
  • 7:57 - 8:02
    vì vậy ta sẽ lập lặp một. Nếu ta tới G mũ p - 1. thì
  • 8:02 - 8:07
    G mũ p sẽ bằng G, G mũ p + 1 sẽ bằng G bình phương và cứ tiếp tục như vậy
  • 8:07 - 8:12
    Ta sẽ được sự lại nếu tiếp tục với mũ cao hơn
  • 8:12 - 8:17
    vì vậy chỉ cần dừng lại ở mũ p - 2
  • 8:17 - 8:21
    Euler đã chỉ ra rằng có một phần tử G như vậy,
  • 8:21 - 8:26
    nếu ta duyệt qua tất cả các mũ thì sẽ thấy nó sẽ phủ hết toàn bộ nhóm ZP*
  • 8:26 - 8:31
    Các lũy thừa của G cho ta tất cả phần tử thuộc ZP*.
  • 8:31 - 8:36
    G gọi là phần tử sinh. G sinh ra ZP*
  • 8:36 - 8:41
    Xét một ví dụ, P = 7
  • 8:41 - 8:46
    xem tất cả những lũy thừa của 3. 3 bình phương, 3 lập phương, 3 mũ 4,
  • 8:46 - 8:50
    3 mũ 5. 3 mũ 6 = 1 modulo 7, theo định lý Fermat.
  • 8:50 - 8:55
    không cần xem xét 3 mũ 6, vì ta biết nó sẽ là 1
  • 8:55 - 9:00
    Tôi đã tính những lũy thừa này.
  • 9:00 - 9:04
    Bạn thấy đấy, tất cả phần từ trong Z7* đều ở đây
  • 9:04 - 9:09
    ta có 2, 3, 4, 5, 6.
  • 9:09 - 9:15
    ta sẽ nói rằng 3 là phần tử sinh của Z7 *.
  • 9:15 - 9:20
    bây giờ tôi sẽ chỉ ra, không phải phần tử nào cũng là phần tử sinh. ví dụ, nếu ta xem xét tất cả lũy thừa của 2
  • 9:20 - 9:25
    nó không thể sinh ra toàn bộ nhóm. 2 mũ 0 được 1
  • 9:25 - 9:30
    2 mũ 1 được 2, 2 mũ 2 được 4, 3 mỹ 3 được 8, chính là 1 modulo 7.
  • 9:30 - 9:34
    Do đó ta đã lặp lại
  • 9:34 - 9:40
    2 mũ 4 sẽ là 2, 2 mũ 5 sẽ là 4, và cứ thế...
  • 9:40 - 9:45
    Nếu nhìn vào đây, thì ta chỉ thấy 1, 2, 4
  • 9:45 - 9:50
    ta không có được toàn một nhóm, dó đó 2 không là phần tử sinh của Z7 *
  • 9:50 - 9:56
    Đôi khi ta được cho một phần tử G của ZP*
  • 9:56 - 10:02
    nếu ta nhìn tất cả lũy thừa của G, kết quả sẽ là một nhóm được sinh ra bởi G
  • 10:02 - 10:07
    Tất cả đều là lũy thừa của G. Ta có được một nhóm multiplicative
  • 10:07 - 10:13
    không quan trọng về kĩ thuật. mấu chốt ở đây là
  • 10:13 - 10:18
    ta sẽ gọi tất cả những lũy thừa của G, là nhóm được sinh ra bởi G.
  • 10:18 - 10:24
    thực ra kí hiệu này không được thông dụng,
  • 10:24 - 10:30
    để kí hiệu nhóm sinh ra bởi G. Ta gọi bậc của G trong Zp* là
  • 10:30 - 10:36
    kích thước của nhóm được sinh ra bởi G.
  • 10:36 - 10:41
    bậc của G trong ZP* là kích thước của nhóm này. Cách khác để nghĩ về số này
  • 10:41 - 10:46
    nó là số nguyên A nhỏ nhất sao cho G mũ A bằng 1
  • 10:47 - 10:53
    cơ bản nó là số mũ nhỏ nhất của G kết quả là 1
  • 10:53 - 10:59
    Dễ thấy điều này nếu ta nhìn vào các lũy thừa của G
  • 10:59 - 11:04
    G, G bình phương, G lập phương và tiếp tục, ...
  • 11:04 - 11:10
    cho đến khi ta được 1. Và ta xem số mũ này là bậc của G
  • 11:10 - 11:15
    Điều này đơn giản bằng 1 theo định nghĩa
  • 11:16 - 11:22
    không cần phải xem xét của lũy thừa cao hơn. Ta chỉ cần dừng ở đây
  • 11:22 - 11:28
    kết quả là kích thước của tập
  • 11:28 - 11:33
    là bậc của G, số này chính là số mũ nhỏ nhất
  • 11:33 - 11:39
    mà G lũy thừa cho ra 1 trong Zp.
  • 11:39 - 11:43
    hơi khó hiểu một tí
  • 11:43 - 11:48
    nhưng sẽ dễ dàng với một vài ví dụ. Số nguyên tố của ta vẫn là 7
  • 11:48 - 11:53
    hãy xem xét bậc của các phần tử
  • 11:53 - 11:58
    bậc của 3 là nhiêu? Ta đang tìm kích thước của nhóm
  • 11:58 - 12:03
    được sinh ra bởi 3 theo modulo 7. ta nói rằng 3 sinh ra Z7 *
  • 12:03 - 12:08
    nó sinh ra mọi phần tử của Z7*. có 6 phần tử cả thẩy.
  • 12:08 - 12:13
    do đó ta nói 3 có bậc là 6. tương tự,
  • 12:13 - 12:17
    bậc của 2 modulo 7 là nhiêu? ta đã thấy đán án.
  • 12:17 - 12:22
    Tôi hỏi bạn, bậc của hai,
  • 12:22 - 12:29
    là bao nhiêu? Câu trả lời là 3, đơn giản vì nếu ta nhìn vào
  • 12:29 - 12:34
    tập các lũy thừa của 2, ta có 1, 2, 2 bình phương (2 mũ 3 = 1)
  • 12:34 - 12:39
    đây là toàn bộ lũy thừa của 2 (modulo 7)
  • 12:39 - 12:44
    có 3 phần tử, vậy bậc của 2 (modulo 7) là 3
  • 12:44 - 12:49
    tôi sẽ hỏi một câu khác
  • 12:49 - 12:54
    bậc của 1 (modulo 7) là nhiêu? Câu trả lời là 1. bởi vì nếu nhìn vào nhóm được sinh ra bởi 1
  • 12:54 - 12:59
    chỉ có một số, chính là số 1
  • 12:59 - 13:03
    tôi sẽ luôn được 1 với mọi lũy thừa.
  • 13:03 - 13:07
    do đó bậc của 1 (modulo 7) là 1
  • 13:07 - 13:13
    thật ra sẽ luôn là 1 với modulo bất kì số nguyên tố nào. Có một định lý quan trọng của Lagrange (thêm một siêu nhân)
  • 13:13 - 13:17
    thật ra
  • 13:17 - 13:22
    Định lý của Langrage về cơ bản chỉ ra rằng nếu bạn nhìn vào bậc của G (modulo p)
  • 13:22 - 13:27
    thì nó luôn được chia hết bởi p-1. Trong hai ví dụ, ta thấy
  • 13:27 - 13:32
    6 được chia hết bơi 7 - 1, 6 chia hết cho 6, tương tư
  • 13:32 - 13:37
    3 cũng chia hết bởi 7 - 1, tổng quát, bậc này
  • 13:37 - 13:41
    sẽ luôn là một thừa số của p - 1.
  • 13:41 - 13:45
    rất khó để có thể suy ra được định lý Fermat trược tiếp từ
  • 13:45 - 13:49
    định lý Lagrange.
  • 13:49 - 13:53
    Định lý Fermet theo một cách hiểu khác được suy ra từ định lý Lagrange
  • 13:55 - 13:59
    Lagrange, tìm ra nó vào thế kỉ 19
  • 13:59 - 14:04
    ta đã có một hình trình xuyên thời gian từ thời Hi Lạp cổ đại đến
  • 14:04 - 14:09
    cuối thế kỉ 19. Có nhiều hệ mã hóa
  • 14:09 - 14:14
    sử dụng nhiều kiến thức toán học của thế kỉ 19.
  • 14:14 - 14:18
    giờ thì ta đã rõ về cấp trúc của ZP*. tổng quát hóa điều này cho hợp số,
  • 14:18 - 14:23
    cấu trúc của ZN*. Ở đây ta sẽ thấy định lý của Euler
  • 14:23 - 14:28
    là một định lý tổng quát so với định lý Fermat.
  • 14:28 - 14:33
    Euler định nghĩa hàm sau. cho số nguyên N, phi
  • 14:33 - 14:37
    của N là hàm số, trả về kích thức tập ZN*
  • 14:37 - 14:43
    gọi là hàm Phi Euler ;)
  • 14:43 - 14:49
    ví dụ, ta có Z12* chứa bốn phần tử, 1, 5, 7, 11
  • 14:49 - 14:54
    do đó phi của 12 là 4
  • 14:54 - 14:59
    một câu đố, phi của p là nhiêu?
  • 14:59 - 15:06
    cơ bản thì đây là kích thước của Zp*.
  • 15:06 - 15:12
    chứa tất cả phần của của ZP trừ số 0
  • 15:12 - 15:19
    do đó phi của p là p - 1. có một trường hợp đặc biệt
  • 15:19 - 15:23
    tôi sẽ chỉ ra ở đây, ta sẽ dùng lại cho hệ mã RSA
  • 15:23 - 15:28
    nếu N là tích của hai số nguyên tố, thì phi của N chính là N - P - Q + 1
  • 15:28 - 15:33
    để tôi chỉ ra vì sao điều này lại đúng. Về cơ bản N là kích thước của ZN. giờ ta cần
  • 15:33 - 15:38
    loại bỏ tất cả những phần tử không nguyên tố cùng nhau với N.
  • 15:38 - 15:43
    làm sao để một phần tử không nguyên tố cùng nhau với n? nó phải chia hết bởi p hoặc là chia hết bởi q
  • 15:43 - 15:47
    có bao nhiêu phần tử từ 0 tới n - 1 được chia hết
  • 15:47 - 15:52
    bởi p, có chính xác q phần tử như vậy. Có bao nhiêu phần tử chia hết
  • 15:52 - 15:56
    bởi q, có p phần tử như vậy.
  • 15:56 - 16:01
    ta trừ p để lại ra những phần tử chia hết bởi q. trừ q để loại bỏ
  • 16:01 - 16:06
    những phần tử chia hết bỏi p. Lưu ý là ta đã loại bỏ phần tử 0 hai lần
  • 16:06 - 16:12
    vì nó được chia hết bởi cả p và q, do đó, ta cộng thêm một
  • 16:12 - 16:18
    kết quả là phi(N) = N - P - Q + 1
  • 16:18 - 16:25
    cách viết khác là (p-1)x(q-1)
  • 16:25 - 16:30
    ta sẽ quay lại vấn đề này khi nói về hệ mã RSA.
  • 16:30 - 16:36
    ở đây ta chỉ mới định nghĩa hàm phi Euler.
  • 16:36 - 16:41
    Euler đã có một chứng minh tuyệt vời rằng
  • 16:41 - 16:46
    với mọi phần tử X nào của ZN* . thì X mũ phi(N)
  • 16:46 - 16:51
    bằng 1 trong ZN. Đây là một tổng quát hóa của định lý Fermat
  • 16:51 - 16:55
    định lý Fermat chỉ áp dụng cho số nguyên tố
  • 16:55 - 17:00
    với số nguyên tố p, ta có phi(p) = p - 1. ta chỉ cần viết p - 1 ở đây
  • 17:00 - 17:04
    và ta lại có được định lý Fermat.
  • 17:04 - 17:09
    vẻ đẹp của định lý Euler là nó áp dụng cho cả hợp số
  • 17:09 - 17:16
    không chỉ riêng số nguyên tố. Hãy nhìn vào ví dụ, 5 mũ phi(12)
  • 17:16 - 17:22
    5 là một phần tử của Z12*. Nếu ta lấy 5 mũ 12, ta sẽ được
  • 17:22 - 17:27
    ta sẽ được 1, ta biết rằng, phi(12) = 4 do đó
  • 17:27 - 17:32
    5 mũ 4 là 625,
  • 17:32 - 17:36
    bằng 1 modulo 12
  • 17:36 - 17:40
    tuy đây chỉ là một ví dụ, nhưng không khó để có thể chứng minh
  • 17:40 - 17:45
    định lý Euler. sự thật là
  • 17:45 - 17:49
    định lý Euler lại là một trường hợp đặc biệt của định lý Lagrange
  • 17:50 - 17:54
    okay, ta đã biết đây là một trường hợp tổng quát của định lý Fermat và
  • 17:54 - 17:58
    thực tế thì, định lý Euler là cơ sở cho hệ mã RSA
  • 17:58 - 18:04
    Tôi sẽ dừng ở đây, ta sẽ tiếp tục với những phương trình bậc hai
  • 18:04 - 18:05
    ở phần tiếp theo.
Title:
Fermat và Euler (18 min)
Description:

Nói về những định lý có vai trò quan trọng trong số học

more » « less
Video Language:
English
xcodevn edited Vietnamese subtitles for Fermat and Euler (18 min)
xcodevn edited Vietnamese subtitles for Fermat and Euler (18 min)
dang.hvu added a translation

Vietnamese subtitles

Revisions