Download presentation
Presentation is loading. Please wait.
1
Encryption Transaction with 3DES Team W2 Yervant Dermenjian (W21) Taewan Kim (W22) Evan Mengstab(W23) Xiaochun Zhu(W24) Objective: To implement a secure credit card transaction using 3DES encryption and Kerberos-style authentication. Current Stage: Architecture Proposal 01/26/2004 Design Manager: Rebecca Miller
2
Identity theft is a growing problem Sensitive information never transmitted Uses existing cards and phone network Credit and charge card fraud costs cardholders and issuers hundreds of millions of dollars each year Security In Making Purchases
3
Encryption/Decryption Example Input : Credit Information Output : Cipher Text Credit #: 2739 8201 4856 2389 Credit #: 2739 8201 4856 2389 Security code: 319 Security code: 319 Input Pin # : 4510 Input Pin # : 4510 key1: 0x32, 0x37, 0x33, 0x39, 0x38, 0x32, 0x30, 0x31 key1: 0x32, 0x37, 0x33, 0x39, 0x38, 0x32, 0x30, 0x31 key2: 0x34, 0x38, 0x35, 0x36, 0x32, 0x33, 0x38, 0x39 key2: 0x34, 0x38, 0x35, 0x36, 0x32, 0x33, 0x38, 0x39 key3: 0x33, 0x31, 0x39, 0x34, 0x35, 0x31, 0x30, 0xFF key3: 0x33, 0x31, 0x39, 0x34, 0x35, 0x31, 0x30, 0xFF Expiration Date: 08/2008 Expiration Date: 08/2008 Plain Text : 0x30, 0x38, 0x2F, 0x32, 0x30, 0x30, 0x38, 0xFF Plain Text : 0x30, 0x38, 0x2F, 0x32, 0x30, 0x30, 0x38, 0xFF 0x2F, 0x81, 0xA8, 0xBF, 0x3C, 0x6B, 0xDF, 0xB4 0x2F, 0x81, 0xA8, 0xBF, 0x3C, 0x6B, 0xDF, 0xB4
4
3DES Algorithm Flowchart (I) DES DES -1 DES Plain Text DES -1 DES Cipher Text K1K1K1K1 K2K2K2K2 K3K3K3K3 Encryption Decryption
5
3DES Algorithm Flowchart (II) 64 bit plain Text cipher Text Initial Permutation Final Permutation 16 Rounds Encryption Extension 32 bit 48 bit 48 Bit XOR S Box 32 Bit XOR Right Half Left Half Subkey SingleRound
6
3DES Algorithm Flowchart (III) Final Permutation 48 bit Sub-key [ I ] I=16? Key Schedule 56bit Key I=1 Left/Right Half 28 bits Left Barrel Shift Initial Permutation I=I+1 Ready Y N
7
Verification of 3DES in C
8
I/O Pins Required Inputs: Provided Output : 32 bits data input at pins 32 bits data input at pins 1 bit reset at pin 1 bit reset at pin 1 bit encryption/decryption mode control at pin 1 bit encryption/decryption mode control at pin 32 bits data output at pins 32 bits data output at pins 1 bit ready at pin 1 bit ready at pin 1 bit clock at pin 1 bit clock at pin
9
Block Diagram Key2 56’b SRAM Barrel Shifter I: 0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0 PC-2 (wiring) Key set Current and next keys 2 x 48’b Register 48’b 32’b 56’b 1’b 56’b 48’b PC (wiring) XOR Expansion 32’b 48’b Plaintext 64’b SRAM R[I] 32’b L[I] 32’b S-box 8x4x16x4’b ROM L[I-1] 32’b R[I-1] 32’b XOR 48’b 64’b Register P 32’b Key1,3 56’b SRAM 32’b output 32’b input demux 16’b ROM IP -1 (wiring) 32’b input 64’b mux 32’b mux
10
S Box 4LUT 16x4bit ROM 4LUT 16x4bit ROM 4LUT 16x4bit ROM 4LUT 16x4bit ROM Mux FF 4 {1:6} {2:5} {1},{6} {6} {1} 4 4
11
Architecture Analysis The Key schedules can be pinelined with the encryption process. While the key[I-1] is used to encrypt the text, the key[I] will be generated at the same time. SRAM is used to store the keys and the plain text; 2x48’b registers are used to store the sub-keys during scheduling Permutation is implemented by wiring The data input pins are designed to be 32 bits. We need to clock over 2 clock cycles for 64 bits keys; 32 output pins need to clock over 2 clock cycles for the 64 bits cypher text.
12
Behavior Verilog Test Bench
13
Transistor Estimation (I) Transistor Count for Key Schedule 2 x 56 bits SRAM: 672 T 2 x 56 bits SRAM: 672 T 2 x 28 bits Barrel Shifter: 112 T 2 x 28 bits Barrel Shifter: 112 T 160 X 2-1 Mux/Demux:645 T 160 X 2-1 Mux/Demux: 645 T 2 x 48 bits Register: 2 x 48 bits Register: 1152 T PC (4 bit Adder & 4bit Register): PC (4 bit Adder & 4bit Register): 160 T lookup table(16 bit ROM&4bit Decoder): lookup table(16 bit ROM&4bit Decoder): 104 T Control Logic: Control Logic: 500 T
14
Transistor Estimation (II) Transistor Count for Encryption Process 1 x 64 bits SRAM: 384 T 1 x 64 bits SRAM: 384 T 80 bit XOR: 640 T 80 bit XOR: 640 T 8 x S Box (256bits ROM & 6 bit Decoder) : 5728 T 2 x 64 bits Register: 2 x 64 bits Register: 1536 T PC (4 bit Adder & 4bit Register): PC (4 bit Adder & 4bit Register): 160 T 192 x 2-1 Mux/Demux: 192 x 2-1 Mux/Demux: 1536 T Control Logic: Control Logic: 500 T Total Transistor Count: Total Transistor Count: ~ 13829 T
15
Current Status Design Proposal (100% done) Architecture Proposal (100% done) High Level Simulation by C code High Level Simulation by C code Mapping of algorithm into hardware Mapping of algorithm into hardware Behavioral Verilog simulation and test bench Behavioral Verilog simulation and test bench To be done Floor Plan Floor Plan Gate-level design Gate-level design Chip Layout Chip Layout
16
Design Decisions Store only 2 keys at a time Reduce Barrel shifting control values from 1/2 to 0/1 to use only a single bit Two memory blocks for keys used so Key1 does not have to be inputted twice for Key3
17
Problems and Questions Should we choose SRAM or registers to store the sub-keys after scheduling? Permutation implemented by wiring may cause messy wire crossover. Can we implement this with logic? The transistors required to store all sub-keys is very large. We hope to be able to only store two sub-keys at a time.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.