Skip to main content
. 2020 Mar 31;20(7):1963. doi: 10.3390/s20071963
Algorithm 1 Multi-layered security model using PUF: New client
Objective:
  • (a)
    The seven layer cloud model consisting of FPGA clouds verifies the identity of a new client FPGA (UB) who is requesting access.
  • (b)
    The cloud model provides application access for the genuine client (UB).
Prerequisites:
  • (a)
    New client ClientUB, requesting application access is known to an existing client UA as a genuine applicant.
  • (b)
    Cloud-FPGAs have built-in controllers to facilitate secure dynamic partial reconfiguration.
  • (c)
    Client-FPGA has built-in controllers to facilitate secure dynamic partial reconfiguration initiated by the cloud.
  • (d)
    The Cloud-FPGA fabric is divided into two parts, (a) static fabric and (b) dynamic fabric. Static fabric consists of hardware configurations which existed before deployment. The dynamic fabric of the Cloud-FPGA is dedicated to configure additional security primitives (mostly PUFs) for any genuine clients using secure dynamic partial reconfiguration.
  • (e)
    The client-FPGA fabric is divided into two parts, (a) static fabric and (b) dynamic fabric. Static fabric consists of hardware configurations which existed before deployment. The Client-FPGA has secure remote DPR controllers in the static partition facilitating configuration of PUF mathematical model in the dynamic fabric, via an obfuscated bitstream.

Input:PCT, DBFW, DBMETA, DBVAULT, DBIPS, DBANTIMAL of UserUA

  • (a)
    Tenant session: S
  • (b)
    Contents of session packets:PCT
  • (c)
    Contents of FW: DBFW
  • (d)
    Contents of TENANTMETA:DBMETA
  • (e)
    Contents of TENANTVAULT:DBVAULT
  • (f)
    Contents of IPS:DBIPS
  • (g)
    Contents of ANTIMALWARE:DBANTIMAL
    Note: DBj represents content DB of layer j

Output: A value in Flag to show a successful dynamic partial reconfiguration (Flag=1) or denied (Flag=0).

Steps:
  • 1.
    Initialize S=1, E=1
  • 2.
    Ui to management plane MP: request access to application A
  • 3.
    MP to Ui: MP sends a random number rand and a set of challenges CHp consisting of q challenge bits each of length ‘n’.
  • 4.
    Ui calculates the following:
    • Rimp,j=Mi(CHp,j), p=1q, j=1K
    • Rim={Rimp,j, 1pq, 1jK}
    • CAi = SE(Rim),rand
  • 5.
    Ui to MP: certificate CAi
  • 6.
    foreach layer jdo
    • (a)
      Initialize Mem=0, Match=0
    • (b)
      If (E=1)
      • (a)
        MP:Rimp,j=SD(CAi),rand
      • (b)
        MP to Cloud-Ci: Set of challenges CHp and Rimp,j
      • (c)
        Cloud-Cj calculates the following
        • Rifp,j=Pi(CHp,j),p=1q,j=1K
        • ifNij0.99Mem=1
      • (d)
        if (PCTDBj, |DBj{DBFW,DBMETA,DBVAULT} AND PCTDBj, |DBj{DBIPS,DBANTIMAL} ); Match=1
      • i.
        if (Mem&&Match), E=1; proceed to next higher layer
      • ii.
        else Exit; set E=0, S=0; DenyTenantAccess()
  • 7.
    ifS=1; AuthoriseTenantAccess()