Annotation of embedaddon/axTLS/ssl/BigIntConfig.in, revision 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>