Khi công nghệ thông tin ngày càng thay thế con người trong công việc của chính chúng ta, thi việc đảm báo an toàn và xác thực nguồn gốc cùa những thông tin trên các thiết bị sổ ngày càng
TÒNG QUAN VÈ CHỮ KÝ SỐ
Một số vấn đề toán học
Thuật toán Euclid là phương pháp hiệu quả giúp tính ước số chung lớn nhất (UCLN) của hai số một cách nhanh chóng Được phát triển bởi nhà toán học Hy Lạp Euclid trong tác phẩm nổi tiếng "Elements" khoảng năm 300 trước Công Nguyên, thuật toán này vẫn là nền tảng quan trọng trong lĩnh vực toán học hiện đại.
Trước khi tìm hiểu thuật toán ta xét ví dụ: tính UCLN của 33 và 213
Trước hết phân tích 213 theo 33 ta có 213 = 33 * 6 + 15
• Bất kỳ số nào chia hết bởi 213 và 33 thì cũng sẽ bị chia hết bởi 213-33*6.
• Tương tự, số chia hết bởi 33 và 15 cũng chia hết bới 33*6+15!3
=> UCLN(33,213)=UCLN(33,15) Bài toán trớ thành tim UCLN của 33 và 15. Lặp lại quy trinh như trên cho đến khi không còn số dư:
33 = 15*2 + 3 (15 và 3 được dùng cho vòng lặp kế)
15=3*5 (không còn dư, kết thúc, nhận 3 làm kết quả)
Cuối cùng ta có : 3 = UCLN(33,15) = UCLN(33,213).
Giả sử a = bq +r với a, b, q, r là các số nguyên, ta có: nri l.A _ í b nẻu r - 0
While b>0 begin x:=a mod b a:=b b:=x end return X
1.2.2 Thuật toán Euclid mỏ’ rộng.
Thuật toán Euclid mờ rộng giúp giải phương trình vô định nguyên (còn gọi là phương trình Đi-ô-phăng) dạng ax + by = c, trong đó a, b, c là các số nguyên và x, y là các ẩn số nguyên Điều kiện để phương trình có nghiệm nguyên là UCLN(a, b) phải chia hết cho c Khẳng định này dựa trên mệnh đề rằng nếu UCLN của hai số nguyên chia c, thì phương trình sẽ có nghiệm nguyên Thuật toán Euclid mờ rộng là công cụ hiệu quả trong việc xác định nghiệm nguyên của phương trình vô định này.
Nếu d = UCLN(a, b) thì tồn tại các sô nguyên x,y sao cho ax + by = d
Giải thuật Euclid mờ rộng mở rộng kết hợp quá trình tìm ước số chung lớn nhất (UCLN) của hai số nguyên a và b trong thuật toán Euclid với việc tìm cặp số X, Y thỏa mãn phương trình Đi-ô-phăng Quá trình bắt đầu bằng việc đặt r0 = a và r1 = b, sau đó chia r0 cho r1 để tìm thương nguyên q1 và dư r2 Nếu r2 = 0, thuật toán kết thúc; nếu không, tiếp tục chia r1 cho r2 để tìm dư r3, q2 và lặp lại quá trình này Phương pháp này giúp mở rộng khả năng giải quyết các bài toán liên quan đến UCLN bằng cách kết hợp các yếu tố mờ trong quá trình tính toán.
Vi dãy r, là giảm thực sự nên sau hữu hạn bước ta có so dư rm= 0. r0 = q,r1 + r2, 0< r2< n r, = q2r2 + r3, 0< r3< r2 tin-1 tỊmrm+ rm+i, 0() do { r:= m mod a if r=0 then Break q:= m div a y:= yO-yl*q m:=a a:=r yO:=yl yl:=y }
If a>l Then Return "A không khả nghịch theo modulo m" else Return " Nghịch đào modulo m của a là y"
*Nếu y>0 thỉ y là kết quà của a'1 mod m
*Nếu y