esp-idf/tools
KonstantinKondrashov 5ed8388f6b mbedtls: Add Montgomery exponentiation implementation (HAC 14.94)
It gave us a better performance of RSA operations. (2~11 times)

The old modexp implementation (Z = X ^ Y mod M) loaded all the data into
the hw registers and was waiting for completion, but due to
the hardware RSA implementation, the calculations always started with 4096 bit,
which took a lot of time.
Measurement results (measurements were made for keys: 2048, 3072 and 4096 bits)
(Old) - Sliding-window exponentiation (HAC 14.85):
keysize = 2048 bits
RSA key operation (performance): public [93206 us], private [280189 us]
keysize = 3072 bits
RSA key operation (performance): public [293614 us], private [858157 us]
 keysize = 4096 bits
RSA key operation (performance): public [653192 us], private [1912126 us]

Instead (Old) - Sliding-window exponentiation (HAC 14.85) was implemented
(New) - Montgomery exponentiation (HAC 14.94) which showed
better performance on private and public keys.
keysize = 2048 bits
RSA key operation (performance): public [14504 us], private [149456 us]
keysize = 3072 bits
RSA key operation (performance): public [35073 us], private [392743 us]
keysize = 4096 bits
RSA key operation (performance): public [58650 us], private [787186 us]

For this reason, the old implementation was removed
and the MBEDTLS_HARDWARE_MPI option was turned on by default.

Why the MPI_INTERRUPT option is removed:
the old implementation used calculations on the hardware and
it took a lot of time (10ms - 500ms). And in order not to stand idle
while waiting for completion, an interrupt option was added.
This made it possible to carry out other tasks during the calculation,
and this one to block. The new method is free from such a drawback and
the maximum duration of one RSA HW operation does not exceed 70us (usually 2-70 μs).
This option is no longer needed.

Closes: IDF-965
2019-11-05 16:33:11 +08:00
..
ble nimble_test: Fix nimble example test CI 2019-09-13 08:18:43 +00:00
catch move Catch framework header into tools directory 2017-04-17 11:01:18 +08:00
ci Merge branch 'bugfix/ci_weekend_test_update' into 'master' 2019-10-14 15:30:33 +08:00
cmake Merge branch 'bugfix/fixes_from_kconfiglib_update' into 'master' 2019-10-10 11:06:29 +08:00
docker tools: add Dockerfile 2019-07-18 06:18:04 +00:00
esp_app_trace tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
esp_prov esp_prov : Minor refactoring in argument dependent logic 2019-07-04 15:02:07 +05:30
kconfig Tools: Fix shebang for MacOs 2019-08-26 13:53:52 +02:00
kconfig_new Handle deprecated values in sdkconfig.defaults 2019-10-02 16:29:25 +00:00
ldgen mbedtls: Add Montgomery exponentiation implementation (HAC 14.94) 2019-11-05 16:33:11 +08:00
mass_mfg Add Chinese translation for README files in components and tools folders, including: 2019-09-06 20:18:19 +08:00
test_idf_monitor tools: Test IDF Monitor after it is ready to receive data 2019-02-25 10:35:09 +01:00
test_idf_py idf.py: Fix execution order for dependent tasks 2019-09-16 22:48:57 +08:00
test_idf_size idf_size: Support JSON output 2019-05-29 17:11:53 +10:00
test_idf_tools update toolchain to esp32-2019r1 release 2019-06-04 23:43:29 +08:00
tiny-test-fw Support ELF files loadable with gdb 2019-09-24 07:19:50 +00:00
unit-test-app mbedtls: Add Montgomery exponentiation implementation (HAC 14.94) 2019-11-05 16:33:11 +08:00
windows tools: bump windows tools installer version to v2.1 2019-09-24 06:00:31 +02:00
check_kconfigs.py tools: Fix Kconfig checker for comments and source after help 2019-06-20 09:48:04 +02:00
check_python_dependencies.py tools/check_python_dependencies: make aware of IDF_TOOLS_PATH 2019-05-24 17:04:23 +08:00
eclipse-code-style.xml tools: add code formatter rules for Eclipse 2016-11-03 18:41:00 +08:00
elf_to_ld.sh misc adjustment of esp32 component 2019-04-03 19:57:46 +08:00
format-minimal.sh docs: add style guide 2016-11-03 18:41:00 +08:00
format.sh Added basic C++ style guide 2019-10-09 12:25:48 +08:00
gen_esp_err_to_name.py tools/gen_esp_err_to_name.py: Don't include already included headers 2019-05-06 15:08:37 +02:00
idf_monitor.py idf_monitor: Autodetect port 2019-10-14 08:06:43 +02:00
idf_size.py idf_size: Support JSON output 2019-05-29 17:11:53 +10:00
idf_tools.py idf_tools.py: add workaround for PermissionError in os.rename 2019-09-24 06:00:31 +02:00
idf.py tools: Fix idf.py menuconfig characters in MSYS2 2019-10-08 08:11:53 +00:00
set-submodules-to-github.sh tools: Add a script for switching to real submodules in forks 2019-07-05 11:12:06 +07:00
test_check_kconfigs.py tools: Fix Kconfig checker for comments and source after help 2019-06-20 09:48:04 +02:00
toolchain_versions.mk update toolchain to esp32-2019r1 release 2019-06-04 23:43:29 +08:00
tools_schema.json tools: add metadata file and idf_tools.py 2019-05-24 17:04:23 +08:00
tools.json Tools: Add OpenOCD for the ARM architecture 2019-08-22 16:51:04 +02:00