生成掩蔽数据的安全设备及其操作方法与流程

专利2022-05-09  71


相关申请的交叉引用

本申请要求于2020年1月30日在韩国知识产权局提交的韩国专利申请第10-2020-0011354号的优先权,将该韩国专利申请的全部公开内容通过引用合并于此。

本发明构思涉及用于通过使用物理不可克隆函数(physicallyunclonablefunction,“puf”)来生成密钥的安全设备以及使用该安全设备的方法。



背景技术:

近来,随着有线/无线通信技术和与智能设备相关的技术的迅速发展,对于构建用于安全地使用这些技术的安全系统的需求正在增加。在用于通信系统和智能设备的安全性的基本方法中,将实现为硬件逻辑而不是存储器的安全设备嵌入到系统/设备中。这样的方法是在首先驱动安全芯片然后驱动诸如操作系统(os)的软件时检查或认证恶意代码的存在的方法。近来,具有puf的安全技术引起了广泛的关注,并且当使用puf时,应该从根本上防止对重要密钥(例如,存储在安全设备中的认证密钥)的复制。



技术实现要素:

本发明构思提供一种安全设备,该安全设备基于物理不可克隆函数(puf)在生成密钥时通过使用掩蔽数据(maskingdata)来掩蔽密钥,并且公开了该安全设备的操作方法。本发明构思提供一种安全设备,其通过使用puf块来生成用于掩蔽密钥的掩蔽数据,并且公开了该安全设备的操作方法。

根据本发明构思的一方面,一种安全设备,包括:物理不可克隆函数(puf)电路,其包括输出随机密钥数据和掩蔽数据的多个puf单元;密钥生成器,其被配置为通过对随机密钥数据执行的后处理来生成密钥;和掩蔽模块,其被配置为通过掩蔽数据来掩蔽并存储密钥。随机密钥数据是从第一组一个或多个puf单元生成的,而掩蔽数据是从不同的第二组的一个或多个puf单元生成的。

根据本发明构思的另一方面,一种生成安全密钥的方法使用包括多个物理不可克隆函数(puf)单元的puf电路。该方法包括:通过使用一组第一puf单元来生成随机密钥数据,该一组第一puf单元包括puf电路中包括的至少一个第一puf单元;通过对随机密钥数据执行的后处理来生成密钥;通过使用掩蔽数据掩蔽密钥来生成掩蔽密钥;和将掩蔽密钥存储在密钥缓冲器中。

根据本发明构思的另一方面,一种安全设备,包括物理不可克隆函数(puf)块,其包括输出随机密钥数据和掩蔽数据的多个puf单元;有效性检测器,其被配置为确定多个puf单元的有效或无效,并基于确定的结果来生成有效性映射;密钥生成器,其被配置为通过对随机密钥数据执行的后处理来生成密钥;以及掩蔽模块,其被配置为通过使用掩蔽数据来掩蔽并存储密钥,其中,puf块被配置为基于有效性映射来生成掩蔽数据。

附图说明

从以下结合附图进行的详细描述,将更清楚地理解本发明构思的实施例,其中:

图1是示出根据实施例的安全设备的框图;

图2是示出根据实施例的安全设备的框图;

图3是示出根据实施例的安全设备的操作方法的流程图;

图4是示出根据实施例的掩蔽模块的图;

图5是示出根据实施例的安全设备的框图;

图6是示出根据实施例的安全设备的框图;

图7是示出根据实施例的安全设备的框图;

图8是示出根据实施例的安全设备的框图;

图9是示出根据实施例的有效映射的图;

图10是示出根据实施例的安全设备的框图;

图11是示出根据实施例的安全设备的框图;

图12是示出根据实施例的掩蔽模块的图;

图13a是示出根据实施例的掩蔽模块的图;

图13b是示出根据实施例的掩蔽模块的图;

图14是示出根据实施例的集成电路的框图;

图15a和15b是示出根据实施例的用于使用安全设备的环境的框图;和

图16是示出根据实施例的计算设备的框图。

具体实施方式

在下文中,将参考附图详细描述实施例。

图1是示出根据实施例的安全设备10的框图。

参考图1,安全设备10可以生成用于安全性的唯一密钥key,并且可以通过使用生成的密钥key执行诸如加密/解密的安全性操作。安全设备10可以包括物理不可克隆函数(puf)电路100和后处理器200。

安全设备10可以在注册模式和使用模式中的一个下进行操作。在注册模式下,安全设备10在由puf电路100生成的随机数据rd的片段(piece)中确定有效的随机数据,并注册从所确定的有效的随机数据生成的密钥。在使用模式下,基于主机的请求,安全设备10从由puf电路100生成的随机数据rd生成密钥,并将生成的密钥输出到主机。在实施例中,可以在制造安全设备10时执行注册模式一次,而可以多次执行使用模式以通过使用安全设备10来生成密钥。生成密钥(例如,非掩蔽密钥)的密钥在本文中将被替代地称为随机密钥数据rd。

puf电路100可以包括puf块110。puf块110可以生成随机数据rd的片段。为此,puf块110可以包括多个puf源电路。每个puf源电路可以基于puf生成具有唯一值的信号。这里,可以将puf源电路称为puf单元(cell)。puf可以表示基于硬件的固有特性来提供与硬件对应的唯一值的函数。例如,即使在通过相同的过程制造诸如半导体芯片的多件硬件的情况下,多件硬件中的每一个也可能不在物理上完全匹配,并且在多件硬件中可能会发生微小的变化(variation)。可以基于该变化来提取每件硬件的唯一值,并且提取的唯一值可以用于需要安全性的应用(例如,安全通信、安全数据处理、用户识别、固件更新等)。这里,随机数据或掩蔽数据可以表示基于上述变化生成的一组唯一值或一个唯一值。可以以本领域中已知的方式在设计或制造过程期间指定用于puf安全性的puf单元(例如,puf源电路)的完备集(completeset)。

