A User Centric Security Model for Tamper-Resistant Devices
A User Centric Security Model for Tamper-Resistant Devices
A User Centric Security Model for Tamper-Resistant Devices
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
C.2 Online Attestation Mechanism<br />
C.2.1<br />
Online PRNG Algorithm<br />
The Java Card implementation of the oine PRNG algorithm discussed in section 4.5.2.<br />
1 package selftestOnlinePRNG ;<br />
2<br />
3 import javacard . framework .APDU;<br />
4 import javacard . framework . Applet ;<br />
5 import javacard . framework . ISO7816 ;<br />
6 import javacard . framework . ISOException ;<br />
7 import javacard . framework . JCSystem ;<br />
8 import javacard . framework . U t i l ;<br />
9 import javacard . s e c u r i t y . AESKey ;<br />
10 import javacard . s e c u r i t y . Key ;<br />
11 import javacard . s e c u r i t y . KeyBuilder ;<br />
12 import javacard . s e c u r i t y . KeyPair ;<br />
13 import javacard . s e c u r i t y . MessageDigest ;<br />
14 import javacard . s e c u r i t y . RSAPrivateKey ;<br />
15 import javacard . s e c u r i t y . RSAPublicKey ;<br />
16 import javacard . s e c u r i t y . RandomData ;<br />
17 import javacard . s e c u r i t y . S i g n a t u r e ;<br />
18 import javacardx . apdu . ExtendedLength ;<br />
19 import javacardx . crypto . Cipher ;<br />
20 import javacard . s e c u r i t y . MessageDigest ;<br />
21<br />
22 public class S e l f t e s t O f f l i n e extends Applet implements ExtendedLength {<br />
23 private s t a t i c byte [ ] MemoryContents = {<br />
24 ( byte ) 0x37 , ( byte ) 0x7a , ( byte ) 0xbc , ( byte ) 0xc0 , ( byte ) 0xea , ( byte )<br />
25 0x07 , ( byte ) 0x94 , ( byte ) 0x59 , ( byte ) 0xd6 , ( byte ) 0x37 , ( byte ) 0x6b ,<br />
26 ( byte ) 0x4c , ( byte ) 0x82 , ( byte ) 0xdb , ( byte ) 0x54 , ( byte ) 0xb2 ,<br />
27 ( byte ) 0xe8 , ( byte ) 0xea , ( byte ) 0x71 , ( byte ) 0xe1 , ( byte ) 0xa4 ,<br />
28 ( byte ) 0x41 , ( byte ) 0x06 , ( byte ) 0x44 , ( byte ) 0 xfe , ( byte ) 0x86 ,<br />
29 ( byte ) 0x8e , ( byte ) 0 x4f , ( byte ) 0x39 , ( byte ) 0 xf5 , ( byte ) 0xdb ,<br />
30 ( byte ) 0xd1 , ( byte ) 0 xf1 , ( byte ) 0xc5 , ( byte ) 0xd8 , ( byte ) 0xac ,<br />
31 ( byte ) 0xbb , ( byte ) 0x73 , ( byte ) 0x51 , ( byte ) 0xa1 , ( byte ) 0xa3 ,<br />
32 ( byte ) 0x8a , ( byte ) 0x26 , ( byte ) 0x5d , ( byte ) 0 xf3 , ( byte ) 0x61 ,<br />
33 ( byte ) 0x55 , ( byte ) 0x56 , ( byte ) 0x39 , ( byte ) 0 x3f , ( byte ) 0x4c ,<br />
34 ( byte ) 0x2a , ( byte ) 0x43 , ( byte ) 0xc4 , ( byte ) 0xd7 , ( byte ) 0xa1 ,<br />
35 ( byte ) 0xaa , ( byte ) 0xc1 , ( byte ) 0 xf2 , ( byte ) 0xd6 , ( byte ) 0x07 ,<br />
36 ( byte ) 0xa8 , ( byte ) 0x58 , ( byte ) 0x9a , ( byte ) 0x70 , ( byte ) 0x84 ,<br />
37 ( byte ) 0x15 , ( byte ) 0x19 , ( byte ) 0x56 , ( byte ) 0x61 , ( byte ) 0x3d ,<br />
38 ( byte ) 0x88 , ( byte ) 0x2a , ( byte ) 0x44 , ( byte ) 0x54 , ( byte ) 0x29 ,<br />
39 ( byte ) 0x29 , ( byte ) 0x26 , ( byte ) 0x36 , ( byte ) 0x06 , ( byte ) 0 xfe ,<br />
40 ( byte ) 0xad , ( byte ) 0x27 , ( byte ) 0x13 , ( byte ) 0x86 , ( byte ) 0x0e ,<br />
41 ( byte ) 0x85 , ( byte ) 0x3c , ( byte ) 0x32 , ( byte ) 0xe2 , ( byte ) 0x38 ,<br />
42 ( byte ) 0xd2 , ( byte ) 0x91 , ( byte ) 0x82 , ( byte ) 0x89 , ( byte ) 0 xce ,<br />
43 ( byte ) 0x79 , ( byte ) 0x02 , ( byte ) 0x43 , ( byte ) 0 xfd , ( byte ) 0 xaf ,<br />
44 ( byte ) 0x18 , ( byte ) 0xe8 , ( byte ) 0x5b , ( byte ) 0xd4 , ( byte ) 0x72 ,<br />
45 ( byte ) 0x03 , ( byte ) 0x63 , ( byte ) 0x2b , ( byte ) 0x29 , ( byte ) 0x72 ,<br />
46 ( byte ) 0xe0 , ( byte ) 0x92 , ( byte ) 0x54 , ( byte ) 0x06 , ( byte ) 0x1c ,<br />
47 ( byte ) 0 x7f , ( byte ) 0xc7 , ( byte ) 0x37 , ( byte ) 0x93 , ( byte ) 0 x2f ,<br />
48 ( byte ) 0x7a , ( byte ) 0x84 , ( byte ) 0x95 , ( byte ) 0 xec , ( byte ) 0x5e ,<br />
263