---
title: 'Secure Platform of LaDS'
disqus: hackmd
---
Secure Platform of LaDS
===



## 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**
>

>**Reproduce the device key**
>
> **Receive Session Key From Other Device**
>

> **Encrypt The Plain Text with Session Key**
>

> **Decrypt The Plain Text with Session Key**
>

> **Build The Secure Communication Channel**
>

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.