1. Trang chủ
  2. » Tài Chính - Ngân Hàng

Số nguyên tố và ứng dụng trong phương pháp chứng minh không tiết lộ thông tin

59 653 0

Đ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

Định dạng
Số trang 59
Dung lượng 601,56 KB

Nội dung

Kiểm tra một số có phải số nguyên tố hay không, làm sao sinh được các số nguyên tố càng lớn càng tốt là những bài toán khá quan trọng trong khoa học máy tính.. Chương 1 giới thiệu số ngu

Trang 1

Mục lục

Mục lục ……… …………   i 

Lời cam kết………   iii 

Lời cảm ơn………  iv 

Danh mục viết tắt……… ………   v 

Danh mục các hình vẽ và bảng biểu………   vi 

 Lời nói đầu………       vii 

Chương 1: Số nguyên tố và các bài toán liên quan………. 

    1.1. Định nghĩa về số nguyên tố………   1 

    1.2. Tính chất của số nguyên tố………  1 

    1.3. Sinh số nguyên tố và phân tích thừa số nguyên tố………  2 

       1.3.1. Sinh số nguyên tố……… …  2 

       1.3.2. Phân tích thừa số nguyên tố……….………  4 

    1.4. Kết luận chương………  6 

Chương 2: Số nguyên tố và ứng dụng trong phương pháp chứng minh không tiết lộ thông tin 7      2.1. Thuật toán kiểm tra số nguyên tố……….……….  7 

        2.1.1. Kiểm tra số nguyên tố bằng thuật toán Konigin – Pomerans……  8 

        2.1.2. Kiểm tra tính nguyên tố bằng thuật toán Miller………  11 

        2.1.3. Kiểm tra tính nguyên tố của số bằng phép kiểm tra xác suất……  11 

        2.1.4. Kiểm tra trên cơ sở định luật nhỏ Fermat…… ……….  12 

        2.1.5. Kiểm tra bằng Miller – Ranbin………  15 

        2.1.6. Kiểm tra bằng Solovay – Stransen………  17 

        2.1.7. Kiểm tra tính nguyên tố của số bằng thuật toán đa thức…………  19 

   2.2. Thuật toán sinh số nguyên tố……….…………  21 

       2.2.1.Thuật toán sinh số nguyên tố xác xuất………  21 

Trang 2

Chương 3: Ứng dụng của số nguyên tố lớn trong phương pháp chứng

   3.1. Phương pháp chứng minh không tiết lộ thông tin………   26    3.2.Ứng dụng CMKTLTT trong bỏ phiếu điện tử……….  32    3.3.Ứng dụng CMKTLTT trong tiền điện tử……… 

47 

Trang 3

Lời cam kết

 

    Tài  liệu được sử dụng  trong  luận văn  được thu  thập từ  các nguồn kiến  thức hợp  pháp,  có  trích  dẫn  nguồn  tài  liệu  tham  khảo.  Chương  trình  sử  dụng  mã nguồn mở, có xuất xứ. 

 

     Dưới sự giúp đỡ nhiệt tình và chỉ bảo chi tiết của giáo viên hướng dẫn, tôi đã hoàn thành luận văn của mình. Tôi xin cam kết luận văn này là của bản thân tôi làm và nghiên cứu, không hề trùng hay sao chép của bất kỳ ai.  

Trang 4

Lời cảm ơn

      Trước hết tôi xin gửi lời cảm ơn đến TS Nguyễn Thị Hồng Minh, Phó Chủ nhiệm khoa Sau đại học, Đại học Quốc gia Hà Nội người đã hướng dẫn và giúp đỡ tôi rất nhiều trong suốt quá trình tìm hiểu nghiên cứu và hoàn thành khóa luận này Sự hướng dẫn nhiệt tình của Tiến sĩ đã giúp tôi quyết tâm hoàn thành luận văn, qua đó bản thân tôi đã mở rộng hiểu biết về vấn đề bảo mật

thông tin và các ứng dụng trong thự tế của nó

Tôi cũng xin chân thành cảm ơn quý Thầy, Cô trong trường Đại học Công nghệ Thông tin & Truyền thông - Đại học Thái Nguyên; quý Thầy, Cô trong Viện Công nghệ thông tin đã tận tình truyền đạt kiến thức cho chúng tôi trong 2 năm học tập và nghiên cứu Với vốn tiếp thu trong khóa học không chỉ là nền tảng cho quá trình nghiên cứu luận văn này mà còn là hành trang quý báu, nền tảng vững chắc để tôi tiếp tục nghiên cứu, hoạt động trong lĩnh vực công nghệ thông tin

