Annotation of embedaddon/axTLS/ssl/BigIntConfig.in, revision 1.1.1.1

1.1       misho       1: #
                      2: # For a description of the syntax of this configuration file,
                      3: # see scripts/config/Kconfig-language.txt
                      4: #
                      5: 
                      6: menu "BigInt Options"
                      7:     depends on !CONFIG_SSL_SKELETON_MODE
                      8: 
                      9: choice
                     10:     prompt "Reduction Algorithm"
                     11:     default CONFIG_BIGINT_BARRETT
                     12: 
                     13: config CONFIG_BIGINT_CLASSICAL
                     14:     bool "Classical"
                     15:     help
                     16:         Classical uses standard division. It has no limitations and is
                     17:         theoretically the slowest due to the divisions used. For this particular
                     18:         implementation it is surprisingly quite fast.
                     19: 
                     20: config CONFIG_BIGINT_MONTGOMERY
                     21:     bool "Montgomery"
                     22:     help
                     23:         Montgomery uses simple addition and multiplication to achieve its
                     24:         performance.  It has the limitation that 0 <= x, y < m, and so is not 
                     25:         used when CRT is active.
                     26: 
                     27:         This option will not be normally selected.
                     28: 
                     29: config CONFIG_BIGINT_BARRETT
                     30:     bool "Barrett"
                     31:     help
                     32:         Barrett performs expensive precomputation before reduction and partial
                     33:         multiplies for computational speed.
                     34: 
                     35:         It is about 40% faster than Classical/Montgomery with the expense of
                     36:         about 2kB, and so this option is normally selected.
                     37: 
                     38: endchoice
                     39: 
                     40: config CONFIG_BIGINT_CRT
                     41:     bool "Chinese Remainder Theorem (CRT)"
                     42:     default y
                     43:     help 
                     44:         Allow the Chinese Remainder Theorem (CRT) to be used.
                     45: 
                     46:         Uses a number of extra coefficients from the private key to improve the
                     47:         performance of a decryption. This feature is one of the most 
                     48:         significant performance improvements (it reduces a decryption time by 
                     49:         over 3 times).
                     50: 
                     51:         This option should be selected.
                     52: 
                     53: config CONFIG_BIGINT_KARATSUBA
                     54:     bool "Karatsuba Multiplication"
                     55:     default n
                     56:     help
                     57:         Allow Karasuba multiplication to be used.
                     58:  
                     59:         Uses 3 multiplications (plus a number of additions/subtractions) 
                     60:         instead of 4. Multiplications are O(N^2) but addition/subtraction 
                     61:         is O(N) hence for large numbers is beneficial. For this project, the 
                     62:         effect was only useful for 4096 bit keys (for 32 bit processors). For
                     63:         8 bit processors this option might be a possibility.
                     64:         
                     65:         It costs about 2kB to enable it.
                     66: 
                     67: config MUL_KARATSUBA_THRESH
                     68:     int "Karatsuba Multiplication Theshold"
                     69:     default 20
                     70:     depends on CONFIG_BIGINT_KARATSUBA
                     71:     help
                     72:         The minimum number of components needed before Karasuba muliplication
                     73:         is used.
                     74:  
                     75:         This is very dependent on the speed/implementation of bi_add()/
                     76:         bi_subtract(). There is a bit of trial and error here and will be
                     77:         at a different point for different architectures.
                     78: 
                     79: config SQU_KARATSUBA_THRESH
                     80:     int "Karatsuba Square Threshold"
                     81:     default 40
                     82:     depends on CONFIG_BIGINT_KARATSUBA && CONFIG_BIGINT_SQUARE
                     83:     help    
                     84:         The minimum number of components needed before Karatsuba squaring
                     85:         is used.
                     86:  
                     87:         This is very dependent on the speed/implementation of bi_add()/
                     88:         bi_subtract(). There is a bit of trial and error here and will be
                     89:         at a different point for different architectures.
                     90: 
                     91: config CONFIG_BIGINT_SLIDING_WINDOW
                     92:     bool "Sliding Window Exponentiation"
                     93:     default y
                     94:     help
                     95:         Allow Sliding-Window Exponentiation to be used.
                     96:  
                     97:         Potentially processes more than 1 bit at a time when doing 
                     98:         exponentiation. The sliding-window technique reduces the number of 
                     99:         precomputations compared to other precomputed techniques.
                    100: 
                    101:         It results in a considerable performance improvement with it enabled
                    102:         (it halves the decryption time) and so should be selected.
                    103: 
                    104: config CONFIG_BIGINT_SQUARE
                    105:     bool "Square Algorithm"
                    106:     default y
                    107:     help
                    108:         Allow squaring to be used instead of a multiplication. It uses
                    109:         1/2 of the standard multiplies to obtain its performance.  
                    110:         It gives a 20% speed improvement overall and so should be selected.
                    111: 
                    112: config CONFIG_BIGINT_CHECK_ON
                    113:     bool "BigInt Integrity Checking"
                    114:     default n if !CONFIG_DEBUG
                    115:     default y if CONFIG_DEBUG
                    116:     help
                    117:         This is used when developing bigint algorithms. It performs a sanity
                    118:         check on all operations at the expense of speed.
                    119:         
                    120:         This option is only selected when developing and should normally be
                    121:         turned off.
                    122: 
                    123: choice
                    124:     prompt "Integer Size"
                    125:     default CONFIG_INTEGER_32BIT
                    126: 
                    127: config CONFIG_INTEGER_32BIT
                    128:     bool "32"
                    129:     help
                    130:         The native integer size is 32 bits or higher.
                    131:         
                    132: 
                    133: config CONFIG_INTEGER_16BIT
                    134:     bool "16"
                    135:     help
                    136:         The native integer size is 16 bits.
                    137: 
                    138: config CONFIG_INTEGER_8BIT
                    139:     bool "8"
                    140:     help
                    141:         The native integer size is 8 bits.
                    142: 
                    143: endchoice
                    144: endmenu
                    145: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>