Posts

Đồ Long Đao

Image

Từ đại số đến Bitcoin: 26, Fermat và tôi

Image
26 là một trong những con số mà tôi yêu thích nhất: nó là số tự nhiên duy nhất nằm kẹp giữa một số bình phương (25) và một số lập phương (27).

Đây là một trong những phát hiện của Fermat, nhà toán học vĩ đại người Pháp sống vào thế kỷ 17. Fermat viết bên lề cuốn Arithmetica của Diophantus rằng nghiệm nguyên duy nhất của phương trình $latex y^2 = x^3 - 2$ là $latex (3, \pm 5)$, nhưng ông không công bố bất kỳ chứng minh cụ thể nào cả (nghe quen không?!). Fermat còn thách thức các nhà toán học người Anh cùng thời chứng minh nó, nhưng ai cũng bó tay. Bẵng đi 80 năm sau, Euler công bố một chứng minh, nhưng ngặt nỗi, chứng minh của Euler sai. Bạn có thể tin được không? Euler vĩ đại đưa ra một chứng minh sai! Cho đến tận thế kỷ 19, gần 150 năm sau thời đại của Fermat, con người mới có đủ tri thức để chứng minh rằng Fermat đã đúng. Số 26 đúng là con số duy nhất nằm giữa một số bình phương và một số lập phương.

Chuyện này có liên quan gì đến tôi?
Tôi vô tình thấy bài toán này một vài năm trước…

Javascript Crypto Is Useful

Image
In 2014 I wrote my first Javascript crypto library. Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n I've designed and written many such libraries - eight of which are deployed in popular Google products and services. Javascript crypto can help solve many problems, some of which I'm going to discuss in this post.
Some people have strong feelings about Javascript crypto, and with good reason. Writing crypto code in Javascript is difficult, because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lack of types and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 permissive nature of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 run-times. You can always shoot yourself in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 foot if you don't know what you're doing in any languages, but you don't even hear cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 shot in Javascript: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 run-times don't usually complain, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y just silently give you an incorrect result.
For example, if you have an array x of 10 elements, accessing x[10] or x[11] won't throw an out of bound exception, but return undefined. This behavior is hostile to crypto code, as demonstrated in this neat exploit discovered by Bleichenbacher, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 grandfacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365…