在一些实施例中,puf块110中包括的puf源电路可以具有生成唯一值的位信号(bitsignal)的任意结构。puf源电路是非限制性实施例,并且可以具有基于存储在静态随机存取存储器(sram)单元中的值的sram型puf结构、具有基于频率变化的环形振荡器结构、具有基于泄漏电流的基于泄露的puf结构或具有仲裁器(arbiter)puf,其中,信号的路径被任意地确定。此外,puf源电路可以基于逻辑门的阈值电平之间的差来生成唯一值的位信号。

如所公开技术领域中的传统,在功能块、单元(unit)和/或模块方面描述并在附图中示出了特征和实施例。本领域技术人员将理解,以下在某些情况下被描述为“检测器”或“生成器”的这些块、单元和/或模块由本文描述的特定组件实现和/或还由电子电路(或光学回路)实现,该电子电路(或光学回路)诸如逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等,可以使用基于半导体的制造技术或其他制造技术来形成。在由微处理器或类似物实现块、单元和/或模块的情况下,可以使用软件(例如,微代码)对它们进行编程以执行本文讨论的各种功能,并且可以可选地由固件和/或软件来对其进行驱动。替代地,每个块、单元和/或模块可以由专用硬件来实现,或者被实现为执行某些功能的专用硬件和执行其他功能的处理器(例如,一个或多个编程的微处理器和相关电路)的组合。此外,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可以在物理上被分成两个或更多个交互和分立的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可以在物理上组合成更复杂的块、单元和/或模块。

在实施例中,puf块110可以包括基于晶体管阈值电压的puf单元、基于仲裁器的puf单元(例如,前馈puf单元、仲裁器puf单元并联设置的xorpuf单元、轻量级puf单元等)、基于环形振荡器的puf单元、基于存储器的puf单元(例如,srampuf单元、锁存器puf单元、闪存puf单元、忆阻器(memistor)puf单元等)以及基于激光束或热变化的可重配置puf单元中的至少一种。

puf块110可以基于由多个puf源电路生成的信号来生成随机数据rd,因此,该随机数据rd可以不同于由包括在具有与安全设备10的结构相同的结构的另一安全设备中的puf块生成的随机数据。在一些实施例中,puf块110可以生成n位的随机数据rd(其中,n为1或更大的整数)。例如,puf块110可以包括数量为n的puf源电路,并且一个puf源电路可以生成与1位对应的随机数据rd。

根据实施例,puf块110可以通过使用puf块110中包括的多个puf单元来生成掩蔽数据md,并且可以将生成的掩蔽数据md输出到后处理器200。如下所述,当掩蔽密钥key时,可以使用该掩蔽数据md。

后处理器200包括密钥生成器210和掩蔽模块220。密钥生成器210可以接收随机数据rd并通过对随机数据rd的多个片段执行后处理来生成密钥key。为了安全性,密钥key可以是由安全设备10唯一地生成的加密密钥。因为确保了密钥的完整性,所以可以将密钥key用作用于加密和解密的密钥或诸如验证码的密钥。

密钥生成器210可以确定随机数据rd是否有效,并且可以通过仅使用有效的随机数据来生成密钥key。在实施例中,后处理器200可以对密钥key执行纠错操作。

掩蔽模块220从puf电路100接收掩蔽数据md,并通过使用掩蔽数据md来掩蔽密钥key。密钥key可以存储在后处理器200中包括的缓冲器中,用于将密钥key输出到外部设备(例如,主机)。但是,通过解封装缓冲器可能会被暴露给攻击者,因此,可能会发生密钥被暴露给攻击者的不利影响。根据实施例,掩蔽模块220可以在将密钥key存储在缓冲器中之前将通过基于掩蔽数据md的掩蔽生成的掩蔽密钥存储在缓冲器中。

根据实施例,如果没有找出掩蔽数据md,则不可能恢复密钥key,因此,掩蔽密钥可以安全地保护密钥key免受攻击者的攻击。而且,根据实施例,掩蔽数据md可以使用由puf块110随机生成的数据,因此,生成密钥key的操作可以总是使用随机改变的掩蔽数据md,从而更安全地保护密钥key免受攻击者的攻击。

尽管未示出,但是后处理器200还可以包括用于对密钥key执行纠错的纠错模块。在实施例中,纠错模块可以通过使用纠错码来对密钥key执行纠错。纠错码可以包括低密度奇偶校验(ldpc)码、bose、chaudhuri、hocquenghem(bch)码、turbo码、reed-solomon码、卷积码、递归系统码(rsc)、网格编码调制(trellis-codedmodulation,tcm)、块编码调制(bcm)和编码调制(例如多数表决)中的至少一种。

在图1中,puf电路100和后处理器200被示为单独的元件,但这是实施例,并且puf电路100和后处理器200可被实现为一个元件。在实施例中,puf电路100可以被实现为包括puf块110的硬件元件,并且后处理器200可以被实现为硬件或由控制puf块110的控制器执行的软件。

图2是示出根据实施例的安全设备的框图。与图1的描述相同或相似的描述被省略。

