Skip to main content
. 2020 Mar 31;20(7):1963. doi: 10.3390/s20071963
Algorithm 2 Multi-layered security model using PUF: Client is an existing User [2]
Objective:
  1. The seven layer cloud model consisting of FPGA clouds verifies the identity of a client FPGA (UA) who is requesting access.
  2. The cloud model provides application access for the genuine client (Ui).
Prerequisites:
  1. An n-bit input, 1-bit output XOR PUF P1 is reconfigured in all layers of the Cloud-FPGA. There exists a PUF for every authenticated user. PUF Pij represents the identity of the user i in the cloud layer j.
  2. A combined mathematical model Mi representing all the K PUFs in the cloud layers, resides with each user Ui.
  3. Cloud-FPGA and user Ui have agreed on a fixed encoding scheme E() and a decoding scheme D(.), such that for any binary string x,E(.) and D(.) are injective, X=E(x) and D(X)=x.
  4. Cloud-FPGA and user Ui have agreed on a shuffling scheme Y=S(X,rand), and S(Y,rand)=X where rand is a random number.

Input:

S, PCT, DBFW, DBMETA, DBVAULT, DBIPS, DBANTIMAL

  1. Tenant session: S

  2. Contents of session packets:PCT

  3. Contents of FW: DBFW

  4. Contents of TENANTMETA:DBMETA

  5. Contents of TENANTVAULT:DBVAULT

  6. Contents of IPS:DBIPS

  7. Contents of ANTIMALWARE:DBANTIMAL

    Note: DBj represents content DB of layer j

Output:

A value in variable S to show that the application access is granted (S=1) or denied (S=0).

Steps:
  • 1.
    Initialize V=1, E=1, Flag=0
  • 2.
    UB requests UA, for an introduction to access application A
  • 3.
    UA to MP: request introduction of UB to cloud layers Cj
  • 4.
    MP to UA: MP sends a random number rand and a set of challenges CHp consisting of q challenge bits each of length ‘n’.
  • 5.
    UA calculates the following:
    • RAmp,j=MA(CHp,j), p=1q, j=1K
    • RAm={RAmp,j, 1pq, 1jK
    • CAA=SE(RAm),rand
  • 6.
    UA to MP: certificate CAA
  • 7.
    foreach layer jdo
    • (a)
      Initialize Mem=0, Match=0
    • (b)
      If (E=1)
      • i.
        MP:RAmp,j=SD(CAA),rand
      • ii.
        MP to Cloud-Cj: Set of challenges CHp and RAmp,j
      • iii.
        Cloud-Ci calculates the following
        • RAfp,j=PA(CHp,j),p=1q,j=1K
        • NAj=(1-(p=1)q(RAmpRAfpq)
        • ifNAj0.99Mem=1
      • iv.
        if (PCTDBj, |DBj{DBFW,DBMETA,DBVAULT} AND PCTDBj, |DBj{DBIPS,DBANTIMAL} ); Match=1
      • v.
        if (Mem&&Match), E=1; proceed to next higher layer
      • vi.
        else Exit; set E=0, Flag=0
  • 8.
    ifV=1; Verified introducing client
    • (a)
      foreach layer jdo
      • i
        Cloud-FPGA, Cj initiates DPR and configures a new PUF PB,j, PUF PB,j represents the identity of the UB in the cloud layer j
      • ii
        Cj to MP PUF modeling parameters paramj
    • (b)
      MP generates a combined Mathematical model MB of all PUFs PB,j in the cloud layers
    • (c)
      MP generates obfuscated bitstreams of PUF mathematical model MB
    • (d)
      MP initiates remote dynamic partial reconfiguration of PUF MB in the dynamic partition of the client-FPGAUB
    • (e)
      Flag=1 and exit; follow protocol-1. UB is same as any other existing client.