кто опознает аогоритм (exponentiation?)

Тема в разделе "WASM.CRYPTO", создана пользователем oleksii, 3 май 2005.

  1. oleksii

    oleksii New Member

    Публикаций:
    0
    Регистрация:
    3 май 2005
    Сообщения:
    5
    Hi ppl!

    памагите знанием кто может..



    в одной проге обнаружен след. алгоритм дешифровки, слегка напоминающий right-to-left exponentiation:



    экспонента (традиционная 1001h) тестируется побитово от MSB до LSB, по результатам тестирования исполняется (насколько разобрал!) такой вот код (после упрощения)



    E = B mod C;

    Result = 2 ;

    // инициализация





    TestBit // значение текущего бита



    if MSB 01

    {



    Result = (E*( Result - 1)) mod C

    E = (E*E -2) mod C

    }



    if MSB 00

    {

    E = (E*( Result - 1)) mod C

    Result = (Result * Result -2) mod C

    }





    возвращается, само собой, Result



    напоминает RSA, да вот -1 и -2 сильно смущают..

    Если кто знает, что за алгоритм реализован, подскажите за так :)

    thanx in advance
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
  3. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159




    нулик не пропустил? традиционная - это 10001h







    правильно ли я понял, что дано C и выходной Result и надо найти B? можешь привести конкретные значения?
     
  4. oleksii

    oleksii New Member

    Публикаций:
    0
    Регистрация:
    3 май 2005
    Сообщения:
    5
    ага, нолик пропустил :))



    ну да, типа как в РША, есть модуль С, экспонента и, само собой, результат. значения могу сбросить, если сильно надо, тока длинные они (68h).



    для bogrus. сигнатуры для IDA пробовал, не опознается.

    да и не должно -

    похоже на самопал, high precision арифметика сделана на пасквильном vln (very large numbers), в нем нет криптофункций.



    спасибо за интерес! :)
     
  5. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159




    Есть кое-какие идеи. Скинь числа на relf at rambler.ru

    А желательно еще и контрольный пример - например, вычисли при том же C, значение Result для B=0xDEADBEEF.
     
  6. oleksii

    oleksii New Member

    Публикаций:
    0
    Регистрация:
    3 май 2005
    Сообщения:
    5
    ooppsss

    поправочка к алгоритму. каюсь, не доглядел :dntknw:



    E0 = B mod C;

    Result = 2 ;

    // инициализация





    TestBit // значение текущего бита, от MSB до LSB



    if MSB 01

    {



    Result = (E*Result - E0) mod C

    E = (E*E -2) mod C

    }



    if MSB 00

    {

    E = (E* Result - E0) mod C

    Result = (Result * Result -2) mod C

    }
     
  7. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    Ну так шли конкретные числа и контрольный пример - там разберемся...
     
  8. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    Похоже, это следующая штука:



    B представляется как

    B = D + D^(-1) mod C

    и качестве результата выдается

    R = D^(65537) + D^(-65537) mod C.



    Эта задача не проще RSA с теми же параметрами (C,10001h) (но, возможно, и не сложнее). Легко ломается, если известна факторизация C.



    Так чему у тебя равно C?
     
  9. oleksii

    oleksii New Member

    Публикаций:
    0
    Регистрация:
    3 май 2005
    Сообщения:
    5
    2 RElf

    дак ить я вроде заслал на rambler? не пришло??
     
  10. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    Ничего не приходило.
     
  11. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159