Developer Reference

Contents

mbx_exp/1024/2048/3072/4096_mb8

Performs modular exponentiation.

Syntax

mbx_status mbx_exp1024_mb8(int64u* const
out_pa
[8], const int64u* const
base_pa
[8], const int64u* const
exp_pa
[8], int
exp_bits
, const int64u* const
mod_pa
[8], int
mod_bits
, int8u*
pBuffer
, int
bufferLen
);
mbx_status mbx_exp2048_mb8(int64u* const
out_pa
[8], const int64u* const
base_pa
[8], const int64u* const
exp_pa
[8], int
exp_bits
, const int64u* const
mod_pa
[8], int
mod_bits
, int8u*
pBuffer
, int
bufferLen
);
mbx_status mbx_exp3072_mb8(int64u* const
out_pa
[8], const int64u* const
base_pa
[8], const int64u* const
exp_pa
[8], int
exp_bits
, const int64u* const
mod_pa
[8], int
mod_bits
, int8u*
pBuffer
, int
bufferLen
);
mbx_status mbx_exp4096_mb8(int64u* const
out_pa
[8], const int64u* const
base_pa
[8], const int64u* const
exp_pa
[8], int
exp_bits
, const int64u* const
mod_pa
[8], int
mod_bits
, int8u*
pBuffer
, int
bufferLen
);
mbx_status mbx_exp_mb8(int64u* const
out_pa
[8], const int64u* const
base_pa
[8], const int64u* const
exp_pa
[8], int
exp_bits
, const int64u* const
mod_pa
[8], int
mod_bits
, int8u*
pBuffer
, int
bufferLen
);
Include Files
crypto_mb/exp.h
Parameters
out_pa
Array of pointers to the computed exponents.
base_pa
Array of pointers to the input bases to be exponentiated.
exp_pa
Array of pointers to the input power values.
exp_bits
Size of power in bits.
mod_pa
Array of pointers to the input modules used for reduction.
mod_bits
Size of modulus in bits.
pBuffer
Pointer to the work buffer.
bufferLen
Size of the work buffer in bytes.
Description
All the functions compute modular exponentiation by the following formula:
Functions
mbx_exp1024_mb8
,
mbx_exp2048_mb8
,
mbx_exp3072_mb8
, and
mbx_exp4096_mb8
are focused on exponentiation over the limited range of modulus
n[i] - 1Kb, 2Kb, 3Kb, and 4Kb
correspondingly.
Exact ranges of supported modulus are represented in the table below.
function name
modulus range
exact boundaries (min, max) of the modulus size in bits
mbx_exp1024_mb8
1Kb
989, 1038
mbx_exp2048_mb8
2Kb
2029, 2078
mbx_exp3072_mb8
3Kb
3069, 3118
mbx_exp4096_mb8
4Kb
4057, 4106
If actual sizes of modules are different, set the
mod_bits
parameter equal to maximum size of the actual module in bit size and extend all the modules with zero bits to the
mod_bits
value. The same is applicable for the
exp_bits
parameter and actual exponents.
The
mbx_exp_mb8
function provides processing of modules belonging to either
1Kb, 2Kb, 3Kb or 4Kb
range only, calling appropriate
mbx_exp1024_mb8
,
mbx_exp2048_mb8
,
mbx_exp3072_mb8
or
mbx_exp4096_mb8
function based on
mod_bits
parameter.
Parameters
pBuffer
and
bufferLen
are defining the work buffer used for internal purposes. Minimal size of the work buffer necessary for performing modular exponentiation can be obtained by the call of the
mbx_exp_BufferSize
function.
Return Values
The
mbx_exp1024_mb8
,
mbx_exp2048_mb8
,
mbx_exp3072_mb8
,
mbx_exp4096_mb8
, and
mbx_exp_mb8
functions return the status that indicates whether the operation completed successfully or not. The status value of 0 indicates that all operations completed successfully. The error condition can be analyzed by the
MBX_GET_STS()
call.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.