Archive for August, 2008

28
Aug
08

Papers on ECC Implementation

26
Aug
08

back to campus

spend some time at the campus today. it was surprisingly gave some recharging effects.

life must go on, so does the research :)

24
Aug
08

where did i…

leave the last progress of my research?

these things happening the last few days… draining me.

22
Aug
08

Away for a while

Cannot access my other blog to inform this, so i’m leaving a clue here that i might be away for a while. i’ll write about what’s happening right away after i can access the site (no personal stuff here, that’s the rule).

Will fight to keep in focus to the research and make some progress. Sorry for not responding your comments (if there’s any) immediately ;)

20
Aug
08

more rules !

Today I received a short message from my academic advisor informing that all phd students under his supervision should do the research in campus for at least 4 hours everday (Mon-Fri) and submit progress report every week.

Seems that it won’t be any problem at all for me, except that he mentioned about signing up attendance form everyday!! :P

18
Aug
08

Crypto++ Library: Exploration

The library is developed under Microsoft Visual C++ Environment. I got headache to see those lines of API programming using MFC, aaaaaaarghghghghgg….

So I will just observe the inner workings and then start to build a simple code of encoding text and decrypt it  using ECC.

Additional info:

Crypto++ supplies 31 predefined Elliptical Curves for use with ECIES (Elliptic Curve Integrated Encryption Scheme) as specified in ANSI X9.63. These curves range in size from 112 bits to 571 bits. Encrypting a 4 byte message with a 112 bit ECIES object produces a cipher text length of 53 bytes. Encrypting the same message with an ECIES object of 34 bits will produce a 35 byte cipher text.

18
Aug
08

Curve generator

Have just downloaded a curve generator called ECB – Elliptic Curve Builder (and just found out that it’s executable for use under Win XP on 32-bit prosessors :( ( ).

The important thing is to find out is whether the curves generated by ECB are secure, or not?

18
Aug
08

Crypto Library

Stumbled upon this page while looking for some examples of encrypting message block with ECC, then found a crypto library called Crypto++ Library.

Will explore on how to compile and utilize the library and wondering will I end up with developing my own crypto library? We’ll see.

16
Aug
08

Plaintext embedding on Elliptic Curve: Conclusions

From this paper:

  • Problems of plaintext embedding are the fundamental problems in elliptic curve public key cryptosystems.
  • A good embedding algorithm will enhance the encryption speed.
  • Plaintext embedding algorithm in binary field presented in the paper is easier to be implemented than that in prime field, and faster.
  • Applying the plaintext embedding algorithm to the storage and trasmission of points in elliptic curve can save half of the storage space and bandwidth.
16
Aug
08

Jacobi symbol

Embedding plaintext on Elliptic Curve is no simple. The problems to solve are how to represent a block of plaintext with the form of point on elliptic curve and recover it quickly. Not any block of plaintext can be embedded to elliptic curve because about half of x has no y correspondingly.

The common method to resolve this is by determining the quadratic residue using Jacobi symbol. If Jacobi(a) = 1, a is a quadratic residue, and if Jacobi(a) = -1, c is not a quadratic residue so the corresponding plaintext can’t be embeded to elliptic curve.

The following is the code for calculating Jacobi symbol [thx God I took the course taught by Prof. Edy Tri Baskoro, so I'm familiar enough with this "common" mathematical method, hi hi hi]:

/********************************************
 *  Program for calculating Jacobi symbol   *
 *                                          *
 *  CG - August 2008                        *
 ********************************************/

#include <iostream>

using namespace std;

int jacobi(int, int);

int main()
{
    int a, n;

    cout << "a? ";
    cin >> a;
    cout << "n? ";
    cin >> n;

    cout << "\nThe Jacobi symbol is " << jacobi(a,n) << endl;

    return 0;
}

/* Precondition: a, n >= 0; n is odd */
int jacobi(int a, int n) {
    int ans;

    if (a == 0)
        ans = (n == 1) ? 1 : 0;
    else if (a == 2) {
        switch ( n % 8 ) {
            case 1:
            case 7:
                    ans = 1;
                    break;
            case 3:
            case 5:
                    ans = -1;
                    break;
        }
    }
    else if ( a >= n )
        ans = jacobi(a%n, n);
    else if ( a % 2 == 0 )
        ans = jacobi(2,n)*jacobi(a/2, n);
    else
        ans = ( a % 4 == 3 && n % 4 == 3 ) ? -jacobi(n,a) : jacobi(n,a);
    return ans;
}

I test the code using example from this book, page 132. a = 6278 and n = 9975. The result is correct : -1




Blog Stats

  • 11,004 hits

Categories

 

August 2008
M T W T F S S
« Jul   Sep »
 123
45678910
11121314151617
18192021222324
25262728293031