Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Mały
Zaczyna szaleć na ulicach
Dołączył: 15 Mar 2009
Posty: 379
Skąd: Czarna Białostocka
|
Wysłany: 12 czerwca 2010, 13:13 Temat postu: potrzebuję pomocy. |
|
|
Witam,
Więc bez ogródek, piszę z nadzieją na pomoc scenowych informatyków, a wiem, że paru tu jest. Mam do napisania projekt program umożliwiający generowanie kluczy, szyfrowanie i deszyfrowanie plików przy pomocy RSA. Czas się zbliża, a ja nadal nie wiem co z tym zrobić
Jakby znalazł się ktoś kto kiedyś coś takiego pisał (albo coś podobnego), byłbym naprawdę wdzięczny za udostępnienie kodu, a przynajmniej części zawierających arytmetykę wielkich liczb, odwrotność modularną czy testy pierwszości wielkich liczb i algorytm szybkiego potęgowania modulo wiem, mało nie wymagam, ale taki jest projekt. Ewentualnie udostępniony kod nie będzie wyklorzystany w żadnych komercyjnych celach, ani w żadnych innych, tylko zaliczenie projektu
Czekam na odpowiedź, i mam nadzieję, że znajdzie się ktoś będący w stanie pomóc
_________________
|
|
|
Powrót do góry |
|
 |
=VND=
Doświadczony driver
Dołączył: 25 Maj 2008
Posty: 152
Skąd: ポーランド
|
Wysłany: 12 czerwca 2010, 20:12 Temat postu: |
|
|
Zabrakło najważniejszego - w jakim języku?
"algorytm szybkiego potęgowania modulo" - tylko z tym się spotkałem.
Wygląda to tak:
Rozbijasz wykładnik na liczbę dwójkową, i wyliczasz kolejne potęgi modulo dla potęg dwójki. Następnie mnożysz tylko te wyniki które są jedynką (bit=1) dla wykładnika.
Przykład:
4^150 mod 6
150 = 10010110b (czyli ważne są bity - 1,2,4, i 7)
4^150 mod 6 = (4^(2^7) mod 6) * (4^(2^4) mod 6) * (4^(2^2) mod 6) * (4^(2^1) mod 6)
4^(2^7) mod 6 = 4
4^(2^4) mod 6 = 4
4^(2^2) mod 6 = 4
4^(2^1) mod 6 = 4
4^150 mod 6 = (4 * 4 * 4 * 4) mod 6 = 4
kiepski przykład wybrałem, wszędzie 4 wyszło
Najszybszy sposób na wyszukanie liczb pierwszych - Sito Eratostenesa
Pisać całą implementacje obliczeń na dużych liczbach to wyważanie otwartych drzwi, niepotrzebna strata czasu. Jest cała masa gotowych bibliotek specjalnie do tego celu stworzonych GMP, BigNum, LiDIA, no i zdaje się Boost też ma taką bibliotekę. Jeśli jednak nie chcesz ich użyć to pozostają jeszcze stringi i tu już brak ograniczeń co do wielkości liczby, ale cały kod trzeba wklepać od zera.
Śmiesznie prosta implementacja RSA z użyciem biblioteki LiDIA jest TUTAJ
warto zajrzeć też TU
_________________ TrackInfo - edytor tras
|
|
|
Powrót do góry |
|
 |
Mały
Zaczyna szaleć na ulicach
Dołączył: 15 Mar 2009
Posty: 379
Skąd: Czarna Białostocka
|
Wysłany: 12 czerwca 2010, 20:23 Temat postu: |
|
|
co do języka, to nieważne jaki, byle obiektowy, chociaż ja preferuję Java, c++ jakoś mi nie podchodzi ;p
z gotowych bibliotek niestety nie mogę korzystać, jednym z założeń tego projektu jest stworzenie wszystkiego od podstaw, co jak dla mnie jest debilizmem, no ale cóż, nie ja prowadzę te zajęcia.
dzięki wielkie za linki, tego akurat nie znalazłem cóż, trzeba będzie pogrzebać w tej bibliotece LiDIA i "na podstawie analizy i dogłębnych wniosków, stworzyć swoją wersję" jeszcze raz dzięki
_________________
|
|
|
Powrót do góry |
|
 |
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|