参考图2,puf块110可以通过使用多个puf单元中的至少一些来生成随机数据rd,并且可以将生成的随机数据rd输出到密钥生成器210。puf块110可以通过使用多个puf单元中的至少一些来生成掩蔽数据md,并且可以将生成的掩蔽数据md输出到掩蔽模块220。

密钥生成器210可以通过对随机数据rd执行的后处理来生成密钥key。在实施例中,密钥生成器210可以在随机数据rd中选择有效数据,并且可以通过仅使用有效数据来生成低密钥(lowkey)。另外,密钥生成器210可以通过对低密钥执行纠错来生成密钥key。密钥生成器210可以将生成的密钥key输出到掩蔽模块220。

掩蔽模块220可以通过使用掩蔽数据md掩蔽密钥key来生成掩蔽密钥。在实施例中,掩蔽模块220可以通过对掩蔽数据md和密钥key执行逻辑操作来生成掩蔽密钥,并且在实施例中,掩蔽模块220可以通过对掩蔽数据md和密钥key执行xor操作来生成掩蔽密钥。

掩蔽模块220包括密钥缓冲器222。密钥缓冲器222可以包括易失性存储器,例如锁存器、寄存器、静态随机存取存储器(sram)或动态随机存取存储器(dram)。

掩蔽模块220将掩蔽密钥存储在密钥缓冲器222中。掩蔽密钥可以具有与密钥key的数据数组(array)不同的数据数组,因此,尽管攻击者会检查密钥缓冲器222,但是密钥key可以在没有掩蔽数据md的情况下从掩蔽密钥恢复。因此,密钥key的安全性可以增加。

掩蔽模块220可以通过使用掩蔽数据md将存储在密钥缓冲器222中的掩蔽密钥恢复为密钥key,并且可以将恢复的密钥key输出到安全设备10的外部。

图3是示出根据实施例的安全设备的操作方法的流程图。

参考图2和图3,在操作s110中,安全设备10通过使用puf块110中包括的至少一个第一puf单元来生成随机数据rd,并且在操作s120中,安全设备10通过对随机数据rd执行后处理来生成密钥key。在实施例中,安全设备10可以从随机数据rd中选择有效数据,并且可以对随机数据rd执行纠错以生成密钥key。

在操作s130中,安全设备10通过使用puf块110中包括的至少一个第二puf单元来生成掩蔽数据md。在实施例中,至少一个第二puf单元可以与至少一个第一puf单元不同。安全设备10可以通过使用生成的掩蔽数据md来掩蔽密钥key。在实施例中,安全设备10可以通过对掩蔽数据md和密钥key执行xor操作来生成掩蔽密钥。

在操作s150中,安全设备10可以将掩蔽密钥存储在密钥缓冲器222中。在操作s160中,安全设备10可以通过使用掩蔽数据md将存储在密钥缓冲器222中的掩蔽密钥恢复为密钥key,并且可以输出恢复的密钥key。在实施例中,安全设备10可以通过对掩蔽密钥和掩蔽数据md执行xor操作来生成密钥key。

图4是示出根据实施例的掩蔽模块220的图。与图2的描述相同或相似的描述被省略。

参考图4,掩蔽模块220可以包括掩蔽设备ml(例如,掩蔽单元或电路)、密钥缓冲器222和恢复设备rl(例如,恢复单元或电路)。掩蔽设备ml和恢复设备rl可以是例如逻辑电路。在图4中,示出了使用xor逻辑作为掩蔽设备ml和恢复设备rl的实施例,但是本发明构思不限于此,本发明构思可以应用于提供用于掩蔽和恢复密钥key的另一设备的实施例。

掩蔽模块220可以接收“1101”作为密钥key,并且可以接收“0100”作为掩蔽数据md。掩蔽设备ml可以对密钥key和掩蔽数据md执行xor操作以生成掩蔽密钥mk“1001”。掩蔽设备ml可以将掩蔽密钥mk存储在密钥缓冲器222中。

根据实施例,掩蔽模块220可以通过使用由掩蔽模块220从puf单元接收的掩蔽数据md来掩蔽密钥key,因此,即使当攻击者攻击密钥缓冲器222以获得掩蔽密钥mk时,掩蔽模块220也可以安全地保护密钥key,从而增加了安全设备10的安全性。

恢复设备rl可以从密钥缓冲器222接收掩蔽密钥mk,并且可以从puf单元接收掩蔽数据md。恢复设备rl可以通过对掩蔽密钥mk和掩蔽数据md执行xor操作来恢复密钥key“1101”,并且可以将恢复的密钥输出到安全设备10的外部。

在图4中,示出了密钥key和掩蔽数据md中的每一个包括具有4位的数据的实施例,但这是为了便于描述,并且密钥key和掩蔽数据md中的每一个可以包括多于4位的数据。另外,在图4中,示出了密钥key和掩蔽数据md包括相同数量的位的实施例,但这仅是实施例。在其他实施例中,掩蔽数据md的位数可以大于或小于密钥key的位数。

图5是示出根据实施例的安全设备10a的框图。与图2的描述相同或相似的描述被省略。

参考图5,安全设备10a可以包括puf块110a、密钥生成器210a和掩蔽模块220a,并且puf块110a可以包括第一区域ar1和第二区域ar2,第一区域ar1包括多个第一puf单元,第二区域ar2包括多个第二puf单元。在图5中,为了方便起见,第一区域ar1和第二区域ar2以行为单位布置,但这仅是一施例,并且本实施例也可以应用于puf块110a被任意划分的特定区域以及其他区域。

