Code Monkey home page Code Monkey logo

password-manager-puf-ring-oscillator's Introduction

Password-Manager-PUF-Ring-Oscillator

This project aims at using the Ring Oscillator as a Physical Unclonable Function (PUF) for the password management scheme.

Report

You can find the report published on Arxiv at this link.

Summary

The goal is to use the Physical behavior of a Ring Oscillator (RO) such as reistance and capacitance values to generate random frequencies. Later, these frequencies were used for the comparison to generate binary stream. The binary stream is given to a hash function to generate a hash value. In authentication, if the hash value is different from what registered before then it doesn't if the password is the same or not. Since, it means the device is different, it is not going to authenticate with that.

Design

The RO is implemented in both hardware and software (simulation). A Raspberry Pi is used to measure the frequuency of different channels and extract the exact value. Later, those values are given to a server(Laptop or PC) from the Raspberry Pi to generate the binary stream and the hash value. Also, the password management scheme is implemented in the Computer. The interface between the Computer and the Raspberry Pi is TCP/IP using CAT5/6 cable. The IP addresses are set manually in both R Pi and PC. This design is demonstrated here:

Alt text

Simulation

To analyze the RO, first, we developed that in a simulation environment (Proteus Environment) to import electronics components such as rasistrors, MUX, DE-MUX, Capacitors, Op-Amps, NAND gates, Inverters, etc. The simulation environment is Proteus Labcenter. It is possible to implement that in other simulators as well. The design is depicted in:

Alt text

Also, the file is available here at Design.

Hardware

To implement the RO on breadboard, we used different ressistors, capacitors, and ICs of 74HC04 and 74HC00 for NOT and NAND gates. The structure of this RO is displayere here:

Alt text

To read the frequency values from the hardware and compare it with the Raspberry Pi measurement, we used a logic analyzer for different channels. Here is the output of the logic analyzer displayed in computer via a USB interface:

Alt text

This logic analyzer is available on many websites such as Amazon: HiLetgo USB Logic Analyzer Device With EMI Ferrite Ring USB Cable 24MHz 8CH 24MHz 8 Channel UART IIC SPI Debug.

Code

Required packages for this projects are:

  • os
  • time
  • socket
  • RPi.GPIO
  • DataHash

Different codes are associated with project.

  • The Python file is used on Raspberry Pi to read the output of the hardware for different channel of frequencies. This file is called calculate.py.
  • The password management scheme is implemented in Matlab and called passwordMngmnt.m.
  • To generate the hash value, we used an available hash function from math works DataHash.m. However, a new version of this hash function is available on MathWorks.

GUI

The Graphical User Interface (GUI) is designed in Matlab for the user to test the password management scheme. The designed GUI is demonstrated here:

Alt text

The design file is called tutorialApp.mlapp.

Citation

If you find the code or the article useful, please cite our paper using this BibTeX:

@article{shamsoshoara2019ring,
  title={Ring oscillator and its application as physical unclonable function (puf) for password management},
  author={Shamsoshoara, Alireza},
  journal={arXiv preprint arXiv:1901.06733},
  year={2019}
}

password-manager-puf-ring-oscillator's People

Contributors

alirezashamsoshoara avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.