Updates from October, 2008 Toggle Comment Threads | Keyboard Shortcuts

  • CG 5:53 pm on October 31, 2008 Permalink | Reply

    Presentations, hard ones! 

    Preparing presentations…


    1. A 15-20 minutes session about ECC in this class. So scarrrryyyyyy!!!!
    2. An overview about my dissertation thesis. In front of those algebraist in Math Dept.!!! Not less scarrrrry!!!

    Excited but also worried and a bit freaked out!!!

    • Budi Rahardjo 12:27 am on November 4, 2008 Permalink | Reply

      Don’t worry … just tell stories.

    • chikaradirghsa 2:12 am on November 4, 2008 Permalink | Reply

      aaaaaaa, no stories to tell! to much numbers and lines of codes in my head.
      i guess i should read “the code book” and “crypto” all over again and also finish “the code breakers” 😀

    • Iffata 7:59 am on November 4, 2008 Permalink | Reply

      Hmm… yeah … let’s re-read those books! 😀 *tempting me, huh?*

      Yesterday, Chika, I learned that:
      No matter how old they are, the students are still “the kids” 😀 To introduce something new to them, picture and story -perhaps- will suit them much better than text and number 🙂

    • CG 9:00 am on November 4, 2008 Permalink | Reply

      @iffata: yes, i learned a lot from u 😉
      i usually not persistent enough to show the entire big picture and in simple words, which you did very well 😉

  • CG 5:46 pm on October 31, 2008 Permalink | Reply

    Go for quals! 

    #1 said today that he approved my latest topic and title and also gave me guidance about what to prepare for quals.

    He said, go for quals! Target: move a step forward, get through a milestone and get feedbacks. If fail, do it again 😀

    Well I’m sooo happy because he support me with the sub topics and ideas! Really helps me to recover from this :))

  • CG 2:32 am on October 27, 2008 Permalink | Reply
    Tags: big numbers   

    Big numbers for crypto 

    My informal advisor/supervisor recommend me this amazing book. It really gives me a big hope that there are so many things to explore in software implementation 😀

    • mehobbes 5:13 pm on October 27, 2008 Permalink | Reply

      wow! BIGNUM MATH!
      saya tertarik sekali dengan bukunya!

      sepertinya kalau saya rajin membaca posting2x di sini,
      bisa2x saya jadi ‘accidental cryptographer’ 😀

    • Budi Rahardjo 7:06 pm on October 27, 2008 Permalink | Reply

      The thing is many people think that software is easy. All you have to do is type and software is created. This may be true if you have toy problems, but developing software for real applications is not easy.

      Many students also think that creating software is easier than creating hardware. They are wrong. Both are difficult problems, if you do things correctly (not just playing around).

      You are right that there are still many things to explore in software implementation of crypto stuff. 😀

    • Budi Rahardjo 7:10 pm on October 27, 2008 Permalink | Reply

      Ah forgot one more thing, re: reading that book. Give me some time to think what’s the best strategy (given your tight schedule) to read that book.

    • mehobbes 10:29 am on October 28, 2008 Permalink | Reply

      pernah dalam suatu diskusi ada yang mengatakan kalau membuat hardware itu mudah.
      dia bilang, apa susahnya tinggal beli komponen, dirakit, disolder, kemudian dijalankan.
      saya sampai kaget mendengarnya.

      bagi saya membuat hardware dan software sama2x memiliki tantangan sendiri.
      keduanya memiliki pendekatan desain yang berbeda, memiliki karakteristik yang unik,
      sama-sama tidak mudah.
      dan tantangannya akan bertambah lagi seandainya hardware dan software digabungkan
      (yang saya sendiri belum tentu berani).

      orang2x yang mengatakan bahwa membuat software itu mudah,
      sepertinya adalah orang2x yang sesungguhnya belum pernah membuat software 😀

    • waskita 6:14 am on November 1, 2008 Permalink | Reply

      orang yang mengatakan membuat software itu mudah, pasti belum pernah baca buku software engineering, atau belum pernah melakukan pengembangan software dalam suatu team selama sekurangnya 1 tahun.

    • chikaradirghsa 2:14 am on November 4, 2008 Permalink | Reply

      @waskita: betul mas. sepertinya saya juga musti tamatin buku software engineering 🙂

  • CG 2:29 am on October 27, 2008 Permalink | Reply
    Tags: , technical   

    Arithmetic/logical shift? 

    Have just learned from the previous posting that:

    1. Arithmetic/logical shift is determined by the datatype.
    2. Use the max bitlength o test the behaviour of shift operation in certain datatypes (in this case 32 bits for int).
    • mehobbes 5:09 pm on October 27, 2008 Permalink | Reply

      jadi ini masalahnya waktu posting tentang sign extending?
      masalah tentang operasi shift-nya?

      kelihatannya ada code yang lain.
      tidak di-posting di sini? 😀

  • CG 3:43 pm on October 25, 2008 Permalink | Reply
    Tags: , ,   

    Software vs Hardware 

    Have just read this, this and this .

    And make this simple table

    Now reading this book and trying to figure out what issues in software implementation that worth to be the focus of my research and promising enough to explore [and defendable enough to convince my academic advisors 😉 ]

  • CG 8:55 pm on October 24, 2008 Permalink | Reply
    Tags: , sign extending   

    About sign extending 

    The examples below show the problem in sign extending:

    And this is the code:

    // Code for sign extending
    // CG – 24102008

    #include <stdio.h>

    void int_to_bin(unsigned x){
    unsigned char b[32];
    unsigned char i;

    for (i=0; i<32; i++){
    b[i] = 0;

    i = 31;
    while (x > 0){
    b[i] = x % 2;


    for (i=0; i<32; i++){
    printf(“%d”, b[i]);
    if ( ( ( i+1 ) % 8 ) == 0 ){
    printf(” “);

    typedef unsigned packed_t;

    //this is the wrong implementation
    int xbyteincorrect(packed_t word, int bytenum){
    return (word >> (bytenum << 3)) & 0xFF;

    //this is the correct implementation with sign extending
    int xbytecorrect(packed_t word, int bytenum){
    return (((word<<((3-bytenum)<<3))>>24)-(((word<<((3-bytenum)<<3))>>31)<<8));

    int main () {
    int x, y;

    printf(“Enter an integer: “);
    scanf(“%d”, &x);
    printf(“Enter byte number: “);
    scanf(“%d”, &y);

    printf(“\nword \t\t\t\t\t\t\t\t\t\t\t\t\t\t:\t”);

    printf(“\n\nThe incorrect result: “);
    printf(“\n——————– “);
    printf(“\nbytenum \t\t\t\t\t\t\t\t\t\t\t\t:\t%d”, y);
    printf(“\nbytenum \t\t\t\t\t\t\t\t\t\t\t\t:\t”);
    printf(“\nbytenum<<3 \t\t\t\t\t\t\t\t\t\t\t:\t%d”, y<<3);
    printf(“\nbytenum<<3 \t\t\t\t\t\t\t\t\t\t\t:\t”);
    printf(“\nword>>(bytenum<<3) \t\t\t\t\t\t\t\t:\t0x%x”, x>>(y<<3));
    printf(“\nword>>(bytenum<<3) \t\t\t\t\t\t\t\t:\t”);
    printf(“\n0xFF \t\t\t\t\t\t\t\t\t\t\t\t\t\t:\t0x%x”, 0xFF);
    printf(“\n0xFF \t\t\t\t\t\t\t\t\t\t\t\t\t\t:\t”);
    printf(“\n((word>>(bytenum<<3)) & 0xFF \t\t\t\t:\t0x%x”, (x>>(y<<3))&0xFF);
    printf(“\n((word>>(bytenum<<3)) & 0xFF \t\t\t\t:\t”);
    printf(“\nIncorrect result \t\t\t\t\t\t\t\t\t:\t0x%x\n”, xbyteincorrect(x, y));

    printf(“\n\nThe correct result: “);
    printf(“\n—————— “);
    printf(“\nbytenum \t\t\t\t\t\t\t\t\t\t\t\t:\t%d”, y);
    printf(“\nbytenum \t\t\t\t\t\t\t\t\t\t\t\t:\t”);
    printf(“\n3-bytenum \t\t\t\t\t\t\t\t\t\t\t\t:\t%d”, 3-y);
    printf(“\n3-bytenum \t\t\t\t\t\t\t\t\t\t\t\t:\t”);
    printf(“\n(3-bytenum)<<3 \t\t\t\t\t\t\t\t\t\t:\t%d”, (3-y)<<3);
    printf(“\n(3-bytenum)<<3 \t\t\t\t\t\t\t\t\t\t:\t”);
    printf(“\nword<<((3-bytenum)<<3) \t\t\t\t\t\t\t:\t0x%x”, x<<((3-y)<<3));
    printf(“\nword<<((3-bytenum)<<3) \t\t\t\t\t\t\t:\t”);
    printf(“\n(((word<<((3-bytenum)<<3))>>24)  \t\t\t:\t0x%x”, (x<<((3-y)<<3))>>24);
    printf(“\n(((word<<((3-bytenum)<<3))>>24)  \t\t\t:\t”);
    printf(“\n(((word<<((3-bytenum)<<3))>>31)  \t\t\t:\t0x%x”, (x<<((3-y)<<3))>>31);
    printf(“\n(((word<<((3-bytenum)<<3))>>31)  \t\t\t:\t”);
    printf(“\n((((word<<((3-bytenum)<<3))>>31)<<8) \t:\t0x%x”, ((x<<((3-y)<<3))>>31)<<8);
    printf(“\n((((word<<((3-bytenum)<<3))>>31)<<8) \t:\t”);
    printf(“\n(((word<<((3-bytenum)<<3))>>24)-(((word<<((3-bytenum)<<3))>>31)<<8)) \t:\t0x%x”, (((x<<((3-y)<<3))>>24)-(((x<<((3-y)<<3))>>31)<<8)));
    printf(“\n(((word<<((3-bytenum)<<3))>>24)-(((word<<((3-bytenum)<<3))>>31)<<8)) \t:\t”);
    printf(“\nCorrect result \t\t\t\t\t\t\t\t\t\t:\t0x%x\n”, xbytecorrect(x, y));

    return 0;

    • mehobbes 5:03 pm on October 27, 2008 Permalink | Reply

      sebenarnya ada problem apa dengan sign extending?
      saya tertarik sekali dengan code-nya, tapi bingung ini mau menjelaskan apa.

      kalau saya telusuri hasilnya, ada hal yang menarik ketika dimasukkan integer bernilai 249.
      apakah hasilnya itu tidak terbalik?
      di situ tertulis:
      incorrect result: 0xf9 00000000 00000000 00000000 11111001
      correct result : 0xfffffff9 00000000 00000000 00000000 11111001

      atau justru ini problemnya?

  • CG 3:45 pm on October 23, 2008 Permalink | Reply
    Tags: ,   

    Why prime fields? Why binary fields? 

    From this document, now I can answer one of the questions from the previous posting:

    Why prime fields?

    1. Commonly used for software implementations because
      the integer arithmetic is more optimized in today’s
    2. Desktops: favour fast multipliers
    3. Embedded: varies based on processor architecture‏
    4. Hardware implementations benefit from the full size
      operands but the area impact may be significant
    5. Hardware implementations carry chain timing challenges

    Why binary fields?

    1. Not as efficient in SW implementations compared to
      prime fields where large multipliers are available

      • Integer multipliers can deal with word size data
      • Not true for smaller processors with inefficient integer


    2. Even more challenging for custom SW implementations if
      m is a large value

      • Challenging for SW implementations with reduced register


    3. Usually use a sliding window dbl/add to speed up
  • CG 10:03 pm on October 22, 2008 Permalink | Reply
    Tags: , prime field   

    Questions and notes 

    1. Why prime field? Why binary field?
    2. Reconfigurable, interoperable issues, are they important?
    3. HW? SW? or HW/SW partitioning?
  • CG 9:51 pm on October 22, 2008 Permalink | Reply

    Pre-Quals: pending Quals 

    Gave a presentation today in front of academic supervisor #1, #2 and informal advisor/supervisor.

    #1 and #2 disapproved the latest topic. They prefer the previous topics I proposed.

    Now I’m stuck and thinking about what to do next. Arrrrrrghhghghghghgh!!!

  • CG 10:10 pm on October 20, 2008 Permalink | Reply

    Congrats for a new Phd! 

    Hey hey, my PhD fellow had successfully defend his thesis last Saturday!

    More about it here. And maybe here.

Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc