ECC160 is an electronic digital signature algorithm based on the mathematical tools of elliptic curves. This algorithm was specifically developed to be used in dongles. The secret key length is 20 bytes (160 bits). The secret key of this algorithm is stored in the hardware algorithm determinant of respective type. The minimal data block length processed by the algorithm in one cycle is 20 bytes, whereas on the output we get a data block containing a signature of 40 bytes in length. Since the algorithm is asymmetric, a public key of 40 bytes (320 bits) is used to verify the signature. This key should be stored in the protected application. To avoid the substitute you should not keep the public key as is. 

Asymmetric functions of ECC160 type allow performing the electronic digital signing of data on the secret key stored in the hardware algorithm descriptor with further signature verification with the public key with purely software methods. The signature verification allows making sure that the signature was made with the dongle, since there is no access to the secret key. The use of asymmetric algorithms significantly complicates the development of emulators due to the fact that you should use not some previously disclosed data for verification but any data randomly generated during the application execution.

Thus, we get rid of the “classic” “question-and-answer” scheme attributable to symmetric and unidirectional functions and presuming the use of previously generated pairs of source and converted data, on which the table emulators are actually based. See Section Appendix A. Recommendations to the programmer on how to correctly use the asymmetric algorithms.

  • No labels