puf块110a可以通过使用第一区域arl中包括的多个第一puf单元来生成随机数据rd。另外,puf块110a可以通过使用第二区域ar2中包括的多个第二puf单元来生成掩蔽数据md。在实施例中,第一区域ar1中包括的第一puf单元可以均是强单元,也称为稳定单元,其中,尽管多次使用,输出数据也不会改变,并且第二区域ar2中包括的第二puf单元可以均是弱单元,也称为不稳定单元,其中,输出数据会改变。可以将第一区域ar1中包括的第一puf单元都称为主单元,并且将第二区域ar2中包括的第二puf单元都称为冗余单元。

如上所述,密钥生成器210a可以通过使用在第一区域ar1中生成的随机数据rd来生成密钥key,并且掩蔽模块220a可以通过使用在第二区域ar2中生成的掩蔽数据md来掩蔽密钥key,并且可以通过使用掩蔽数据md来恢复密钥key,以输出恢复的密钥。

根据实施例的安全设备10a可以以区域为单位划分一个puf块110a中包括的多个puf单元,并且可以在不同区域中生成随机数据rd和掩蔽数据md。另外,安全设备10a可以通过使用弱单元来生成掩蔽数据md,在弱单元中,当输入相同的输入数据时(例如,由于温度或电压差异)输出数据可能随时间改变。由于密钥key的唯一性,随机数据rd可能需要随时间保持不变,但是由于掩蔽数据md仅在用于生成掩蔽密钥并临时存储它的时间被使用,因此用于生成掩蔽数据md的puf单元可以基于时间生成不同的数据片段,同时仍然可以准确地用于掩蔽功能。因此,根据实施例的安全设备10b可以使用puf单元,其不适合在生成初始(例如,未掩蔽)密钥、在生成掩蔽数据md时使用随机数据rd,并且因此可以无需单独资源即可执行掩蔽操作来形成掩蔽密钥。

图6是示出根据实施例的安全设备10b的框图。与图2的描述相同或相似的描述被省略。

参考图6,安全设备10b可以包括puf块110b、密钥生成器210b和掩蔽模块220b,并且puf块110b可以包括任意的第一区域arl。puf块110b可以通过使用第一区域ar1中包括的多个第一puf单元来生成随机数据rd。在实施例中,第一puf单元可以均是强单元,在强单元中,尽管多次使用,数据也不会改变。

puf块110b可以通过使用可以被包括在包括第一区域arl的puf块110b的任何区域ear中的多个puf单元来生成掩蔽数据md。

如上所述,密钥生成器210b可以通过使用在第一区域arl中生成的随机数据rd来生成密钥key,并且掩蔽模块220b可以通过使用从任何区域ear生成的掩蔽数据md来掩蔽密钥key,并且可以通过使用掩蔽数据md来恢复密钥key,以输出恢复的密钥。

如上所述,用于生成掩蔽数据md的puf单元可以基于时间来生成不同的数据片段,因此,根据实施例的安全设备10b可以从puf块110b中包括的任意puf单元生成掩蔽数据md,而不管该单元是强单元还是弱单元。

图7是示出根据实施例的安全设备10c的框图。与图2的描述相同或相似的描述被省略。

参考图7,安全设备10c可以包括puf块110c、密钥生成器210c和掩蔽模块220c。puf块110c可以从外部(例如,主机)接收区域选择信号ass。puf块110c可以通过使用基于区域选择信号ass而选择的选择区域sar中包括的多个puf单元来生成掩蔽数据md。

如上所述,密钥生成器210c可以通过使用在puf块110c的特定区域中生成的随机数据rd来生成密钥key,并且掩蔽模块220c可以通过使用在选择区域sar中生成的掩蔽数据md来掩蔽密钥key,且可以通过使用掩蔽数据md来恢复密钥key,以输出恢复的密钥。

当puf110c基于主机的区域选择信号ass改变选择区域sar时,用于生成掩蔽数据md的puf单元可以被任意改变。根据实施例,由于用于生成掩蔽数据md的puf单元被任意改变,所以可以增强掩蔽数据md的随机性。

图8是示出根据实施例的安全设备10d的框图。与图2的描述相同或相似的描述被省略。

参考图8,安全设备10d可以包括puf块110d、有效性检测器120d、密钥生成器210d和掩蔽模块220d。有效性检测器120d可以从puf块110d接收随机数据rd,并且可以检测随机数据rd的有效性以生成与多个puf单元中的每一个对应的有效性信号vs。随机数据可以用于生成可用作认证密钥的密码,并且在这种情况下,该密码可以具有其值不基于周围环境改变的时不变特性。有效性检测器120d可以确定数字随机数据的时不变特性,并且可以基于确定的结果生成多个有效性信号。有效性检测器可以包括被配置为进行该确定的硬件、固件和/或软件。

例如,在一个实施例中,有效性检测器120d可以基于在不同时间从puf块110d中包括的puf单元输出的随机数据rd的片段是否相同来生成有效性信号vs。在另一实施例中,有效性检测器120d可以基于在不同的外部条件(例如,温度、压力、湿度等)下从puf块110d中包括的puf单元输出的随机数据rd的片段是否相同来生成有效性信号vs。

当有效性信号vs是表示有效(validity)的第一值(例如,“1”)时,这可以表示对应的puf单元总是输出恒定值,并且在这里,可以将恒定值的输出称为稳定。当有效性信号vs是表示无效的第二值(例如,“0”)时,这可以表示对应的puf单元不总是输出恒定值,并且在这里,非恒定值的输出可以称为不稳定。

