ключи RSA, нахождение взаимопростого числа

Тема в разделе "WASM.CRYPTO", создана пользователем 9il, 9 июл 2008.

  1. 9il

    9il New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    3
    Доброго времени суток =).
    Написал на D ( http://digitalmars.com/d/2.0/index.html ) библиотеку для работы с большими числами, и сейчас пишу свою реализацию RSA (без генератора ключей пока что).

    Скинте, пожалуйсто какие-нибудь работующие ключи RSA - для тестирования.
    И ещё вопрос:
    p - простое
    Как быстро найти псевдослучайное k взаимопростое с p-1? (для Эль Гамаля)
    Или возможно только генерировать такие k до тех пор пока (по алгоритму Евклида) НОД (k,p-1) != 1 ?

    P.S. ещё школьник
     
  2. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    http://creatorcray.googlepages.com/BNCalc.rar

    командная строка:

    bncalc -hex PQbits=256 P=prime(PQbits/2) Q=prime(PQbits/2) PQ=P*Q E=0x10001 D=invmod(E,lcm(P-1,Q-1)) testValue=0xbadf00d encrypted=powmod(testValue,E,PQ) decrypted=powmod(encrypted,D,PQ) decrypted-testValue

    и генерь сколько угодно
    Единственный минус - тут не проверяется условие на предмет взаимной простоты E и Phi - условий в калькуляторе нету :)
    так что валидны будут любые значения для которых decrypted == testValue
     
  3. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    Про El-Gamal почитай тут: http://www.rsdn.ru/forum/message/2568758.1.aspx
     
  4. 9il

    9il New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    3
    CreatorCray
    Спасибо конечно, только Wine c ним не работает : (
    Если нетрудно скинь p, q, в шеснадцатеричной или восьмиричной :) please
     
  5. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    9il
    Какой размерности? Сколько бит в модуле?
     
  6. 9il

    9il New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    3
    CreatorCray
    модуль 1024 bits
    заранее спасибо =)
     
  7. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    Держи
     
  8. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Поищи мой релиз RSA, указание на местоположение в ветке "Поделитесь пжалста ..."
    Молодец конечно, что сам написал, только сто пудов гарантии, что у тебя это будет работать в тысячу раз медленнее нормы, или в сто уж точно, как пить дать. Ибо, сложное это на самом деле дело, весьма сложное...

    А экспоненту генери, пока действительно алгоритм Евклида сможет найти обратный элемент.

    Кста, мой релиз работает с любым количеством сомножителей, а не только с двумя p и q.

    Если выбрать один единственный сомножитель, будут тебе два ключа с одним общим p и двумя экспонентами для кодирования и декодирования.

    p.s. говорят, мои проги под wine не работают, сам не проверял

    Вот, сгенерил:

    p=
    E12D1676
    E8B18E36
    BC1A8AA8
    6A4E6FAA
    7F0CAE70
    AAFC6B8D
    F386922D
    DEA323C5
    B53B1E87
    0A23CFE3
    4AFF8DB6
    E1948456
    6FA721F5
    CC02921F
    5BFAD05C
    EB2AA37B
    FD5A0235
    F9FEAAF0
    D3356011
    DF4649D1
    643CAE11
    23D54862
    4DF08740
    9D876043
    7F42E735
    364C2192
    236B390D
    51735D90
    264B7CA1
    DEC70386
    00CB6571
    66745AC5

    e=
    55677892
    C6503CFC
    186E07E3
    7FDB4119
    655D6407
    8864EDCB
    70C8B67F
    21BD7E46
    D15D5CC5
    6D7A9652
    6D0D8773
    CF655F44
    63021506
    7B8A27B3
    6E09716D
    6D8A62AF
    7EBAED8F
    05C2EA68
    E3432D77
    741D666A
    45D4CF39
    9692BA94
    DB474ED2
    7F7FC8BD
    58C6E85E
    4E4608ED
    47FD1C84
    DD7CCA39
    4B8E4584
    81A9984B
    D48B4851
    8C2A6629

    d=
    8855D798
    AA6FDA73
    CFAC4CBC
    271AB8EA
    BCB0039F
    AB4E4967
    BBD8C668
    99BD6C6B
    346152B2
    212724F5
    B5A50DD8
    1BAE6D0D
    503D20E0
    22575A5A
    9A197332
    E7CF9130
    01578FD5
    9A29AC39
    484B1523
    E1A3CD31
    1E3F82DC
    F06DAA81
    84F63A1F
    DAE2A9F1
    3B2C22BB
    C6EC31CA
    4F248FBA
    253A24DD
    1BA3FD43
    CFAB1608
    6EC0468A
    D2629845