220 likes | 304 Views
Using the CC2420 with AES Support. Eric Famiglietti and Simone Willett. WSN Encryption Issues. Lack of physical protection Resource constraints Public-key cryptography, RSA Unsuitable for low power and limited memory Key establishment/distribution problem Symmetric-key algorithms.
E N D
Using the CC2420 with AES Support Eric Famiglietti and Simone Willett
WSN Encryption Issues • Lack of physical protection • Resource constraints • Public-key cryptography, RSA • Unsuitable for low power and limited memory • Key establishment/distribution problem • Symmetric-key algorithms
WSN Encryption Examples • Identity-based encryption • http://eprint.iacr.org/2007/020.pdf • Solves problem of public-key exchange • RSA, Elliptic curve cryptography • http://www.cs.wayne.edu/~weisong/papers/walters05-wsn-security-survey.pdf • TinySec • DES, RC5, Skipjack, AES
AES • Advanced Encryption Standard • Successor of DES • Symmetric key encryption standard • Used worldwide • Fixed block size of 128 bits • Key size of 128, 192, or 256 bits • Number of rounds of encryption • 10, 12, 14 respectively
AES: Performance • Faster in hardware • Good performance was an explicit goal • Performs well on a variety of hardware
Trust Management • We are primarily concerned with authorization, as opposed to authentication. • Authentication is the mechanism whereby systems may securely identify their users. • Authorization is the mechanism by which a system determines what level of access a particular authenticated user should have to secured resources controlled by the system.
Main Goal • We would like to set up a public key encryption to authorize the sender and receiver then establish AES session keys. • Verification takes 2 minutes. - unrealistic • Sprocket currently works with software created AES keys that are sent across the air and verified by the nodes. • Do all AES encryption on the chip.
Trust Mangement = RT0 • Flexible approach to access control in distributed systems • Access control decisions are based on the policy statements, called credentials, • Permissions in RT0 are represented by roles. • Credentials are made by different principals and stored in a distributed manner
Credential • A credential is a statement • Signed by the issuer • About a subject • Containing info about the subject. • Requirements: • Unforgeable. • Verifiable (belongs to the entity asking for the service) • Signed • Have well defined semantics.
Certificate • Contains credential information in an over the air format. • A role A.r denotes the set of entities that are members of it. • Example: UVM.studentIdAlice • Entities can define roles, issue credentials, and make requests. • In our case identities are pubic keys.
Certificate Validity • Credentials contain private information and should be treated as such (e.g. medical record). • Since an authorizer receives certificates from an unknown potentially untrustworthy entities, the validity must be checked • Signatures • Certificate must not have expired.
Show Verify Example • Form 1 is A.r E • Form 1 • Public Key 40 bytes. • Role 1 • Pub Key2 40 bytes. • Signature 2(21) = 42 bytes. • Total 124 bytes.
Project • Currently symmetric keys are being used to encrypt with software. • We want to use the hardware to make this a faster process. • CC2420 chip that has AES support. • Allow for multiple keys and decryption • Many motes talking at once • http://focus.ti.com/lit/ds/swrs041b/swrs041b.pdf
Steps • Use the hardware version of AES in a simple Blink program. • Use hardware AES to send and receive packets that are encrypted. • Integrate into the overall project. • Test and optimize.
Encryption on CC2420 • Use Hardware security in CC2420. • The encryption provides a plain AES encryption, with 128 bit plaintext and 128 bit keys. • To encrypt a plaintext, a node first writes the plaintext to the stand-alone buffer SABUF, and issues a SAES command to initiate the encryption. • When encryption is complete, the ciphertext is written to the buffer, overwriting the plaintext.
Interfaces • interface CC2420Register as SECCTRL0; • interface CC2420Register as SECCTRL1; • interface CC2420Ram as KEY0; • interface CC2420Ram as SABUF; • interface CC2420Strobe as SAES; • interface CC2420Strobe as SNOP;
How to start • First power up the chip. • Initialize the key. • Encrypt. • Send • Decrypt.
References • www.cs.purdue.edu/homes/ninghui/readings/trust/rt_slides.pdf. • Theory.stanford.edu/~ninghui/talks/rt_oakland02_slides.pdf. • Cis.sjtu.edu.cn/…/The_Standalone_AES_Encryption_of_CC2420_(TinyOS_2.10_and_MICAz)