Các bạn là 😘 học sinh cấp 2-3 😘 nếu học khóa này tui sẽ 😉 thiết kế nội dung đặc biệt 😉 để các bạn hiểu rõ hơn về 😍 máy tính, hệ điều hành, các công nghệ, công cụ, phần mềm, ứng dụng 😍 thế giới đang xài 🙄 có nền tảng là gì 🙄
→ các bạn đăng kí theo nhóm 🥰 từ 3 người trở lên 🥰 sẽ được giảm học phí
Công nghệ (technology) thì chỉ có vài cái thoai còn 😅 công cụ (utility, tool, toolkit – bộ công cụ) cho công nghệ 😅 thì có rất nhiều
→ nhìu ngừ nói là bạn đang lạc lối giữa 1 rừng công nghệ gì đó là hổng đúng nhen 🤣🤣🤣
Số nguyên tố lớn để làm zì zạ?
Học lập trình căn bản bằng C, C++, Python hay Scratch cho các bạn nhỏ thường gặp bài toán này
1. Nhập vào 1 số, kiểm tra số đó có phải là số nguyên tố hem in ra màn hình câu thông báo
→ nói kiểu khác là
Viết chương trình kiểm tra số nguyên tố nhập từ bàn phím
2. Nhập vào 1 số, in ra các số nguyên tố nhỏ hơn hoặc bằng nó
→ thường xài cái sàng lúa hay sàng gạo của ông Eratosthenes (sieve of Eratosthenes) người Hy Lạp cách đây hơn 2200 năm hay gì á
Số nguyên tố lớn để làm zì zạ?
→ làm cái này: chứng chỉ SSL (SSL certificate) giúp mã hóa thông tin truyền giữa Web Server và Web Client như Cốc Cốc, Chrome, Firefox, Opera, Microsoft Edge…
→ Khóa chung (public key) xài thuật toán RSA dài 2048 bit
Dậy thì mình thử tạo ra 1 số nguyên tố ngẫu nhiên dài 2048 bit coi sao hen
→ mỗi lần chạy sinh ra 1 số nguyên tố khác dài đủ 2048 bit
Tạo số nguyên tố nguyên dài 4096 bit đi → nghe nói mã hóa mạnh hơn á nhưng hình như thời gian tạo lâu hơn, mã hóa, giải mã cũng lâu hơn
Hình trên cùng có chữ cái A, B, C, D, E, F mà ta
À do tui tạo số trong hệ thập phân (thập = 10, phân = phân chia) aka hệ 10 (10 chữ số từ 0 đến 9) → cho dễ nhìn
→ muốn tạo ở hệ 16 chữ số (thập lục phân, thập = 10, lục = 6, phân = phân chia) – hexadecimal cho gọn gọn lại cũng dễ thoai
→ dễ thấy lịnh 1 có 4 dòng, lịnh 2 có 5 dòng → lịnh 1 ngắn hơn lịnh 2, đó là điều phải chứng minh (đpcm)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Chạy trên Ubuntu
apt install openssl bc-y
openssl prime-generate-bits2048
openssl prime-generate-bits2048
time openssl prime-generate-bits4096
time openssl prime-generate-bits2048
openssl prime-generate-bits2048-hex
openssl prime-generate-bits2048
Số dài quá nhìn rối mắt, số nhỏ hơn đi hen
1
2
3
4
5
6
for((c=2;c<33;c++))
do
s=`openssl prime-generate-bits$c`
b=`openssl prime-generate-bits$c-hex`
printf"%-10s Hệ 10 -- %-8b Hệ 16\n"$s$b
done
Chuyển số nguyên tố sang hệ 2 – nhị phân cho đẹp mắt hơn
1
2
3
4
5
6
for((c=2;c<33;c++))
do
s=`openssl prime-generate-bits$c`
b="$(echo "obase=2;$s" | bc) "
printf"%-10s - %-32s - %-2s bit\n"$s$b$c
done
1 cách chắc kèo hơn, nếu n là số nguyên tố thì (n-1)/2 cũng là số nguyên tố ta có
→ đã là ngẫu nhiên thì các số nguyên tố sinh ra lần sau phải khác lần trước đúng hem? chạy lần nữa là bít liền hà
1
2
3
4
5
6
for((c=2;c<33;c++))
do
s=`openssl prime-generate-safe-bits$c`
b="$(echo "obase=2;$s" | bc) "
printf"%-10s - %-32s - %-2s bit\n"$s$b$c
done
Nghe đồn là ngừ ta chỉ tạo ra số nguyên tố giả hay số giả nguyên tố – pseudoprime thui á
→ kiểm tra số nguyên tố giả đó 1 số lần → nếu ok thì xem 🤣 hàng giả là hàng thiệt 🤣 ha ha
→ tùy chọn -checks n zới n = 20 mặc định (default) → muốn kiểm tra thêm thì 😂 tùy ý thí chủ 😂
Rất ít phần mềm, ứng dụng nào viết thư viện mã hóa riêng → trừ khi đó là 😂 phần mềm an toàn thông tin hổng mún phụ thuộc zào ai 😂
→ phần lớn đều móc vào thư viện mã hóa mã nguồn mở miễn phí như OpenSSL
Năm 2014 ngừ ta phát hiện OpenSSL có lỗi rất nghiêm trọng và đặt tên là trái tim rỉ máu – Heartbleed, mã lỗi CVE-2014-0160 – CVE = Common Vulnerabilities and Exposures
May 29 2022
Số nguyên tố lớn trong khóa học của tui
Bài này để quảng cáo cho 🥰 khóa học của tui 🥰
Các bạn là 😘 học sinh cấp 2-3 😘 nếu học khóa này tui sẽ 😉 thiết kế nội dung đặc biệt 😉 để các bạn hiểu rõ hơn về 😍 máy tính, hệ điều hành, các công nghệ, công cụ, phần mềm, ứng dụng 😍 thế giới đang xài 🙄 có nền tảng là gì 🙄
→ các bạn đăng kí theo nhóm 🥰 từ 3 người trở lên 🥰 sẽ được giảm học phí
Công nghệ (technology) thì chỉ có vài cái thoai còn 😅 công cụ (utility, tool, toolkit – bộ công cụ) cho công nghệ 😅 thì có rất nhiều
→ nhìu ngừ nói là bạn đang lạc lối giữa 1 rừng công nghệ gì đó là hổng đúng nhen 🤣🤣🤣
Số nguyên tố lớn để làm zì zạ?
1. Nhập vào 1 số, kiểm tra số đó có phải là số nguyên tố hem in ra màn hình câu thông báo
→ nói kiểu khác là
Viết chương trình kiểm tra số nguyên tố nhập từ bàn phím
2. Nhập vào 1 số, in ra các số nguyên tố nhỏ hơn hoặc bằng nó
→ thường xài cái sàng lúa hay sàng gạo của ông Eratosthenes (sieve of Eratosthenes) người Hy Lạp cách đây hơn 2200 năm hay gì á
→ làm cái này: chứng chỉ SSL (SSL certificate) giúp mã hóa thông tin truyền giữa Web Server và Web Client như Cốc Cốc, Chrome, Firefox, Opera, Microsoft Edge…
→ Khóa chung (public key) xài thuật toán RSA dài 2048 bit
→ mỗi lần chạy sinh ra 1 số nguyên tố khác dài đủ 2048 bit
Hình trên cùng có chữ cái A, B, C, D, E, F mà ta
→ muốn tạo ở hệ 16 chữ số (thập lục phân, thập = 10, lục = 6, phân = phân chia) – hexadecimal cho gọn gọn lại cũng dễ thoai
→ dễ thấy lịnh 1 có 4 dòng, lịnh 2 có 5 dòng → lịnh 1 ngắn hơn lịnh 2, đó là điều phải chứng minh (đpcm)
→ đã là ngẫu nhiên thì các số nguyên tố sinh ra lần sau phải khác lần trước đúng hem? chạy lần nữa là bít liền hà
→ kiểm tra số nguyên tố giả đó 1 số lần → nếu ok thì xem 🤣 hàng giả là hàng thiệt 🤣 ha ha
→ tùy chọn -checks n zới n = 20 mặc định (default) → muốn kiểm tra thêm thì 😂 tùy ý thí chủ 😂
Pseudoprime
openssl prime
Cơm thêm
→ phần lớn đều móc vào thư viện mã hóa mã nguồn mở miễn phí như OpenSSL
Lỗ hổng bảo mật heartbleed và những hậu quả nghiêm trọng
The Heartbleed Bug
→ cũng là 1 kỉ niệm làm việc của tui, kiếm miếng vá lỗi từ nhà cung cấp roài vá lẹ lẹ để 🥰 báo cáo ngân hàng nhà nước 🥰
So sánh các thư viện mã hóa
Ăn nữa
🥰 Khóa học của tui 🥰 giúp các bạn hiểu rõ nhiều cái bên trong và bên ngoài máy tính để làm coder hay programmer
Chúc các bạn tìm thấy 😘 niềm vui trong học hành IT và sống được bằng nghề IT 😘 nếu chọn nó
By thaygiaoth2021 • Học Linux • Tags: big prime number, big prime number generator, Heartbleed, openssl, private key, public key, sàng Eratosthenes, sieve of Eratosthenes, Số nguyên tố lớn