libtommath大数库详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7 Prime Numbers
45
7.1 Trial Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2 Fermat Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.3.1 Static Libraries . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Shared Libraries . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.1 Single Initialization . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Build Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.1 Build Depends . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2 Build Tweaks . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.2 Modular Exponentiation . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Root Finding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.4.3 Build Trims . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Purpose of LibTomMath . . . . . . . . . . . . . . . . . . . . . . . 5
2 Getting Started with LibTomMath
iii
3 Basic Operations
19
3.1 Small Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Single Digit . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Maintenance Functions . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6.1 Reducing Memory Usage . . . . . . . . . . . . . . . . . . 15
2.6.2 Adding additional digits . . . . . . . . . . . . . . . . . . . 16
2.5.2 Single Free . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.3 Multiple Initializations . . . . . . . . . . . . . . . . . . . . 12
2.5.4 Other Initializers . . . . . . . . . . . . . . . . . . . . . . . 13
7.6.1 Extended Generation . . . . . . . . . . . . . . . . . . . . . 47
8 Input and Output
49
8.1 ASCII Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Function Organization . . . . . . . . . . . . . . . . . . . . . . . . 10
5.5 Unrestricted Dimminshed Radix . . . . . . . . . . . . . . . . . . 41
6 Exponentiation
43
6.1 Single Digit Exponentiation . . . . . . . . . . . . . . . . . . . . . 43
7.5 Next Prime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.6 Random Primes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
LibTomMath User Manual v0.33
Tom St Denis tomstdenis@iahu.ca December 22, 2004
This text, the library and the accompanying textbook are all hereby placed in the public domain. This book has been formatted for B5 [176x250] paper using the LATEX book macro package.
1.2 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Building LibTomMath . . . . . . . . . . . . . . . . . . . . . . . . 2
9
2.1 Building Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.5.1 Negation . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.2 Absolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.6 Integer Division and Remainder . . . . . . . . . . . . . . . . . . . 30
Open Source. Open Academia. Open Minds. Tom St Denis,
Ontario, Canada
Contents
1 Introduction
1
1.1 What is LibTomMath? . . . . . . . . . . . . . . . . . . . . . . . . 1
4 Multiplication and Squaring
31
4.1 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Squaring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2 Long Constants . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3 Initialize and Setting Constants . . . . . . . . . . . . . . . 21
3.2 Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.3 AND, OR and XOR Operations . . . . . . . . . . . . . . 29
3.4 Addition and Subtraction . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Sign Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Barrett Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Montgomery Reduction . . . . . . . . . . . . . . . . . . . . . . . 37
5.4 Restricted Dimminished Radix . . . . . . . . . . . . . . . . . . . 40
4.3 Tuning Polynomial Basis Routines . . . . . . . . . . . . . . . . . 33
5 Modular Reduction
35
5.1 Straight Division . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Unsigned comparison . . . . . . . . . . . . . . . . . . . . . 23
3.2.2 Signed comparison . . . . . . . . . . . . . . . . . . . . . . 24
3.2.3 Single Digit . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.1.1 To ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3 Miller-Rabin Test . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.3.1 Required Number of Tests . . . . . . . . . . . . . . . . . . 46
7.4 Primality Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 Logical Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Multiplication by two . . . . . . . . . . . . . . . . . . . . 26
3.3Fra Baidu bibliotek2 Polynomial Basis Operations . . . . . . . . . . . . . . . . 28