puf块110d可以基于有效性信号vs来生成并存储有效性映射(validitymap)vm。有效性映射vm可以包括关于从每个puf单元生成的信号是否稳定的信息。puf块110d可以基于有效性映射vm来生成随机数据rd和掩蔽数据md。

在实施例中,puf块110d可以从稳定的puf单元(即,有效性信号vs为“1”的puf单元)生成随机数据rd,并且可以从不稳定的puf单元(即,有效性信号vs为“0”的puf单元)生成掩蔽数据md。在实施例中,puf块110d可以从稳定的puf单元生成随机数据rd,并且可以从稳定或不稳定的puf单元生成掩蔽数据md。

在实施例中,puf块110d可以在注册过程(registrationprocess)中生成有效性映射vm,然后,可以停用有效性检测器120d。puf块110d可以存储有效性映射vm,并且可以通过使用存储的有效性映射vm来执行密钥生成操作。在图8中,有效性映射vm被示出为存储在puf块110d中,但这仅是实施例。在其他实施例中,有效性映射vm可以存储在设置在安全设备10d内部或外部的存储设备中。根据上文,可以包括硬件、软件和固件并且包括puf块的puf电路被配置为访问由有效性检测器120d生成的有效性映射vm,以从稳定的puf单元生成随机密钥数据,并基于有效性映射从不稳定的puf单元生成掩蔽数据。

图9是示出根据实施例的有效性映射的图。

参考图8和图9,有效性映射vm可以包括关于puf单元的有效性的信息和标识puf单元的指示符。在实施例中,第一puf单元c1的有效性位可以是“1”,因此,第一puf单元c1可以是稳定的。此外,第二puf单元c2和第五puf单元c5中的每一个的有效性位可以是“0”,因此,第二puf单元c2和第五puf单元c5可以是不稳定的。另外,第三puf单元c3和第四puf单元c4中的每一个的有效性位可以是“1”,因此,第三puf单元c3和第四puf单元c4可以是稳定的。

在实施例中,puf块110d可以从稳定的puf单元生成随机数据rd,并且可以从不稳定的puf单元生成掩蔽数据md。例如,puf块110d可以通过使用第一puf单元c1、第三puf单元c3和第四puf单元c4中的一组一个或多个单元来生成随机数据rd,并且可以通过使用第二puf单元c2和第五puf单元c5中的一组一个或多个单元来生成掩蔽数据md。

当攻击者预测掩蔽数据md时,攻击者可以随后通过使用掩蔽数据md来恢复掩蔽数据,从而获得密钥key。根据实施例,从不稳定的puf单元生成掩蔽数据md,并且每当生成密钥key时,掩蔽数据md可以变化。因此,攻击者可能发现难以预测掩蔽数据md,并且密钥key的安全性可以增加。

图10是示出根据实施例的安全设备10d的框图。与图8的描述相同或相似的描述被省略。

参考图10,安全设备10d可以包括puf块110d、密钥生成器210d和掩蔽模块220d。puf块110d可以通过使用有效性映射vm来确定稳定单元sc和不稳定单元uc。

在实施例中,puf块110d通过使用稳定单元sc中的一组一个或多个单元来生成随机数据rd,并且通过使用不稳定单元uc中的一组一个或多个单元来生成掩蔽数据md。

在另一实施例中,puf块110d可以通过使用稳定单元sc中的一组一个或多个单元来生成随机数据rd,并且可以通过使用稳定单元sc和不稳定单元uc的组合中的一组一个或多个单元来生成掩蔽数据md。

如上所述,密钥生成器210d可以通过使用在稳定单元sc中生成的随机数据rd来生成密钥key,并且掩蔽模块220d可以通过使用在不稳定单元sc中生成的掩蔽数据md来掩蔽密钥key,并且可以通过使用掩蔽数据md来恢复密钥key,以输出恢复的密钥。

图11是示出根据实施例的安全设备10e的框图。与图2的描述相同或相似的描述被省略。

参考图11,安全设备10e可以包括puf块110e、附加的puf块130e、密钥生成器210e和掩蔽模块220e。附加的puf块130e可以包括多个puf单元,并且可以与puf块110e物理分离。附加的puf块130e可以从附加的puf块130e中包括的多个puf单元生成掩蔽数据md,并且可以将生成的掩蔽数据md输出到掩蔽模块220e。例如,附加的puf块130e可以是用于生成掩蔽数据md的专用puf块。

如上所述,密钥生成器210e可以通过使用在puf块110e中生成的随机数据rd来生成密钥key,并且掩蔽模块220e可以通过使用在puf块110e中生成的掩蔽数据md来掩蔽密钥key,且可以通过使用掩蔽数据md来恢复密钥key,以输出恢复的密钥。

根据实施例的安全设备10e可以包括附加的puf块130e,其独立于用于生成随机数据rd的puf块110e专有地使用掩蔽数据md,因此,安全设备10e可以生成掩蔽数据md而不管生成随机数据rd。

图12是示出根据实施例的掩蔽模块220f的图。与图4的描述相同或相似的描述被省略。

参考图12,掩蔽模块220f可以包括掩蔽设备ml、密钥缓冲器222f、恢复设备rl和掩蔽缓冲器224f。掩蔽模块220f可以接收“1101”作为密钥key,并且可以接收“0100”作为掩蔽数据md。掩蔽模块220f可以将接收的掩蔽数据md存储在掩蔽缓冲器224f中。在实施例中,可以通过各种安全因素来保护掩蔽缓冲器224f免受攻击者的攻击。

掩蔽设备ml可以对密钥key和存储在掩蔽缓冲器224f中的掩蔽数据md执行xor操作,以生成掩蔽密钥mk“1001”。掩蔽设备ml可以将掩蔽密钥mk存储在密钥缓冲器222f中。

恢复设备rl可以从密钥缓冲器222f接收掩蔽密钥mk,并且可以从掩蔽缓冲器224f接收掩蔽数据md。恢复设备rl可以通过对掩蔽密钥mk和掩蔽数据md执行xor操作来恢复密钥key“1101”,并且可以将恢复的密钥输出到安全设备10f的外部。

根据实施例,存储在掩蔽缓冲器224f中的掩蔽数据md可以用于执行掩蔽和执行恢复,因此,即使没有两次从puf块接收掩蔽数据md,也可以执行掩蔽操作。例如,可以将掩蔽数据md存储在掩蔽缓冲器224f中较长的时间段,并且该掩蔽数据md可以用于掩蔽不同密钥的随机密钥数据rl。

图13a是示出根据实施例的掩蔽模块220g的图。与图4的描述相同或相似的描述被省略。

参考图13a,掩蔽模块220g可包括掩蔽设备ml、密钥缓冲器222g和恢复设备rl。掩蔽模块220g可以接收“1101”作为密钥key,并且可以接收“01”作为掩蔽数据md。掩蔽模块220g可以将预设位pb与掩蔽数据md组合以生成具有与密钥key的位数相同的位数的新的掩蔽数据md’。

在实施例中,掩蔽模块220g可以预定预设位pb。在另一实施例中,掩蔽模块220g可以从外部(例如,主机)接收预设位pb。

掩蔽设备ml可以对密钥key和新的掩蔽数据md’执行xor操作,以生成掩蔽密钥mk“1001”。掩蔽设备ml可以将掩蔽密钥mk存储在密钥缓冲器222g中。

恢复设备rl可以从密钥缓冲器222g接收掩蔽密钥mk、对掩蔽密钥mk和新的掩蔽数据md’执行xor操作以恢复密钥key“1101”并且将恢复的密钥输出到安全设备10g的外部。

根据实施例,掩蔽模块220g可以从puf块接收具有比密钥key的位数少的位数的掩蔽数据md,并且可以通过使用接收的掩蔽数据md来执行掩蔽操作,并且在这种情况下,掩蔽模块220g可以执行掩蔽操作,而不管掩蔽数据md的位数如何(例如,无论接收的掩蔽数据md是否具有比密钥key小的位数)。

图13b是示出根据实施例的掩蔽模块220h的图。与图4的描述相同或相似的描述被省略。

参考图13b,掩蔽模块220h可以包括掩蔽设备ml、密钥缓冲器222f和恢复设备rl。掩蔽模块220h可以接收“1101”作为密钥key,并且可以接收“010011”作为掩蔽数据md。掩蔽模块220h可以从掩蔽数据md中任意删除至少一位,以生成具有与密钥key的位数相同的位数的新的掩蔽数据md’。

在实施例中,掩蔽模块220h可以任意地确定用于生成新的掩蔽数据md’而被删除的位。在另一实施例中,掩蔽模块220h可以预先确定用于生成新的掩蔽数据md’而被删除的位的序列。

掩蔽设备ml可以对密钥key和新的掩蔽数据md’执行xor操作以生成掩蔽密钥mk“1001”。掩蔽设备ml可以将掩蔽密钥mk存储在密钥缓冲器222h中。

恢复设备rl可以从密钥缓冲器222h接收掩蔽密钥mk、对掩蔽密钥mk和新的掩蔽数据md’执行xor操作以恢复密钥key“1101”并且将恢复的密钥输出到安全设备10h的外部。

根据实施例,掩蔽模块220h可以从puf块接收具有比密钥key的位数大的位数的掩蔽数据md,并且可以通过使用接收的掩蔽数据md来执行掩蔽操作,并且在这种情况下,掩蔽模块220g可以执行掩蔽操作,而不管掩蔽数据md的位数如何(例如,无论接收的掩蔽数据md是否具有比密钥key大的位数)。

图14是示出根据实施例的安全设备10i的框图。与图1至图13的描述相同或相似的描述被省略。

参考图14,安全设备10i可以包括用于执行基于尝试-认证方案的puf和其他功能的功能块。例如,安全设备10i可以是片上系统(soc),并且可以进一步包括处理器40i以及puf电路100i和后处理器200i。处理器40i可以包括用于执行一系列指令的任意处理单元,此外,可以包括现场可编程门阵列(fpga)、硬件加速器等。在实施例中,处理器40i可以将用于控制puf电路100i和后处理器200i的各种控制信号输出到puf电路100i和后处理器200i。

处理器40i可以通过通信信道ch与另一设备通信并且可以发送密钥key。通信信道ch可以包括有线信道和/或无线信道。

图15a和15b是示出根据实施例的用于使用安全设备的环境的框图。具体地,图15a示出在注册过程中使用集成电路的环境,而图15b示出在使用过程中使用集成电路的环境。

