Время выполнения алгоритмов ЭЦП на эллиптических кривых

Тема в разделе "WASM.CRYPTO", создана пользователем gorodon, 28 мар 2011.

  1. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Реализовал алгоритмы ЭЦП на эллиптических кривых - генерацию ЭЦП, верификацию..
    написал тесты - работает ок:

    Код (Text):
    1. Test ECC DSA by curve P-192
    2.  Et   d= 7891686032FD8057F636B44B1F47CCE564D2509923A7465B
    3.  Et   k= D06CB0A0EF2F708B0744F08AA06B6DEEDEA9C0F80A69D847
    4.  Et  Qx= FBA2AAC647884B504EB8CD5A0A1287BABCC62163F606A9A2
    5.  Et  Qy= DAE6D4CC05EF4F27D79EE38B71C9C8EF4865D98850D84AA5
    6.  Et   r= F0ECBA72B88CDE399CC5A18E2A8B7DA54D81D04FB9802821
    7.  
    8. InitPrmBaseECC_DSA...Ok.
    9.  
    10. [1]GeneratePrivatePublicKeysECC_DSA (d,k)->(Q,r)...Ok.
    11.      Qx= FBA2AAC647884B504EB8CD5A0A1287BABCC62163F606A9A2
    12.      Qy= DAE6D4CC05EF4F27D79EE38B71C9C8EF4865D98850D84AA5
    13.       r= F0ECBA72B88CDE399CC5A18E2A8B7DA54D81D04FB9802821
    14. Verify gene (Qx,Qy,r) with etalon...Ok.
    15.  
    16.  Et   H= 000000001B376F0B735C615CEEEB31BAEE654B0A374825DB
    17.  Et   s= 1E6D3D4AE2B1FAB2BD2040F5DABF00F854FA140B6D21E8ED
    18.  
    19. [2]GenerateSignECC_DSA (d,k,H)->(r,s)...Ok.
    20.       r= F0ECBA72B88CDE399CC5A18E2A8B7DA54D81D04FB9802821
    21.       s= 1E6D3D4AE2B1FAB2BD2040F5DABF00F854FA140B6D21E8ED
    22. Verify gene (r,s) with etalon...Ok.
    23.  
    24. [3]VerifySignECC_DSA (Qx,Qy,H,r,s)->(H i.e. r,s)...Ok.
    25. Signature is verifyed!
    26.  
    27. Test - Ok.
    28.  
    29. ECC DSA- test stop.
    НО время выполнения данного теста на Пне 4 (3 ГГц) - примерно 0,5-0,6 сек. ...
    Очень смущает такое время - скорее всего дело в алгоритме умножения по модулю двух длинных чисел ( x*y mod p ).
    Подскажите быстрый алгоритм(ы)... и какого времени выполнения алгоритмов генерации и верификации ЭЦП (на эллиптических кривых) можно добиться?
     
  2. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
  3. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    OLS, спасибо. Буду разбираться.
     
  4. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    gorodon
    на чем верстаете? Если java/C# то BouncyCastle, если C, то openSSL вам обязательно помогут с сорцами. Внутри Bouncy всё понятно человеку даже не знакомому с java
     
  5. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Scratch, на С, сорцы openSSL есть конечно...
    тут просто было желание самому с нуля написать... попробовать нестандартные алгоритмы и использовать нестандартнае длины ключей