--- title: 'Secure Platform of LaDS' disqus: hackmd --- Secure Platform of LaDS === ![downloads](https://img.shields.io/github/downloads/atom/atom/total.svg) ![build](https://img.shields.io/appveyor/ci/:user/:repo.svg) ![chat](https://img.shields.io/discord/:serverId.svg) ## Table of Contents [TOC] ## Each Cryptographic Modules of the Secure > **ECDSA SIGN** | Name | I/O | Width |Description | | :--------: | :--------: |:---:| :-------- | | Hash | Input | 256 | Hash digest value of message to be signed | | K | Input | 256 | A random key to sign the message, should kept different each time to be used | | privateKey | Input | 256 | Private Key to sign the message | | Qx | Output | 256 | X coordinate of point Q | | Qy | Output | 256 | Y coordinate of point Q | | R | Output | 256 | part of signing pair {r,s} | | S | Output | 256 | part of signing pair {r,s} | | kValid |Output | 8 | return true if input parameters are legal, otherwise return false | > **ECDSA Verify** | Name | I/O | Width |Description | | :--------: | :--------: |:---:| :-------- | | Hash | Input | 256 | Hash digest value of message to be verified | | Qx | Input | 256 | X coordinate of point Q | | Qy | Input | 256 | Y coordinate of point Q | | R | Input | 256 |part of signing pair {r,s} | | S | Input | 256 |part of signing pair {r,s} | | ifValid| Output | 8 | return true if verified, otherwise return false | > **SHA 256** | Name | I/O | Width |Description | | :--------: | :--------: |:---:| :-------- | | Data_in | Input | 32 | Message to be hashed | | Num_block | Input | 32 | Message divided by 64 for each block e.g. 256bit message means that 256 / 64 = 4 blocks| | Digest | Output | 256 | Hash value of the message(256bit) | > **AES** | Name | I/O | Width |Description | | :--------: | :--------: |:---:| :-------- | | Mode | Input | 32 | Select the mode(RESET, ENCRYPT, DECRYPT, SET_IV, SET_KEY)| | Data_in | Input | 32 | Select the certain mode and give the specific datae.g. SET_IV (16 bytes), SET_KEY(256bits) | | Data_out | Output | 256 | Output data of the engine | ## Sequence Diagram of each Functionality >**Generate the 1st device key** > ![](https://i.imgur.com/5L0paOJ.png) >**Reproduce the device key** >![](https://i.imgur.com/hVtdjr0.png) > **Receive Session Key From Other Device** > ![](https://i.imgur.com/q7erVDi.png) > **Encrypt The Plain Text with Session Key** > ![](https://i.imgur.com/rkv46Wx.png) > **Decrypt The Plain Text with Session Key** > ![](https://i.imgur.com/tWOkqt4.png) > **Build The Secure Communication Channel** > ![](https://i.imgur.com/f4yLCh6.png) User story --- ```gherkin= Feature: To be determinated Two vehicles want to communicate each other and sever Scenario: Sever sends the encrypted message or file to vehicle ... ``` > Read more about Gherkin here: https://docs.cucumber.io/gherkin/reference/ Project Timeline --- * **6 weeks** - 1-2 week: DEMO discussion SPEC. Documentation(Past & Future notes) SHA256 HW FLASH Provisioning flow - 3-4 week: Secure communication channel between server and device Secure boot integration Policy of Session key - 5-6 week: Key management integration DEMO preparation ## Development Board > Xilinx Zedboard * Key Features and Benefits * Zynq-7000 SoC XC7Z020-CLG484-1 * 512 MB DDR3 * 256 Mb Quad-SPI Flash * 4 GB SD card * Onboard USB-JTAG Programming * 10/100/1000 Ethernet * USB OTG 2.0 and USB-UART * PS & PL I/O expansion (FMC, Pmodā„¢, XADC) * Multiple displays (1080p HDMI, 8-bit VGA, 128 x 32 OLED) * I2S Audio CODEC * Commercial Tool * Xilinx vivado High Level Synthesis (HLS) * Xilinx vivado Design Suite * Xilinx vivado Software Development Kit (SDK) ## Authors **SHIH, WEN-WEI** - r08943171@ntu.edu.tw - [Github](https://github.com/Wen-Wei0914/Research.git) **KO, HSIEN-FENG** - r08943169@ntu.edu.tw **CHIN, TIAN-TZU** - r08943183@ntu.edu.tw ## Appendix and FAQ :::info **Find this document incomplete?** Leave a comment! ::: ###### tags: `Secure Platform` ## Reference 1.