参考图15a,由主机(host)(例如,集成电路ic1至icm(其中m为1或更大的整数)的制造商)操作的计算系统20j可以与集成电路(例如,第一至第m集成电路)ic1至icm中的每一个通信。例如,计算系统20j可以控制第一集成电路ic1以生成有效性映射,并且可以将生成的有效性映射存储在第一集成电路ic1中。在实施例中,集成电路ic1至icm中的每一个可以基于以上参考图1至13描述的方法在注册模式下进行操作。每个集成电路可以例如在单独的芯片上,例如,作为单芯片或多芯片半导体封装、存储器模块或其他电子设备的一部分。

参考图15b,计算系统20k可以通过网络30与多个设备10_1至10_m通信。计算系统20k可以表示用于基于加密通过网络30与设备10_1至10_m通信的任意系统。网络30可以包括任意网络,并且在非限制性环境中,网络30可以包括蜂窝网络、局域网(lan)、无线lan(wlan)等。另外,计算系统20k和设备10_1至10_m可以通过有线和/或无线通信彼此通信。设备10_1至10_m可以是例如移动电话、膝上型计算机、台式计算机或包括集成电路的其他个人电子设备。

设备10_1至10_m可以基于在注册过程中生成的有效性映射和帮助者数据(helperdata),通过网络30向计算系统20k提供密钥,并且计算系统20k可以通过使用密钥来执行加密以与设备10_1至10_m进行通信。在实施例中,设备10_1至10_m中包括的集成电路ic1至icm中的每一个可以基于以上参考图1至13描述的方法在使用模式下进行操作。以上关于图15a和15b描述的设备(例如,集成电路ic1至icm、芯片、半导体封装、存储器模块以及设备10_1至10_m)可以在本文被描述为电子设备。关于以上各种实施例描述的安全设备可以被包括在这些电子设备中的一个或多个中。

图16是示出根据实施例的计算设备3000的框图。具体地,图16示出了包括以上参考图1至图14描述的安全设备之一的计算设备。

参考图16,计算设备3000包括处理器3100、工作存储器3200、puf设备3300、加密处理器(“加密处理器(cryptoprocessor)”)3400、非易失性存储器(nvm)接口3500、nvm3600和用户接口3700。

处理器3100控制计算设备3000的总体操作。处理器3100(中央处理单元(cpu))可以执行各种算术操作。例如,处理器3100可以包括一个或多个处理器核。

工作存储器3200可以与处理器3100交换数据。工作存储器3200可以临时存储用于计算设备3000的操作的数据。例如,工作存储器3200可以包括诸如dram或sram的高速存储器。

puf设备3300可以是以上参考图1至图14描述的puf电路100。puf设备3300可以生成安全性所需的密钥。puf设备3300可以被实现为硬件、软件或固件。加密处理器3400可以通过使用从puf设备3300输出的密钥来执行加密操作和解密操作。

nvm接口3500可以基于处理器3100、puf设备3300或加密处理器3400的控制与nvm3600交换数据。nvm3600可以存储用于不管电源如何而进行维护所需的数据。在实施例中,nvm3600可以存储以上参考图1至图14描述的有效性映射。

用户接口3700基于处理器3100的控制在用户和计算设备3000之间进行通信。用户接口3700可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器等的输入接口。此外,用户接口3700可以包括诸如液晶显示(lcd)装置、发光二极管(led)显示装置、有机led(oled)显示装置、有源矩阵oled(amoled)显示装置、扬声器、马达等的输出接口。

总线3800提供计算设备3000的元件之间的通信路径。计算设备3000的元件可以基于总线格式在它们之间发送和接收数据。在实施例中,总线格式可以包括通用串行总线(usb)、小型计算机系统接口(scsi)、外围组件互连快速(pcie)、高级技术附件(ata)、并行ata(pata)、串行ata(sata),串行连接scsi(sas)、集成驱动电子设备(ide)等。

虽然已经参考本发明构思的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。


技术特征:

1.一种安全设备,包括:

物理不可克隆函数(puf)电路,所述物理不可克隆函数电路包括输出随机密钥数据和掩蔽数据的多个puf单元;

密钥生成器,所述密钥生成器被配置为通过对所述随机密钥数据执行的后处理来生成密钥;和

掩蔽模块,所述掩蔽模块被配置为通过使用所述掩蔽数据来掩蔽并存储所述密钥;

其中,所述随机密钥数据是从第一组一个或多个puf单元生成的,而所述掩蔽数据是从不同的第二组一个或多个puf单元生成的。

2.根据权利要求1所述的安全设备,其中,所述puf电路包括第一区域和第二区域,所述第一区域包括多个第一puf单元,所述第二区域包括多个第二puf单元并且不同于所述第一区域,

其中,所述随机密钥数据是从作为所述多个第一puf单元的一部分的所述第一组一个或多个puf单元生成的,并且

其中,所述掩蔽数据是从作为所述多个第二puf单元的一部分的所述第二组一个或多个puf单元生成的。

3.根据权利要求1所述的安全设备,其中,所述puf电路包括第一区域和第二区域,所述第一区域包括多个第一puf单元,所述第二区域包括多个第二puf单元并且不同于所述第一区域,

其中,所述随机密钥数据是从作为所述多个第一puf单元的一部分的所述第一组一个或多个puf单元生成的,并且

其中,所述掩蔽数据是从一起形成所述第二组一个或多个puf单元的所述多个第一puf单元中的至少一些和所述多个第二puf单元中的至少一些生成的。

4.根据权利要求1所述的安全设备,还包括有效性检测器,所述有效性检测器被配置为确定所述多个puf单元的有效或无效,并生成确定结果作为有效性映射。

5.根据权利要求4所述的安全设备,其中,所述puf电路被配置为访问由所述有效性检测器生成的所述有效性映射、基于所述有效性映射从稳定的puf单元生成所述随机密钥数据并从不稳定的puf单元生成所述掩蔽数据。

6.根据权利要求4所述的安全设备,其中,所述puf电路被配置为访问由所述有效性检测器生成的所述有效性映射、基于所述有效性映射从稳定的puf单元生成所述随机密钥数据并从所述多个puf中的至少一些生成所述掩蔽数据。

7.根据权利要求1所述的安全设备,其中,所述puf电路被配置为接收区域选择信号并从所述多个puf单元中的包括在基于所述区域选择信号而被选择的区域中的puf单元生成所述掩蔽数据。

8.根据权利要求1所述的安全设备,其中:

所述掩蔽模块包括:

掩蔽电路,所述掩蔽电路被配置为从所述密钥生成器接收所述密钥,并从所述密钥和所述掩蔽数据生成掩蔽密钥;

密钥缓冲器,所述密钥缓冲器被配置为存储所述掩蔽密钥;和

恢复电路,所述恢复电路被配置为通过使用所述掩蔽数据将所述掩蔽密钥恢复为所述密钥。

9.根据权利要求8所述的安全设备,其中:

所述掩蔽电路被配置为通过对所述密钥和所述掩蔽数据执行的xor操作,生成所述掩蔽密钥;并且

所述恢复电路被配置为通过对所述掩蔽密钥和所述掩蔽数据执行的xor操作,恢复所述密钥。

10.根据权利要求1所述的安全设备,其中,所述掩蔽模块被配置为通过将所述掩蔽数据与预设位组合来生成新的掩蔽数据,并且通过使用所述新的掩蔽数据来掩蔽所述密钥。

11.根据权利要求1所述的安全设备,其中,所述掩蔽模块被配置为通过删除所述掩蔽数据的至少一些位来生成新的掩蔽数据,并且通过使用所述新的掩蔽数据来掩蔽所述密钥。

12.根据权利要求1所述的安全设备,其中,所述安全设备包括在包括一个或多个集成电路的电子设备中。

13.一种通过使用包括多个puf单元的物理不可克隆函数(puf)电路来生成安全密钥的方法,所述方法包括:

通过使用一组第一puf单元来生成随机密钥数据,所述一组第一puf单元包括所述puf电路中包括的至少一个第一puf单元;

通过对所述随机密钥数据执行的后处理来生成密钥;

通过使用一组第二puf单元来生成掩蔽数据,所述一组第二puf单元包括所述puf电路中包括的至少一个第二puf单元;

通过使用所述掩蔽数据掩蔽所述密钥来生成掩蔽密钥;和

将所述掩蔽密钥存储在密钥缓冲器中。

14.根据权利要求13所述的方法,其中,所述至少一个第一puf单元包括在所述puf电路的第一区域中,并且所述至少一个第二puf单元包括在所述puf电路的与所述第一区域不同的第二区域中。

15.根据权利要求13所述的方法,其中,所述至少一个第一puf单元包括在所述puf电路的第一区域中,并且所述至少一个第二puf单元包括在所述puf电路的第二区域中,并且

所述第一区域包括在所述第二区域中。

16.根据权利要求13所述的方法,还包括:

确定所述puf电路中包括的多个puf单元的有效或无效;和

生成确定结果作为有效性映射。

17.根据权利要求16所述的方法,其中,所述至少一个第一puf单元包括被确定为反映在所述有效性映射中的稳定单元的单元,并且所述至少一个第二puf单元包括被确定为反映在所述有效性映射中的不稳定单元的单元。

18.根据权利要求13所述的方法,还包括:

通过对所述密钥和所述掩蔽数据执行的xor操作来生成所述掩蔽密钥;和

通过对所述掩蔽数据和所述掩蔽密钥执行的xor操作来恢复所述密钥。

19.根据权利要求13所述的方法,其中,所述掩蔽数据的生成包括:

将所述掩蔽数据与预设位组合;和

输出基于组合而生成的数据作为所述掩蔽数据。

20.一种安全设备,包括:

物理不可克隆函数(puf)块,所述物理不可克隆函数块包括输出随机密钥数据和掩蔽数据的多个puf单元;

有效性检测器,所述有效性检测器被配置为确定所述多个puf单元的有效或无效,并基于确定的结果来生成有效性映射;

密钥生成器,所述密钥生成器被配置为通过对所述随机密钥数据执行的后处理来生成密钥;和

掩蔽模块,所述掩蔽模块被配置为通过使用所述掩蔽数据来掩蔽并存储所述密钥,

其中,所述puf块被配置为基于所述有效性映射来生成所述掩蔽数据。

技术总结
提供了一种安全设备及其操作方法,该安全设备及其操作方法基于物理不可克隆函数(PUF)生成用于掩蔽密钥的掩蔽数据。该安全设备包括:PUF电路,其包括输出随机密钥数据和掩蔽数据的多个PUF单元;密钥生成器,被配置为通过对随机密钥数据执行的后处理来生成密钥;以及掩蔽模块,被配置为通过使用掩蔽数据来掩蔽和存储密钥,其中,随机密钥数据和掩蔽数据是由不同的PUF单元生成的。

技术研发人员:安庆门;李容基;金容秀
受保护的技术使用者:三星电子株式会社
技术研发日:2021.01.20
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-8431.html

最新回复(0)