-
Notifications
You must be signed in to change notification settings - Fork 454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open hardware-based and patent-free Physical Unclonable Function (PUF) #3064
Comments
|
using standard PC board, "Investigating SRAM PUFs in large CPUs and GPUs" with code listings: https://arxiv.org/pdf/1507.08514.pdf |
Note:2 main parts of PUF
Ri <- PUF(Ci) : a response Ri is generated when challenging a PUF with a challenge Ci
Two distance measures of PUFs
Type of PUFs based on design
Type of PUFs based on number CRPs
Property of PUF
Technique to reduce noise
Application
|
Extra readings:
|
We have various Raspberry Pi model B+ 1.2 hardware. This enables quick and dirty prototyping, possibly even using the Python language :-) |
First operational prototype! @hakhundov thnx for the help
The skeleton open source repo for dumping the raw uninitialized memory using SPI. Next steps:
|
Possibly focus on the unstable bit plots of your hardware (see related work with 1432 repeats in their experiment). |
Analysis result of 10 SRAMs 23LC1024:
Summary
|
Analysis result of 10 SRAMs 23K256:
Summary* 23K256 show more unreliable result compared to 23LC1024. For example, the error rate is higher than 23LC1024. |
Result of PUF trial using repetition code as ECCkey length: 128 bitkey: base file for comparison: ascii-coded binary file 171017B/1.c Algorithm for PUF using repetition code
Result:
|
@asajim is the 'difference' between the reconstructed key and the actual key? |
@hakhundov yes it is. |
@asajim roughly speaking, it seems that the noise in the subsequent PUF measurements is way too big from seeing the results. A 100% difference would mean that there are >= 31 errors in every codeword (rep(64) case). Hence the fractional hamming distance between the reference and subsequent measurement must be at least 0.5. This is just an unreliable PUF. Btw, I don't see this noise in the tables above (profiling). I might be wrong of course. |
@hakhundov I think I haven't explained my data clearly. One folder refers to a single chip with 10 measurements. Folder 171017A refers to chip A, and measurement was performed on Oct 17th, 2017. Different folders refer to different chips, but with the same type. If I understand correctly, '100% difference between two chips' means it is a correct PUF. In rep(64), the one that's not acceptable is when a different chip produce the same key (difference = 0%, e.g. 171017A produce the same key with the base file 171017B). In rep(16), only chip B that produce the same as the base file (measurement 1 on folder 171017B). It would also be unacceptable if PUF measurements on the same chip produce difference key. |
Trial of implementing BCH
|
PUF starts to become usable!
|
Result on 18 23LC1024 SRAMs
|
|
Progress:
|
Novel profiling methodology, published in 2017 :
|
Status:
|
Problem StatementImplement an open source key storage system using SRAM-PUF scheme, where the SRAM is general purpose SRAM available on the market. Steps:
Main contribution
Scheme for storing 7 bits key
|
Method for looking stable bits in 23LC1024:
|
Progress feedback:
|
Possible improvement:
Critical points:
privacy amplification: a process that allows two parties to distill a secret key from a common random variable about which an eavesdropper has partial information (cited from Generalized Privacy Amplification). in PUF that used for generating a key, privacy amplification usually done by applying a hash function on a chunk of SRAM bits |
Voltage level control from software? Great progress. Congrats. Can you do slow increase and fast turnon of voltage and effect on stability? Please make a list of potential experiments to run fir a week. |
Current experiment:
Next experiment:
Possible related authentication protocols: |
Status update:
ToDo: From weak PUF to strong PUF. Please write the first thesis chapter and 2-ish pages of measurement resutls. |
First thesis draft: |
ToDo: focus on strong authentication, state-of-the-art protocols, open source code, HMAC, Bitcoin ECC, Secp256k1, etc. |
Notes:
|
Introduction chapter storyline remarks:
Chapter 2 : "Introduction to Security"
Problem description chapter:
Security analysis: loss of PUF hardware, loss of password, loss of both, etc. General comments:
Typos:
|
Latest draft: |
|
we would like a fully operational PUF of your design and development environment in our lab. redo the Bitcoin experiment. |
Thesis draft: |
Please provide @qstokkink with 4 out of your 5 operational SRAM puf chips. Three Arduino + interface board plus sources to get it operational and profile each PUF bit. Allows us to do parallel profiling. Additional microSDcard for storage of helper data + adapter to interface with Arduino. |
|
Latest draft: |
sell your stuff even more, like this in abstract: |
Final thesis report: thesis.pdf Thesis repository : software-based-PUF
@synctext I think the issue title should be changed into "Open software-based and patent-free Physical Unclonable Function (PUF) " not "Open hardware-based and patent-free Physical Unclonable Function (PUF) " |
Congrats on your TUDelft master degree! Official thesis .pdf download repo: https://repository.tudelft.nl/islandora/object/uuid%3A4f879ecf-95d5-4482-8931-8c40abde0e79 |
What makes this patent free? |
@nymble Good point. We have not yet done a thorough prior work. This thesis is build upon early scientific papers and early work by Delft ourselves. The 2003 patents describe systems like "During an enrollment phase, Alice 16 issues a challenge C to source P 20 and receives a response A from source P 20". Our approach avoids this with "store this given private key generation seed". |
how the generated secret key and seed for the random number are stored inside the secure storage of sram? |
@Rahulsharma311 This is a stand-alone implementation for research purposes.
The secret key is generated from physical properties upon startup. As stated above, "the private key is storage becomes volatile by using PUF". There is no secure sram storage, the PUF is designed to be airgapped and challenge/response interfaced as an isolated component. In a decade this could become a standard component within a smartphone to achieve passport-grade digital identity. |
New master students always welcome. |
Hello, I am working on my thesis "MAchine learning attacks on DRAM PUF" as part of my thesis, am currently looking for a dataset If anyone has a DRAM PUF dataset it would be really helpful. |
interesting, machine learning attacks.. Lots of detailed data |
PUF technology is an emerging technology to store the essential part of a self-sovereign identity, the private key, in a tamper-proof manner. The private key is storage becomes volatile by using PUF technology [Patents].
Good intro:
Commercial product with SRAM PUF. Notes on how to use this feature
For TUDelft publication on PUF technology: "Modeling SRAM start-up behavior for physical unclonable functions". Lots more by Said Hamdioui plus Haji Akhundov. More Delft reports:
PUFs in general, SRAM PUFs in particular, can be used as a secure cryptographic key storage mechanism . Fig. 1 shows how such mechanism can be integrated to create a PUF based key storage system.
The popular 6Ts SRAM cell (see Fig. 2(a)) consists of two cross-coupled CMOS inverters formed by four transistors (Q 1 with Q5 and Q2 with Q6) and two pass transistors (Q3 and Q4). The pass transistors are used to access the cell for read and write operations. The bitline (BL), the compliment bitline (BLB) and the wordline (WL) are used to access the cell.
We simulate the start-up behavior of an SRAM cell using SPICE and BSIM4 65nm models. Process variation PDF for 65nm :
Boris Škorić from Eindhoven has published work in this field:
Ambient World via Physical Unclonable Functions
Open Source Sandia National Laboratories PUF Analysis Tool
Please find related PUF software and articles for next meeting.
The text was updated successfully, but these errors were encountered: