LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Girish Venkatachalam<girishvenkatachalam@g...>
    Date: Wed Oct 18 17:18:01 CEST 2006
    Subject: [oc] AES128 Question
    Top

    > > While using the AES128 core (aes_crypto_core) I have come across a
    > > problem; after encrypting data with a key and receiving an output, how
    > > do I know what the inverse key is in order to decrypt the output? I had
    > > an example from the fips document about AES so I was able to test
    > > given their key and output key, and was successful in doing so.
    > > However, making up a key wont work for me as I have no idea what the
    > > inverse key is. Clearing this issue up would really help me out. Thanks.

    Decryption is the reverse(inverse) of encryption. In AES you perform a series of operations, say you have 16 rounds. Then 16 times data is serially encrypted with a different key. It is only the key that is different between the rounds. Nothing else. In the end, however some more mixing is done. This process is repeated for each of the blocks of input data. The blocks also interact with one another depending on the ciphering mode, and the mixing is very good if you operate in CBC mode. Of couse the IV also comes into play.

    Encryption is nothing but confusion and diffusion; substitution and transposition.

    Decryption is nothing but doing the same thing in reverse. So in this case, you would take the key , feed it to encrypted data, apply the last stage mixing first and then do the series of rounds. You get back the data because encryption at a fundamental level is an XOR operation and you XOR twice to get back the data.

    Sorry, I have oversimplified things and also have been wrong at a few places. But this may help clear some confusion for u. Who knows? :-)

    Best,
    Girish

    ReferenceAuthor
    [oc] AES128 QuestionHemanth

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.