Cuối cùng xin cảm ơn gia đình, bạn bè, đồng nghiệp đã giúp đỡ và động viên tôi trong công việc và học tập cũng như trong quá trình thực hiện luận văn này

Xin chúc mọi người luôn mạnh khoẻ, đạt được nhiều thành tích cao trong công tác, học tập và nghiên cứu khoa học!

  Trân trọng cảm ơn! 

Thái Nguyên, ngày 12 tháng 5 năm 2016

Tác giả

Tạ Thị Hằng

Trang 6

Danh mục các hình và bảng

Hình 1.1: Sơ đồ quy trình bỏ lá phiếu điện tử……… 35 

Hình 1.2: Sơ đồ giai đoạn đăng ký bỏ phiếu………  36 Hình 1.3: Sơ đồ giai đoạn bỏ phiếu……….  38 

  

 

 

Trang 7

Lời nói đầu 

        Ngày  nay,  công  nghệ  thông  tin  đang  phát  triển  mạnh  mẽ,  Internet  đã  trở thành  một  phần  không  thể  thiếu  trong  cuộc  sống  hàng  ngày  thì  các  hoạt  động trao đổi thông tin, mua bán,…trên mạng Internet diễn ra thường xuyên và ngày phổ biến hơn. Chính vì vậy mà việc bảo mật, đảm bảo an toàn thông tin đang là nhu cầu cấp thiết. Trước các nhu cầu cấp thiết đó, lý thuyết về mật mã thông tin 

đã ra đời nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu đang được truyền trên mạng. Mật mã học là một trong những vấn đề quan trọng trong lĩnh  vực bảo  mật và  an toàn thông  tin.Trên thế giới  mật  mã học  được ra đời  từ  thời  La Mã  cổ  đại  và  ngày  càng  được  nghiên  cứu, phát  triển đạt  những thành tựu to lớn. Trong mật  mã học thì vấn đề bảo  mật luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong hệ thống mã hóa khóa công khai vấn đề xác thực là vô cùng quan trọng, để giải quyết vấn đề trên người ta đưa ra một cách giải quyết hiệu quả, đó là phương pháp chứng minh không tiết lộ thông tin. Với 

sự bùng nổ của mạng Internet hiên nay, mạng máy tính đang ngày càng đóng vai trò  thiết  yếu  trong  lĩnh  vực  hoạt  động  xã  hội,  và  khi  nó  trở  thành  phương tiện điều  hành  các  hệ  thống  thì  nhu  cầu  bảo  mật  thông  tin  được  đặt  lên  hàng  đầu. Việc sử dụng phương pháp chứng minh không tiết lộ thông tin  là một giải pháp hữu  hiệu,  ngày  càng  được  ứng  dụng  nhiều  trong  thực  tế,  không  chỉ  giới  hạn trong nghành công nghệ thông tin, mật mã học mà còn được áp dụng nhiều trong lĩnh vực khác như ngân hàng, viễn thông…”Chứng minh không tiết lộ thông tin (zero  Knowledge  Proofs”  là  phương  pháp  chứng  minh  không  có  nghĩa  là  “ không để lộ thông tin” mà là “để lộ thông tin ở mức thấp nhất” về sự vật, sự việc cần chứng minh. Với việc “không để lộ” người xác minh sẽ không có nhiều hiểu biết về sự vật, sự việc, họ chỉ thu được chút ít thông tin (coi như là không) về tính chất của nó nhưng vẫn đảm bảo được nhận thức về tính đúng của đối tượng 

Trang 8

và cả  những ứng dụng thực tế  hiệu quả.   Ứng  dụng chính của số  nguyên  tố  là trong  lĩnh  vực  mã  hóa  (cryptography),  trong  đó  chúng  ta  cần  tạo  ra  những  số nguyên  tố  với  hàng  trăm  chữ  số.  Kiểm  tra  một  số  có  phải  số  nguyên  tố  hay không, làm sao sinh được các số nguyên tố càng lớn càng tốt là những bài toán khá quan trọng trong khoa học máy tính.  

Trong đề tài này em tập trung nghiên cứu về một số vấn đề liên quan tới số nguyên tố lớn và ứng dụng trong phương pháp chứng minh không tiết lộ thông tin (bỏ lá phiếu điện tử và tiền điện tử). 

      Bố cục luận văn gồm 3 chương. Chương 1 giới thiệu số nguyên tố và các bài toán liên quan và cách phân tích thừa số nguyên tố.Tiếp theo chương 2 trình bày 

về thuật toán kiểm tra số nguyên tố lớn và ứng dụng trong phương pháp chứng minh không tiết lộ thông tin như bỏ lá phiếu điện tử, tiền điện tử từ đó chúng tôi 

sẽ có những vị trí đặt trạm làm tiền đề cho chương 3 với thuật toán kiểm tra số nguyên tố lớn để ứng dụng trong bỏ lá phiếu điện tử. Chương 3 sẽ trình bày một 

số  kết  quả  thực  nghiệm  để  kiểm  chứng  hiệu  quả  của  thuật  toán  trên  hệ  thống máy  tính  để  kiểm  tra  và  sinh  số  nguyên  tố  lớn,  lồng  ghép  vào  chương  trình chứng minh không tiết lộ thông tin trong việc mô tả quá trình bỏ lá phiếu điện 

tử. 

Trang 10

Chương 1: Số nguyên tố và các bài toán liên quan 

1.1 Định nghĩa số nguyên tố

Số tự nhiên p, lớn hơn 1 gọi là số nguyên tố nếu như nó chỉ chia hết cho 1 và  chính nó. Định lý cơ bản của số học nói rằng, bất kỳ số tự nhiên n, lớn hơn 1 có 

thể phân tích thành tích các số  nguyên tố. Tức là một số tự nhiên n có thể biểu diễn dưới dạng sau: 

k

k

p p

n 1 1

 Ước số dương bé nhất khác 1 của một hợp số a là một số nguyên tố không 

vượt quá   

 2 là số nguyên tố nhỏ nhất và cũng là số nguyên tố chẵn duy nhất 

 Tập hợp các số nguyên tố là vô hạn. 

Trang 11

1.3 Sinh số nguyên tố và phân tích thừa số nguyên tố 

1.3.1 Sinh số nguyên tố

     Vậy  làm  sao  chúng  ta  có  thể  tìm  ra  được  các  số  nguyên  tố  trong  số  các  số nguyên dương  (hay số tự nhiên dương)?  Trong tập hợp các số tự nhiên, có bao nhiêu số nguyên tố? Cho đến nay, người ta vẫn chưa biết được, bởi vì quy luật của nó rất khó tìm, giống như đứa trẻ bướng bỉnh vậy, nó nấp ở phía đông, chạy 

ở phía tây, thách thức các nhà toán học. 

Có lẽ chúng ta cũng đã từng nghe đến phương pháp sàng lọc của nhà toán học Eratosthenes, dùng phương pháp này có thể tìm ra các số nguyên tố rất tiện lợi.  Nó  giống  như  là  sàng  lấy  sỏi  trong  cát,  sàng  lọc  lấy  những  số  nguyên  tố trong tập hợp số tự nhiên, bảng các số nguyên tố chính là được làm theo phương pháp này. 

Thế nhưng, các nhà toán học chưa thỏa mãn với việc dùng phương pháp này để tìm ra số nguyên tố, bởi vì nó có chút mò mẫm nhất định, bạn không thể biết trước được số nguyên sẽ “sàng” ra số nào. Điều mà các nhà toán học muốn 

là tìm ra quy luật của số nguyên tố để nghiên cứu sâu hơn về nó. 

Từ trong bảng các số nguyên tố, chúng ta có thể thấy chúng được phân bố như  sau:  từ  1  đến  1000  có  168  số  nguyên  tố;  từ  1000  đến  2000  có  135  số;  từ 

2000 đến 3000 có 127 số; từ 3000 đến 4000 có 120 số; từ 4000 đến 5000 có 119 

số. Khi số các số tự nhiên càng lớn thì tỉ lệ phân bố các số nguyên tố càng thưa. 

Số nguyên tố đã "hoá trang" cho mình rồi lẩn khuất trong các số tự nhiên, khiến việc tìm ra chúng trở nên khó khăn hơn.  

Ví dụ, 101, 401, 601, 701 đều là số nguyên tố, nhưng 301 và 901 thì lại không phải. Có người thử tính như thế này: 12 + 1 + 41 = 43, 22 + 2 + 41 = 47, 

32 + 3 + 41 = 53,  , 392 + 39 + 41 = 1601. Có 39 số từ 43 cho đến 1601 đều là 

số nguyên tố, thế nhưng tiếp sau đó: 402 +40 +41 =1681 = 41 x 41 thì lại là một hợp số. 

Trang 12

Nhà toán học người Pháp Ferma từng nghiên cứu lâu dài về số nguyên tố, ông từng đưa ra một suy đoán thế này: số (22n + 1) (với n là số nguyên) thì nhất định  là  số nguyên  tố.  Ferma  đã  thử  5  "số Ferma"  đầu thì  đều  là  số  nguyên  tố, nhưng đến số "ferma" thứ sáu thì lại là hợp số, hơn nữa từ số "Ferma thứ 6" trở 

đi,  không  thể  phát hiện  thấy  số  nguyên  tố  nào  nữa, toàn  là hợp  số.  Xem  ra  số nguyên tố đã cố trêu đùa Ferma. 

Năm 1644, nhà toán học người Pháp Mason đã đưa ra "số Mason", hình thức của nó là (2p - 1). Khi ông còn sống, ông tìm ra 11p để cho (2p - 1) là số nguyên tố, người ta tiến hành kiểm chứng đối với 8p, chúng đều là số nguyên tố. 

250 năm sau, năm 1903, các nhà toán học tìm ra số Mason thứ 9 không phải là 

số nguyên tố mà là hợp số. Mặc dù Mason cũng không thực sự tìm ra quy luật của số nguyên tố, nhưng dùng phương pháp của ông, người ta tìm được nhiều số nguyên tố hơn. Trong đó, số nguyên tố Mason thứ 33 được tìm ra nhờ máy tính điện tử , nó có 378632 là số nguyên tố lớn nhất mà loài người tìm được đến lúc 

đó. 

Mersenne,  tu  sĩ  người  Pháp  sinh  năm  1588,  đã  khám  phá  ra  dạng  số nguyên tố 2p-1 Một nhóm các nhà khoa học thuộc Đại học Missouri (Mỹ) đã sử dụng hơn 700 máy tính để tìm ra số nguyên tố lớn nhất cho đến nay, một con số khổng  lồ  với  9.152.052  con  số.  Phát  hiện  này  được  thực  hiện  vào  ngày 15/12/2005 và đã được xác nhận lại vào ngày 24/12/2005. Sự kiện này đánh dấu lần thứ hai trong năm nay dự án kết hợp máy tính có tên Tìm kiếm số nguyên tố Mersenne trên Internet (GIMPS - Great Internet Mersenne Prime Search) tìm ra 

số nguyên tố lớn nhất. Nhưng cũng tương tự như phát hiện hồi tháng Hai, con số mới được tìm ra này vẫn chưa đạt được kích thước 10 triệu con số cần thiết để giành  được  giải  thưởng  100.000  USD  từ  Quỹ  điện  tử  có  tên  là  Electronic Frontier  Foundation. Dự  án  GIMPS  khai  thác  sức  mạnh  của  hơn  200.000  máy tính được cung cấp một cách tình nguyện với nhiệm vụ tìm  kiếm tất cả các số nguyên  tố  Mersene.  Một  số  nguyên  tố  là  một  số  chỉ  có  thể  chia  hết  cho  1  và 

Trang 13

Ví dụ: 7 cũng là một số nguyên tố Mersenne bởi nó là một số nguyên tố và bằng 2x7 - 1. Đã vài năm nay, những số nguyên tố lớn nhất được phát hiện đều là các 

số nguyên tố Mersenne. Chúng được đặt tên theo tên của Marin Mersenne, một 

tu  sĩ  người  Pháp  sinh  năm  1588,  người  đã  khám  phá  ra  dạng  số  này.  Các  số nguyên tố Mersenne trong nhiều trường hợp đã được các cá nhân tìm ra, nhưng lần này thì thành quả lại là của một nhóm tình nguyện viên. Nhóm này tới nay 

đã cống hiến một năng lực xử lý nhiều hơn bất cứ ai: tương đương với khả năng 

xử lý của của một máy tính Pentium 90MHz chạy liên tục trong  67.000 năm. Hai giáo sư Curtis Cooper và Steven Boone là những người phụ trách dự án này. Con số nguyên tố được phát hiện lần này là số nguyên tố Mersenne thứ 43 được tìm ra. 

1.3.2 Phân tích ra thừa số nguyên tố

Các  số  có  dạng  Mq =  2q -  1  (với  q  là  nguyên  tố)  được  gọi  là  các  số Mersenne và đã được nghiên cứu công phu. 

Vào  năm  1640  ,  Mersenne  đã  cho  rằng  Mlà  số  nguyên  tố  đối  với q=13,17,19,31,67,127,257; ông đã nhầm đối với 67 và 257 và đã không đưa 61, 

89  và  107  vào  danh  sách  trên.  Những  số  này  còn  sinh ra  các  số  nguyên  tố Mersenne. Phát hiện của ông thực sự đáng kinh ngạc về mặt độ lớn của các số. Một bài  toán  khá hiển  nhiên  là:  Xét  xem  một  số Mersenne  có là  số  nguyên  tố không, và nếu không thì xác định các thừa số của nó ( hay còn gọi là bài toán phân tích ra thừa số). Một kết quả cổ điển do Euler đưa ra năm 1750 và sau đó được Lagrange (1775) và Lucas (1875) chứng minh là: 

Nếu q là một số nguyên tố đồng dư  modul log 4(q(3) (mod 4)) thì M q chia hết  cho 2q + 1 khi và chỉ khi 2q + 1 là nguyên tố; trong trường hợp này, nếu q> 3 thì 

Mq là hợp số. 

Trang 14

Thật vậy: Cho n = 2q + 1 là một thừa số của  M qVì 22# 1 (mod n) nên 2q# 1 (mod n), và 22q - 1 = (2q+1)Mq º0 (mod n), từ đó bằng phép thử của Lucas suy ra 

" Nếu M q chia hết cho n thì nº±1 (mod 8) và nº1 (mod q)" 

Vậy cho nên ta chỉ cần chỉ ra rằng mọi thừa số nguyên tố p của M q có dạng trên 

là đủ. 

Thật vậy, nếu p là ước của Mq = 2q - 1 thì 2qº1 (mod q); Vì vậy theo bài  toán  nhỏ  của  Fermat  thì  q  là  ước  của  p-1,  tức  là  p  -  1  =  2kq  (vì  p#2).  Vì 

Nếu n lẻ, n³3 thì M n = 2n  - 1º7 (mod 12). Đồng thời, nếu Nº7 (mod 12) thì 

ký hiệu Jacobi: 

1 )

1 )(

3 ( )

3

(  N  (N 1 / 2  

Trang 15

m n

m

p p p a

p p p a

1 12 11

2 1

2 1 1

 

Khi đó: (a1,  , an) = p1β1   pmβm với βj = min (αij); i =1 ,n  ; j = 1 ,m

[a1,  , an] = p1ƴ1   pmƴm, ƴj = max(αij); i= 1 ,n ; j =  1,m

1.4 Kết luận chương

        Như  vậy,  chương  1  đã  tổng  quan  về  số  nguyên  tố  và  phân  tích  thừa  số nguyên tố. Đây là kiến thức cơ sở chuẩn bị cho những nghiên cứu tiếp theo của bản luận văn này. 

       Phần đầu nói về định nghĩa và các tính chất của số nguyên tố. 

       Tiếp theo là những vấn đề về sinh số nguyên tố và phân tích số nguyên tố 

đó ra thừa số. 

       Nội dung chính chương giúp hiểu được số nguyên tố và mô hình hóa lập kế hoạch giải quyết các bài toán về số nguyên tố. Đây là cơ sở quan trọng để tiến hành  xây  dựng  các  thuật  toán  kiểm  tra  số  nguyên  tố  và  sinh  số  nguyên  tố  lớn đảm bảo hiệu quả, sẽ trình bày ở các chương tiếp theo. 

Trang 16

Chương 2: Số nguyên tố lớn và ứng dụng trong chứng minh không tiết lộ thông tin

2.1 Thuật toán kiểm tra số nguyên tố

- Thêm  lệnh  kiểm  tra  trường  hợp  n  là  số  chẵn  (n%2==0)  kết  thúc  thuật 

toán trả về giá trị 0. 

- Điều  chỉnh vòng lặp  for với i chạy từ 2 tới  n  mà  vẫn nhận được kết 

quả đúng. Vì nếu một số n không là nguyên tố có ước a thì sẽ có ước n/a, một  trong hai giá trị a hoặc n/a sẽ có nhỏ hơn  n, vậy chúng ta chỉ cần thực  hiện vòng lặp đến  n  để tìm ra ước của n nếu có. Giải thuật 2 có thể được viết lại 

như sau: 

Trang 17

2.1.1 Kiểm tra số nguyên tố bằng thuật toán Konigin-Pomerans

Nếu n  N  và một số được phân tích ra thừa số nguyên tố n-1, thì để kiểm 

Trang 18

1.  Nếu  a  là  hợp  số,  thì  F(a) : F(a 1 )và  nhảy  lên  bước  6.  Nếu  a  là  số nguyên  tố,  và  a F(a 1 )  1 (modn),  thì  F(a) : F(a 1 )  và  nhảy  đến  bước  6. Ngược lại chúng ta kiểm tra điều kiện sau, xem có thỏa mãn không: 

) (mod 1

|

/ ( ) 1 (

(

a E q

q a E

a UCLN, q là số nguyên tố. 

a j

j

q n

log log

      Chúng ta chứng minh tính đúng đắn của thuật toán và nhận đánh giá về độ phức tạp của thuật toán. 

Trang 19

j

p n

M M j

N j

p n

1 2

Trang 20

từ đây NO(logn),p jO(logn), jO(logn). Cho nên bên trong và bên ngoài chu trình  thực  hiện O (log n)  bước,  và  trong từng  bước  thực  hiện O (log n)lệnh.  Tổng 

Thuật toán Miller

1.  Kiểm  tra  điều  kiện  sau  có  thỏa  mãn  hay  không s

(i) Kiểm tra điều kiện a|n 

(ii) Kiểm tra điều kiện a n1 (modn

(iii) Kiểm  tra  xem  có  đúng  hay  không,  với  một  số  giá  trị  của  k, 

) 1 (

1 kv2 n , 

n n n a

2.1.3 Kiểm tra tính nguyên tố của số bằng phép kiểm tra xác suất

  Các  phép  kiểm  tra  tính  nguyên  tố  hay  dùng  nhất  là  các  thuật  toán  ngẫu 

nhiên.  Giả  sử  có  một  mệnh  đề  Q(p,a) nào  đó  đúng  với  mọi  số  nguyên  tố p và  một số tự nhiên a <= p. Nếu n là một số tự nhiên lẻ và mệnh đề Q(n,a) đúng với  một a<= n được lấy ngẫu nhiên, khi đó a có khả năng là một số nguyên tố. Ta  đưa ra một thuật toán, kết luận rằng n là số nguyên tố. Nó là một thuật toán ngẫu 

Trang 21

nhiên hay thuật toán xác suất. Trong các thuật toán loại này, dùng để kiểm tra ngẫu nhiên không bao giờ kết luận một số nguyên tố là hợp số nhưng có thể kết luận  một  hợp  số  là  số  nguyên  tố.  Xác  suất  sai  của  phép  kiểm  tra  có  thể  giảm 

xuống  nhờ  việc  chọn  một  dãy  độc  lập  các  số  a nếu  với  mỗi  số  a xác  suất  để 

thuật toán kết luận một hợp số là số nguyên tố là nhỏ hơn một nửa thì sau k lần thử độc lập, xác suất sai là nhỏ hơn 2 k,độ tin cậy của thuật toán sẽ tăng lên theo 

k. 

Cấu trúc cơ bản của một phép kiểm tra ngẫu nhiên là: 

Input: n 

Output: Số n cần kiểm tra là hợp số hay là số nguyên 

Thuật toán kiểm tra xác suất

2.1.4 Kiểm tra trên cơ sở định luật nhỏ của Fermat

Phương pháp này dựa trên định luật nhỏ của Fermat: Nếu như n là số nguyên 

Trang 22

(1) aa (mod n) Nếu như UCLN(a,n)  1, thì  

(2) a n 1  1 (modn). Cho nên để kiểm tra tính nguyên tố của n, chúng ta chọn một số bất kỳ a  Z 

và kiểm tra xem có thỏa  mãn định lý của Fermat hay không? Nếu như định lý Fermat không thỏa  với  một giá trị a nào đó thì n  là hợp  số.  Nếu thỏa  mãn,  thì chúng ta cũng không thể kết luận rằng n là số nguyên tố, bởi nó chỉ đúng trong điều kiện cần. Vì vẫn tồn tại n là hợp số, thì đối với bất kỳ số a  Z, thì ta vẫn có được đằng thức a na (mod n), số này còn được gọi là số giả nguyên tố. 

Giải thuật Fermat kiểm tra tính nguyên tố của số

Trang 23

Vậy  cho  nên  nếu  n  là  số  nguyên  tố,  thì a n1 1 (modn),  tức  là a2s d  1 (modn). 

Từ đây ta có a2s1d   1 (modn). Nếu như a2s1d   1 (modn), thì chúng ta dừng, nếu 

như a2s1d  1 (modn), thì chúng ta lại khai căn cho đến khi tìm được a d hay căn đó 

đồng dư với -1. 

Để  kiểm  tra  tính nguyên tố của các số lẻ n,  9

10 25

7 n , ta  dùng quá  trình như sau: 

Bước 1: Kiểm tra tính chặt chẽ giả nguyên tố của n trong cơ sở 2,3,5,7. Nếu 

n không là chặt chẽ giả nguyên tố một trong các cơ sở đó thì n là hợp số. 

Bước 2: Nếu n = 3215031751, thì n là hợp số, ngược lại n là số nguyên tố. 

Trang 24

Như vậy chúng ta thấy việc kiểm tra trên cơ sở tính chặt chẽ giả nguyên tố là hiệu  quả  đối  với  việc  tìm  số  hợp  số,  thế  nhưng  cách  này  cũng  chỉ  đúng  trong một điều kiện cần thiết.  

    Khi  sử  dụng  kiểm  tra  Miller-Rabin  chúng  ta  căn  cứ  vào  một  mệnh  đề 

Q(p,a)đúng với các số nguyên tố p và mọi số tự nhiên  aANvà kiểm tra xem chúng  có  đúng  với  số  n  muốn  kiểm  tra  và  một  số a  Ađược  chọn  ngẫu  nhiên 

Trang 25

Chúng ta  xem tính  chặt  chẽ  của  thuật giải trên. Bây  giờ  chúng  ta  xem,  nếu 

như thuật toán trả lời FALSE mà trong khi đó n là số nguyên tố. Vì n là hợp số 

nên ta có a m  1 (modn). Bây giờ xét dãy các giá trị b được kiểm tra trong bước 2 

của thuật toán.  Vì b được bình  phương qua bước 5, nên ta kiểm tra  các  giá trị 

m m

m a a s

a , 2 , , 21  Vì kết quả thuật giải là FALSE nên ta cũng có: 

) (mod 1 2

1

1

2

n

a sm    hoặca2s1m   1 (modn).  Mà  theo  giả  thuyết  chứng  minh  ta 

a2s1m   1 (modn), nên a2s1m  1 (modn). Và ta có  s m

a22  là căn bậc 2 của 1. Bằng cách tương tự: 

) (mod 1

Điều này là mâu thuẫn. 

Xác suất trả lời sai:

Theo Fermat nếu  n là hợp số dương lẻ  thì trong  các số  a{2, ,n-1}tồn tại 

cơ sở a để n là số giả nguyên tố mạnh Fermat[F Sarrus vào năm

[[1820]] đã tìm thấy 341 = 11×31 là số giả nguyên tố đầu tiên,với cơ sở 2]

Gọi A là biến cố "Số n là hợp số". B là biến cố "Kiểm tra Miller-Rabin trả lời 

n là số nguyên tố". Khi đó xác suất sai của kiểm tra này là xác suất để số n là hợp  số  trong khi  thuật  toán  cho  câu  trả  lời  TRUE,  nghĩa  là  xác  suất điều  kiện P(A|B).  

Trang 26

n n A

P

ln

2 ln ln

2 1 )

Theo định lý Bayes trong lý thuyết xác suất ta có công thức để tính xác suất sai của kiểm tra Miller-Rabin là: 

) ( )

| ( ) ( )

| (

) ( )

| ( )

(

) ( )

| ( )

|

(

A P A B P A P A B P

A P A B P B

P

A P A B P B

P

ln

2 ) ( 1 )

Từ đây ta có 

2 ) 2 (ln )

| (

) 2 (ln )

| (

P

n A B P

B

A

Kiểm tra Miller-Rabin lặp:

Theo  công  thức  tính  xác  suất  sai  trên  đây,  với  n  lớn  (cỡ  130  chữ  số  thập phân), nếu thực hiện phép thử Miller-Rabin chỉ một lần, xác suất sai là khá lớn, tới trên 90%. Để giảm xác suất sai, ta lặp lại phép thử k lần với k số ngẫu nhiên 

a khác nhau, nếu n vượt qua 50 lần thử thì P(B|A) k

4

1

 , khi thay vào công thức với  50 lần thử  nếu  cả  50  lần,  phép thử  đều  "dương  tính"  thì  xác  suất  sai  giảm xưống chỉ còn là một số rất nhỏ không vượt quá  29

10

9     

2.1.6 Thuật toán kiểm tra số nguyên tố của Solovay – Stransen

Theo Euler là mệnh đề Q(p,a). Khi đó Q(p,a) đúng với mọi số nguyên tố p và 

mọi số tự nhiên a, 1 a  p  Thay số nguyên tố p bằng số lẻ n ta định nghĩa: Hợp 

số n được gọi là số giả nguyên tố Euler cơ sở a(1 a  n) nếu:  

Trang 27

) (mod 2 / 1 (

n a

Thật vậy chúng  ta  đi  chứng  minh  tồn  tại  số  b  N ,  mà UCLN(b,n)  1  và 

) (mod

2

1

n n

i

p

b    -  là căn nguyên thủy  trong Z pi ,  còn khi  , 1 (mod j)

j

p b

i

j     Nếu như b n1 1 (modn), thì  1 1 (mod i)

b p

b n

1

p b

1 ) , ( ,

1 1

n a UCLN n

a a W

1 ) , ( ,

1 1

n a UCLN n

a a W

n

Trang 28

a n

a

. Cho nên đối với  số a  W1,  thặng  dư  không  âm  nhỏ  nhất  của ba (mod n)thuộc W2.  Dẫn  đến ,|W 2| |W1|, từ đây rút ra điều khẳng định của định lý. 

Giải thuật kiểm tra Solovay-Strasen

2.1.7 Kiểm tra tính nguyên tố của số bằng thuật toán đa thức

Cho p là số lẻ, a  Z,UCLN(a,p)  1. Số p là số nguyên tố khi và chỉ khi  

Trang 29

) (mod )

       9:  Nếu  như  n 1 2 rlog2n,  thì  đối  với  tất  cả  các  số  a  từ  khoảng 

(xa nx na x r  trong Z n x   Nếu  như  đối  với  một  số  giá  trị  a  trong  trường  hợp  1  hoàn thành  bất  đẳng  thức  UCLN(a,n)>1,  hoặc  trong  trường  hợp  2  đẳng  thức  theo modulo x r 1 không đúng thì n là hợp số và thuật toán dừng. 

10: Nếu như chúng ta đi đên bước này thì n là số nguyên tố. 

Ngày đăng: 14/04/2017, 22:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trịnh Nhật Tiến, Trương Thị Thu Hiền, “Về một quy trình bỏ phiếu từ xa”,  Đại học công nghệ, đại học quốc gia Hà Nội.  Sách, tạp chí
Tiêu đề: Về một quy trình bỏ phiếu từ xa
[2] PGS.TS Trịnh Nhật Tiến, “Giáo trình an toàn dữ liệu”, Đại học công nghệ,  đại học quốc gia Hà Nội.  Sách, tạp chí
Tiêu đề: Giáo trình an toàn dữ liệu
[6] Trịnh Nhật Tiến, Nguyễn Đình Nam, Trương Thị Thu Hiền, “Một số kỹ thuật  Bỏ phiếu từ xa”,  Hội  thảo Một số vấn đề chọn lọc của Công nghệ thông tin, Thái Nguyên, tháng 8 năm 2003  Sách, tạp chí
Tiêu đề: Một số kỹ thuật  Bỏ phiếu từ xa
[7] Trịnh Nhật Tiến, Trương Thị Thu Hiền, “Mã hóa đồng cấu và ứng dụng”, Hội  nghị  khoa  học  cơ  bản  và  ứng  dụng  CNTT  toàn  quốc  lần  thứ  1,  Đại  học  Quốc Gia Hà Nội, tháng 10 năm 2003 Tiếng Anh Sách, tạp chí
Tiêu đề: Mã hóa đồng cấu và ứng dụng
 [10] Andrew Neff, “Conducting a Universally Verifiable Electronic Election Using Homomorphic Encryption ”, VoteHere.net, November 2000  Sách, tạp chí
Tiêu đề: Conducting a Universally Verifiable Electronic Election Using Homomorphic Encryption 
[11] Berry Schoenmakers, “A brief Comparision of Cryptographic Schemes for Electronic Voting”, Tartu, Estonia, May 17, 2004  Sách, tạp chí
Tiêu đề: A brief Comparision of Cryptographic Schemes for Electronic Voting
[12] Byoungcheon Lee, Kwangjo Kim, “Receipt-free Electronic Voting through Collaboration of Voter and honest Verifier”  Sách, tạp chí
Tiêu đề: Receipt-free Electronic Voting through Collaboration of Voter and honest Verifier
[4] TS.Trần Minh Triết.Chữ ký điện tử - Revised-2008-Apr.ppt,tr11 [5]TS Lê Đức Phong, Crytographic protocols, tr13.  Khác
[8]  William  Stallings,  Cryptography  and  Network  Security  principles  and  Practices Fourth Edition, November 16,2005  Khác
[9] Helger Lipmaa “ Zero knowledge and some applications “, NordicResearch Training course, Bergen, June 15,2004  Khác
 [13] Information Security Research Centre, Faculty of Information Technology,  Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w