메뉴바로가기
메인메뉴 바로가기
컨텐츠 바로가기

Products

Products & Technology

sub0201-제품개요_161019.jpg

 

 

20180313_page01_1.jpg

 1. RSA, ECC, AES, SHA, TRNG, PUF control source code

    Reference Github link:

    https://github.com/neowine/iot_dev_project.git


2. Arduino Asymmetric key of RSA 2048, ECDHE 256 and AES256 Demo

    https://www.youtube.com/watch?v=4dnUTZlXG-U


3. NEOWINE DORCA-3 RSA, ECC, AES & 4x4 mm Encryption chip easy to use 

    https://www.youtube.com/watch?v=GZvhJWs8EIg


 The electric circuit and internal code of Arduino are opened to public as an open source so, anybody can make and modify the pcb circuit board, and also simple sensor input value and control output are programmable. Therefore, if the telecommunication is allowed, anybody can carry out IoT edge device with easy.


There are many types of the telecommuciation methods and chips such as Zigbee, ZWAVE, BLE, WiFi, LoRa, SigFox, NB-IoT, LET-CatX, so with the combination of this telecommunication chip with Arduino-grade MCU, we can manufacture the DIY or Industrial control module.


The problem is the security of telecommunication. Sensitive personal information detected in sensor and the control signals transmitted by the server can get to IoT gateway with safety using the open key system. However, when we communicate by normal gateway products and in the wireless section from IoT gateway to IoT Edge Device, it’s not easy to implement the security telecommunication in the final IoT Edge Device. Many users, of course, use the security section of the inner telecommunication chips, but they can’t look into the inner of the security and control it on their own, except the normal open sources.


DORCA-3 can protect the edge device by the simple method, such as a key management using asymmetric key, decryption and encryption communication using symmetric key and the user

authentication.


Arduino can implement encryption and telecommunication in two cases when using DORCA-3.

1. Arduino Key Open Mode ( use RSA )

2. Arduino Key Secrete Mode ( use ECDH )


==============================================================================

1. Arduino Key Open Mode ( use RSA ) : A system diagram

It’s a security telecommunication system using RSA and AES.

The advantage of the telecommunication system is that we can know what is the symmetric key  in Arduino. If the installed firmware of Arduino isn’t hacked, we can see the key in Arduino and the key is managed by it. Actually, it is not easy for the key to be stolen, because Arduino is not a system that supports RTOS . And if needed, when the server command the key to be regenerated, the key changes every time.


Case 1. RSA+AES

A key generation and process of decryption and encryption

1-01. Arduino produces 128/192/256 bit random numbers in TRNG block of DORCA-3


1-02. These random numbers are used as an AES symmetric key.


1-03. The generated random numbers are encrypted by RSA using 2048 public key in the are of DORCA-3’s OTP.


1-04. The encrypted data by the public key is transmitted to the server.


1-05. The transmitted key by the open key is decrypted with the private key in the server.


1-06. The encrypted data using the open key in the server is decrypted by OpenSSL.

    - Reference: AES Function call of OpenSSL


1-07. The decrypted key is coded by AES 256.

   - Reference: AES Function call of OpenSSL


1-08. In case of Encoding by AES 256 in the server, use openSSL to do decryption and encryption.


1-09. When you need regeneration of the key, then implenment 1~8 processes after ordering the Device to regenerated the key in the server.


1-10. When you add the TRNG signal, ---- is encrypted and decrypted to different data every time.



2. Arduino Key Secrete Mode ( use ECDH )

ECDHE + AES


Generation of the key and the process of encryption and decryption

The Security telecommunication system using ECDH and AES

The advantage of the telecommunication system is that Arduino MCU can’t know what is the encryption key in DORCA-3. When DORCA-3 and openSSL exchange random numbers, ECDHE Key is formed by asymmetric encryption. The encryption key is encrypted in Dorca by using the symmetric key, so it isn’t exposed in Arduino code.


2-01. Arduino produces 128/192/256 bit random numbers in TRNG block of Dorca-3


2-02. These random numbers are transmitted to the server.


2-03.  The server occurs the random numbers, and then put in Dorca-3 using Arduino. 


2-04. The key is generated in Dorca 3 using ECDH function.


2-05.  Apply to the AES key using the generated key.


2-06. The OpenSSL AND ECDHE key are generated using the random numbers generated in server and the random numbers of Arduino.

- Reference: OpenSSL and ECDHE Function call


2-07. The generated key is coded by AES 256.

- Reference: AES Function call of OpenSSL


2-08. In case of Encoding by AES 256 in the server, use openSSL to do decryption and encryption.


2-09 Command the IoT Edge Device to regenerate the key in the server, and then implenment 1~8 processes. to regenerated the key in the server.


2-10. When you use TRNG, data can be encrypted and decrypted by generating different ECDHE key each time.