Archive for Luty, 2008

Podsumowanie 0

Osobiste osiągnięcie :-)

56

Po zmianie template’a spadł blog w googlach. Bo posty na głównej stronie przestały posiadać tagi html jak i są w skróconej formie. Jeżeli zależy wam na seo to ten template jest do d… niczego.

Statystyki wyszukiwania.

88 różne frazy Szukanych Procent
twoja stara 11 7.2 %
google 6 3.9 %
ie8.js 6 3.9 %
update 6 3.9 %
developer 5 3.3 %
zdrowietouroda 5 3.3 %
get_liczba 4 2.6 %
pracy 3 1.9 %
firmy 3 1.9 %
jestem 3 1.9 %
Inne frazy 99 65.5 %

Generalnie nie to o co mi chodzi. Kiszka i porażka jeszcze tylko niech mi PR z 1 na 0 zmienią i będę mógł się powiesić. Jedynie projekt seo “twoja stara” owocuje odwiedzinami. A i tak tylko jestem na 1 msc. gdy pyta się o “twoja stara tuli rysia”

Co mnie bardzo cieszy w starciu na moim blogu mięcy MSIE a FF wygrywa: FireFox i to z kretesem 56% do 22%. Najczęściej wchodzicie tutaj w poniedziałki o godzinie 14 :) Generalnie ilość wizyt trzyma się na stałym poziomie.

Co do Seo wniosek: Być może zaspamowałem googla linkami z różnych forów. I bot mnie powycinał. Tylko że zazwyczaj te linki były obustronne i chciałem uniknąć google bombingu.

W  sobotę ostatni egzamin. Idę dalej walczyć z notatkami.

Pozdrawiam wszystkich czytelników.

Developers in Pain! 0

Film, który każdy z developerów przeżywa na codzień

Implementacja algorytmu RSA w C++ 2

Witam,

Dzisiaj chciałbym przedstawić wam implementacje algorytmu RSA( Ronald Rivest, Adi Shamir, Leonard Adleman). Wykorzystując potężną bibliotekę LiDIA (strona domowa biblioteki: http://www.cdc.informatik.tu-darmstadt.de/TI/LiDIA/)

Najpierw przedstawie algorytm:

  1. Losujemy dwie duże(ok 1024 bity tj. Liczba składająca się z 300 cyfr) liczby pierwsze p i q, oraz liczbę e = (p − 1)(q − 1).
  2. Następnie obliczamy d = e^{-1} \mod (p-1)(q-1) (ponieważ wybraliśmy względnie pierwsze e, ma ono odwrotność i obliczyć ją możemy szybko rozszerzonym algorytmem Euklidesa)
  3. W kolejnym kroku obliczamy n która jest iloczynem p i q
  4. Klucz publiczny to para (e,n), klucz prywatny zaś to para (d,n). Liczby p i q należy zniszczyć.
  5. Szyfrujemy wiadomość M za pomocą: c=m^e mod n (c- kryptogram, wiadomość zaszyfrowana = wiadomość m do potęgi e modulo n)
  6. Żeby M zdeszyfrować podnosimy zaszyfrowaną wiadomość do potęgi d. Zgodnie z twierdzeniem Eulera dostaniemy oryginalną wiadomość (o ile m nie jest wielokrotnością p lub q): c^d = m^(ed) = m mod n

Implementacja:

#include <LiDIA/bigint.h>
#include <iostream>using namespace std;
using namespace LiDIA;
bigint get_liczba() {
     bigint rand_liczba;
     bigint max = 1;
     shift_left(max, max, 1024); // powiększamy liczbę do 1024 bajtów wielkości
     do  {
       rand_liczba.randomize(max);
     }while(!is_prime(rand_liczba));
     return rand_liczba;
}
int main(){
    bigint p, q;
    // losowanie p i q
    do{
        p = get_liczba();
        q = get_liczba();
    }
    while(p==q);
    //licznie n
    bigint n;
    n = p * q;
    bigint fi;
    fi = (p-1)*(q-1);
    bigint u,v,e;
    do {
      e.randomize(fi);
      e++;
    }while(xgcd(u,v,e,fi)!=1);
    bigint m,c,de;
    m=50000; // nasza wiadomość
    cout<<"message: "<<m<<endl;
    if (u<0){
      u=u%fi;
    }
    power_mod(c,m,e,n);
    cout<<"zaszyfrowane = "<<c<<endl<<endl;
    power_mod(de,c,u,n);
    cout<<"odszyfrowane = "<<de<<endl<<endl;
 }

Kompilacja:

g++ -O test.cc -I/usr/local/include -L/usr/local/lib -o test -lLiDIA -lgmp -lm

Opis Funkcji:

  • bigint xgcd(bigint & u, bigint & v, const bigint & a, const bigint & b) – funkcja oblicza (a, b) = au + vb)
  • void power_mod (bigint & res, const bigint & a, const bigint & n, const bigint m, int err = 0) – funkcja oblicza res = a^n (mod m)
  • void div_rem (bigint & q, bigint & r, const bigint & a, const bigint & b) – funkcja oblicza: q i r takie, że a = qb + r
  • bool is_prime (const bigint & a, int n = 10) – funkcja zwraca wartość true jeśli a jest liczbą pierwszą(Prawdopodobieństwo tego, że a jest liczbą pierwszą jest nie mniejsze niż 1 – 1/(4^n) )

Aktualizacja portfolio 0

Po prowizorycznej wersji czas na portfolio z prawdziwego zdarzenia :) . Może i nie jest jakieś wielkie. Ale projekty są ambitne. Nie wszystkie poleagają na dalszym rozwoju mojego CMS’a. Niedługo dojdą kolejne projekty jeszcze gorące. Jeszcze bardziej zaawansowane technologicznie. Web 2.0 to za mało :) .

Zapraszam do zwiedzania.

 Portfolio

BCdoradztwo.com.pl 0

Witam wszystkich serdecznie po przerwie.

Powracam z kolejnym projektem. Dzisiaj jest to: BC Doradztwo Gospodarcze. Kolejna udoskonalona wersja mojego systemu CMS. Layout też mojej roboty. W planach mam rozbudowę o modrewrite. Ponieważ musi się jakoś pozycjonować :) . Klient jest w fazie wprowadzania treści. Już nie długo będzie uruchomiona w pełni.
Bc Doradztwo Gospodarcze Layout

Pozdrawiam Serdecznie czytelników.

Nowy theme. 3

Jak powszechnie wiadomo: Fryzjer ma fatalną fryzurę. Kucharz zjada resztki a webdeveloper używa nie swoich themów :)

Poprzedni mnie już denerwował. Więc teraz cieszcie się nowym (mam nadzieję, że bardziej sensownym) wyglądem mojego Developer Bloga.