用于非安全商用现货(COTS)装置的混淆密钥推衍的制作方法

文档序号:17816149发布日期:2019-06-05 21:42阅读:129来源:国知局
用于非安全商用现货(COTS)装置的混淆密钥推衍的制作方法

本申请总体涉及用于非安全商用现货(cots)装置的混淆密钥推衍。



背景技术:

对装置进行保护几乎总是需要使用可用作密钥或密钥材料的秘密值。大多数商用现货(cots)装置不具备在其中存储可用作密钥材料的秘密值的安全装置。



技术实现要素:

本发明的技术方案以易于部署的方式弥补了上述漏洞,而不会导致每装置固有物理不可克隆函数(puf)方面的巨大成本。从装置中提取易于所有者获得但对手难以猜测的易于访问装置固有值(例如,序列号),并将其与混淆密钥推衍函数一起使用以便产生装置固有密钥材料。然后,从该密钥材料推衍出的密钥可用于推衍证书私钥、秘密存储密钥或共享密钥。此外,因为密钥推衍函数源于混沌理论,所以如果在不同硬件上重新运行该函数,则推衍出的密钥很可能并不相同。本文的技术可以用于具有不需要专门(昂贵)的合规措施的安全前端和后端资产的云服务、用于保护基础设施资产的通用信息技术(it)、移动装置、平板计算机、游戏机、路由器、打印机等。

因此,装置包括一个或多个计算机存储器,该计算机存储器不是暂时性信号,并且包括可以由至少一个处理器执行以将至少一个装置专用序列号输入到混沌函数的指令。可执行指令以使用密钥推衍函数(kdf)处理混沌函数的输出以产生密钥材料m,并且使用密钥材料m和/或其推衍来加密信息。

在一些实施方案中,这些指令可执行以将与装置专用序列号链接的种子值输入到混沌函数。在实例中,可执行这些指令以将种子值连同混沌函数的输出一起输入到kdf。

在实例实施方案中,这些指令可执行以使用推衍kdf从密钥材料m中推衍出至少一个密钥。推衍kdf可以与产生密钥材料m的kdf相同,或者可以是不同的kdf。

混沌函数可以由k(xn)(1-(xn))给定,其中在实例实施方案中,k等于四。

在另一方面,一种方法包括使用混沌函数处理至少一个装置专用序列号以产生输出,并且使用混沌函数的输出来推衍至少一个加密密钥。

在另一方面,一种设备包括处理器和处理器可访问的存储器,该存储器具有可以由处理器执行以使用混沌函数来处理一个或多个装置专用序列号以产生输出的指令。这些指令可执行以使用混沌函数的输出来推衍一个或多个加密密钥。

参照附图可以最好地理解本申请的关于其结构和操作的细节,其中相同的附图标记表示相同的组件,并且其中:

附图简述

图1是包括根据本技术方案的实例的实例系统的框图;

图2是使用混沌函数的密钥推衍的示意图;且

图3是与图2相关的逻辑的流程图。

具体实施方式

本公开总体涉及包括诸如(但不限于)分布式计算机游戏网络的消费电子(ce)装置网络的各方面的计算机生态系统。本文的系统可以包括通过网络连接的服务器和客户端组件,使得数据可以在客户端和服务器组件之间交换。客户端组件可以包括一个或多个计算装置,包括诸如(但不限于)sonyplaystationtm和microsoftxboxtm的游戏机、便携式电视(例如,智能tv、互联网tv)、诸如膝上型计算机和平板计算机的便携式计算机以及包括智能电话和下文讨论的额外实例的其它移动装置。这些客户端装置可以在各种操作环境下操作。例如,作为实例,客户端计算机中的一些可以采用orbis或linux操作系统、来自microsoft的操作系统、或unix操作系统、或由applecomputer或google生产的操作系统。这些操作环境可用于执行一个或多个浏览程序,诸如由microsoft或google或mozilla开发的浏览器或者可以访问由下文讨论的互联网服务器托管网站的其它浏览器程序。此外,根据本技术方案的操作环境可以用于执行一个或多个计算机游戏程序。

服务器和/或网关可以包括执行指令的一个或多个处理器,该指令将服务器配置成通过诸如互联网的网络接收和传输数据。或者,客户端和服务器可以通过本地局域网或虚拟专用网络连接。服务器或控制器可以由诸如sonyplaystation(注册商标)、个人计算机等游戏机例示。

可以在客户端和服务器之间通过网络交换信息。为此,为了安全起见,服务器和/或客户端可以包括防火墙、负载平衡器、临时存储装置和代理服务器以及用于可靠性和安全性的其它网络基础设施。一个或多个服务器可以形成一种实施向网络成员提供诸如在线社交网站的安全社区的方法的设备。

如本文所使用,指令指用于在系统中处理信息的计算机实施步骤。指令可以在软件、固件或硬件中实施,并且包括由系统的组件承担的任何类型的程序化步骤。

处理器可以是任何常规的通用单芯片或多芯片处理器,其可以通过诸如地址线、数据线和控制线的各种线以及寄存器和移位寄存器的方式来执行逻辑。

本文通过流程图和用户界面描述的软件模块可以包括各种子程序、过程等。在不限制本公开的情况下,所述要由特定模块执行的逻辑可以被重新分配到其它软件模块中和/或在单个模块中一起组合和/或在共享库中获得。

本文所述的本技术方案可以被实施为硬件、软件、固件或其组合;因此,说明性组件、块、模块、电路和步骤根据其功能予以阐述。

除了上文所提之外,下文描述的逻辑块、模块和电路可以利用被设计来执行本文所述功能的通用处理器、数字信号处理器(dsp)、现场可编程门阵列(fpga)或诸如专用集成电路(asic)、离散栅极或晶体管逻辑、离散硬件组件的其它可编程逻辑装置或其任何组合来实施或执行。处理器可以由控制器或状态机器或计算装置的组合来实施。

当以软件来实施时,下文描述的功能和方法可以以诸如(但不限于)java、c#或c++的适当语言来进行编写,并且可以被存储在诸如以下计算机可读存储介质上或通过该计算机可读存储介质传输:随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)或其它光盘存储器,诸如数字通用光盘(dvd)、磁盘存储装置或包括可移动拇指驱动器的其它磁存储装置等。连接可以建立计算机可读介质。作为实例,这种连接可以包括硬连线电缆,包括光纤和同轴电线以及数字订户线(dsl)和双绞线。这种连接可以包括无线通信连接,包括红外和无线电连接。

包括在一个实施方案中的组件可以以任何适当的组合用于其它实施方案中。例如,本文所述和/或附图中描绘的各个组件中的任何组件可以与其它实施方案组合、互换或从其它实施方案中排除。

“具有a、b和c中的至少一个的系统”(同样地,“具有a、b或c中的至少一个的系统”和“具有a、b、c中的至少一个的系统”)包括具有单独的a、具有单独的b、具有单独的c、具有a和b、具有a和c、具有b和c、和/或具有a、b和c的系统等。

现具体参照图1,示出了实例系统10,该系统10可以包括上文提到的并根据本技术方案在下文进一步描述的一个或多个实例装置。包括在系统10中的实例装置中的第一个是诸如音频视频装置(avd)12的消费电子(ce)装置,诸如(但不限于)具有tv调谐器(相当于,控制tv的机顶盒)的互联网tv。然而,avd12或者可以是器具或家居用品,例如计算机化互联网冰箱、洗衣机或烘干机。avd12或者也可以是计算机化互联网(“智能”)电话、平板计算机、笔记本计算机、诸如例如计算机化互联网手表、计算机化互联网手环的可穿戴计算机化装置、其它计算机化互联网装置、计算机化互联网音乐播放器、计算机化互联网头戴式耳机、诸如可植入皮肤装置的计算机化互联网植入装置等。无论如何,应当理解的是,avd12被配置成采用本技术方案(例如,与其它ce装置通信以采用本技术方案、执行本文所述的逻辑以及执行本文所述的任何其它功能和/或操作)。

因此,为了采用这些技术方案,可以通过图1所示的一些或所有组件来建立avd12。例如,avd12可以包括一个或多个显示器14,显示器14可以由高清晰度或超高清“4k”或更高的平面屏幕来实施,并且可以支持触摸,以经由显示器上的触摸来接收用户输入信号。avd12可以包括用于根据本技术方案输出音频的一个或多个扬声器16,以及用于例如向avd12输入可听命令以控制avd12的诸如音频接收器/麦克风的至少一个额外输入装置18。实例avd12还可以包括一个或多个网络接口20,用于在一个或多个处理器24的控制下通过诸如互联网、wan、lan等至少一个网络22进行通信。因此,接口20可以是(但不限于)为无线计算机网络接口的实例的wi-fi收发器,例如但不限于网状网络收发器。应当理解的是,处理器24控制avd12以采用本技术方案,包括本文所述的avd12的其它元件,诸如控制显示器14以在该显示器14上呈现图像并从其中接收输入。此外,应当注意的是,网络接口20可以是例如有线或无线调制解调器或路由器,或者是其它适当的接口,诸如例如如上所述的无线电话收发器或wi-fi收发器等。

除了前述内容之外,avd12还可以包括诸如高清晰度多媒体接口(hdmi)端口或usb端口的一个或多个输入端口26,以物理地连接(例如,使用有线连接)到另一ce装置和/或耳机端口,以将耳机连接到avd12以通过耳机向用户呈现来自avd12的音频。例如,输入端口26可以经由有线或无线连接到音频视频内容的有线或卫星源26a。因此,源26a可以是例如单独的或集成的机顶盒或卫星接收器。或者,源26a可以是游戏机或光盘播放器,其包括出于频道分配的目的而被用户认为是其所中意的内容。当被实施为游戏机时,源26a可以包括下文关于ce装置44描述的组件中的一些或所有组件。

avd12可以进一步包括一个或多个计算机存储器28,诸如作为非暂时性信号的磁盘型存储装置或固态存储装置,在一些情况下,其在avd的机箱中体现为独立装置,或者体现为avd的机箱内接或外接的个人视频记录装置(pvr)或视频光盘播放器以回放av节目,或者体现为可移动存储器介质。同样在一些实施方案中,avd12可以包括位置或地点接收器,诸如(但不限于)移动电话接收器、gps接收器和/或高度计30,其被配置成例如从至少一个卫星或移动电话信号塔接收地理位置信息,并且将该信息提供给处理器24,并且/或者结合处理器24来确定avd12所设置的高度。然而,应当理解的是,可以根据本技术方案使用除了移动电话接收器、gps接收器和/或高度计之外的另一适当的位置接收器来例如确定avd12在例如所有三个维度中的位置。

继续描述avd12,在一些实施方案中,avd12可包括一个或多个照相机32,该照相机32可以是例如热成像照相机、诸如网络摄像头的数码照相机、和/或集成到avd12中并可以由处理器24控制以根据本技术方案收集图片/图像和/或视频的照相机。包括在avd12上的还有蓝牙收发器34和其它近场通信(nfc)元件36,用于分别使用蓝牙和/或nfc技术与其它装置通信。实例nfc元件可以是射频识别(rfid)元件。

此外,avd12可以包括向处理器24提供输入的一个或多个辅助传感器37(例如,诸如加速度计、陀螺仪、速度计的运动传感器,或磁传感器,红外(ir)传感器,光学传感器、速度和/或节奏传感器、姿势传感器(例如,用于感测姿势命令)等。)。avd12可以包括空中(over-the-air)tv广播端口38,用于接收向处理器24提供输入的oth电视广播。除了前述内容之外,应当注意的是,avd12还可以包括红外(ir)发射器和/或ir接收器和/或诸如ir数据通讯(irda)装置的ir收发器42。可以提供电池(未示出)为avd12供电。

仍然参照图1,除了avd12之外,系统10还可以包括一个或多个其它的ce装置类型。在一个实例中,第一ce装置44可以用于经由通过下文描述的服务器发送的命令来控制显示器,而第二ce装置46可以包括与第一ce装置44类似的组件,且因此将不再赘述。在所示的实例中,仅示出了两个ce装置44、46,应当理解的是,可以使用更少或更多的装置。如上所述,ce装置44/46和/或源26a可以由游戏机来实施。或者,ce装置44/46中的一个或多个可以由以商标googlechromecast、roku、amazonfiretv进行销售的装置来实施。

在所示的实例中,为了说明本技术方案,假设所有三个装置12、44、46都是例如家庭中的娱乐网络的成员,或者至少在诸如住宅的位置中彼此接近。然而,除非另有明确说明,否则本技术方案不限于由虚线48示出的特定位置。

实例非限制性第一ce装置44可以由上述装置中的任何一个来建立,例如便携式无线膝上型计算机或笔记本计算机或游戏控制器(也称为“控制台”),并因此可以具有下文描述的一个或多个组件。第二ce装置46可以由诸如蓝光播放器、游戏机等的视频光盘播放器来建立而没有限制。第一ce装置44可以是用于例如向avd12发出av播放和暂停命令的遥控器(rc),或者它可以是更复杂的装置,例如平板计算机、经由有线或无线链路与由第二ce装置46实施的游戏机通信并控制avd12上的视频游戏呈现的游戏控制器、个人计算机、无线电话等。

因此,第一ce装置44可以包括可支持触摸的一个或多个显示器50,以经由在显示器上的触摸来接收用户输入信号。第一ce装置44可以包括用于根据本技术方案输出音频的一个或多个扬声器52,以及用于例如向第一ce装置44输入可听命令以控制装置44的诸如音频接收器/麦克风的至少一个另外的输入装置54。实例第一ce装置44还可以包括一个或多个网络接口56,用于在一个或多个ce装置处理器58的控制下通过网络22进行通信。因此,接口56可以是(但不限于)wi-fi收发器,该wi-fi收发器是包括网状网络接口的无线计算机网络接口的实例。应当理解的是,处理器58控制第一ce装置44以采用本技术方案,包括本文所述的第一ce装置44的其它元件,诸如例如控制显示器50以在其上呈现图像并从其中接收输入。此外,应当注意的是,网络接口56可以是例如有线或无线调制解调器或路由器,或者是其它适当的接口,例如如上所述的无线电话收发器或wi-fi收发器等。

除了前述内容之外,第一ce装置44还可以包括诸如hdmi端口或usb端口的一个或多个输入端口60,以物理地连接(例如,使用有线连接)到另一ce装置和/或耳机端口,以将耳机连接到第一ce装置44,用以通过耳机向用户呈现来自第一ce装置44的音频。第一ce装置44可以进一步包括一个或多个有形计算机可读存储介质62,诸如磁盘型存储装置或固态存储装置。同样在一些实施方案中,第一ce装置44可以包括位置或地点接收器,诸如(但不限于)移动电话和/或gps接收器和/或高度计64,其被配置成例如使用三角测量从至少一个卫星和/或移动电话信号塔接收地理位置信息,并且将该信息提供给ce装置处理器58,并且/或者结合ce装置处理器58来确定第一ce装置44所设置的高度。然而,应当理解的是,可以根据本技术方案使用除了移动电话和/或gps接收器和/或高度计之外的另一适当的位置接收器来例如确定第一ce装置44在例如所有三个维度中的位置。

继续描述第一ce装置44,在一些实施方案中,第一ce装置44可以包括一个或多个照相机66,该照相机66可以是例如热成像照相机、诸如网络摄像头的数码照相机、和/或集成到第一ce装置44中并可以由ce装置处理器58控制以根据本技术方案收集图片/图像和/或视频的照相机。包括在第一ce装置44上的还有蓝牙收发器68和其它近场通信(nfc)元件70,用于分别使用蓝牙和/或nfc技术与其它装置通信。实例nfc元件可以是射频识别(rfid)元件。

此外,第一ce装置44可以包括向ce装置处理器58提供输入的一个或多个辅助传感器72(例如,诸如加速度计、陀螺仪、速度计的运动传感器,或磁传感器,红外(ir)传感器,光学传感器、速度和/或节奏传感器、姿势传感器(例如,用于感测姿势命令)等。)。第一ce装置44可以包括诸如以下的其它传感器:一个或多个气候传感器74(例如,气压计、湿度传感器、风传感器、光传感器、温度传感器等)和/或向ce装置处理器58提供输入的一个或多个生物识别传感器76。除了前述内容之外,在一些实施方案中应当注意的是,第一ce装置44还可以包括红外(ir)发射器和/或ir接收器和/或诸如ir数据通讯(irda)装置的ir收发器78。可以提供电池(未示出)以为第一ce装置44供电。ce装置44可以通过上述通信模式和相关组件中的任何一种与avd12通信。

第二ce装置46可以包括针对ce装置44示出的组件中的一些或所有组件。ce装置中的一个或两个都可以由一个或多个电池来供电。

现参考上述至少一个服务器80,该服务器80包括至少一个服务器处理器82、诸如磁盘型存储装置或固态存储装置的至少一个有形计算机可读存储介质84、以及至少一个网络接口86,在服务器处理器82的控制下,该网络接口86允许通过网络22与图1的其它装置通信,并且根据本技术方案确实可以促进服务器与客户端设备之间的通信。应当注意的是,网络接口86可以是例如有线或无线调制解调器或路由器、wi-fi收发器或其它适当的接口,例如无线电话收发器。通常,服务器80包括称为“刀锋”的多个计算机中的多个处理器。

因此,在一些实施方案中,服务器80可以是互联网服务器或整个服务器“场”,并且可以包括并执行“云”功能,使得在例如网络游戏应用的实例实施方案中系统10的装置可以经由服务器80访问“云”环境。或者,服务器80可以由与图1所示的或附近的其它装置在相同房间中的一个或多个游戏机或其它计算机来实施。

本文的方法可以被实施为由处理器、经适当配置的专用集成电路(asic)或现场可编程门阵列(fpga)模块、或本领域技术人员可以理解的任何其它适宜的方式执行的软件指令。在采用时,软件指令可以被实现在诸如cdrom或闪存驱动器的非暂时性装置中。可选地,软件代码指令可以被实现在诸如无线电或光学信号的暂时性布置中,或者经由从互联网下载来实现。

图2和图3示出了使用混沌函数为cots装置生成加密密钥的当前技术方案。在图2中,一个或多个装置专用序列号200与诸如伪随机数的优选高熵软件种子204一起输入到混沌函数202。序列号200可以包括例如装置媒体访问控制(mac)地址、装置中央处理单元(cpu)序列号、网络接口控制器(nic)序列号和装置主板序列号中的一个或多个。种子204和序列号200可以在输入到函数202之前链接成字符串x0=seed,d1,d2,……dn。

对相同的输入串x进行操作的混沌函数202被定义为混沌,这是因为如果在不同硬件上重新运行该函数,该函数可能由于装置之间舍入误差、舍入技术(例如,向上舍入、向下舍入、截断)等的差异而导致不同的结果。在一个实施方案中,xn+1=f(xn),其中f(xn)=k(xn)(1-(xn))。在特定实例中,k=4。

通过函数202在206中输出中间混淆值v=f(s,d1,d2,……,dn),并且该中间混淆值与种子204一起输入到密钥推衍函数(kdf)208。kdf208输出密钥材料210,也称为“m”(=kdf(v+s))。实例kdf包括(但不限于)nistsp800-108(http://csrc.nist.gov/publications/nistpubs/800-108/sp800-108.pdf)中的基于散列的kdf组。

然后,密钥材料210用于推衍一个或多个其它密钥,包括私钥、共享密钥、存储加密密钥。这些其它的密钥可以使用另一kdf从m中推衍,或者可以通过迭代kdf208中的计数器来推衍。

图3进一步示出了上述技术方案。在方框300处,将种子“s”和一个或多个装置专用序列号输入到混沌函数,该函数可以迭代多次,例如1000次,每次迭代将混沌函数中的f(xn)中“n”设置成n+1。也就是说,对于第一次迭代:

x1=f(x0)=k(x0)(1-(x0));对于第二次迭代,通过混沌函数对x1进行运算以产生x2,以此类推。

在完成迭代之后,在方框302中输出中间值v,并且在方框304中将该中间值v与种子“s”一起输入到kdf。在方框306中,kdf输出密钥材料m。如果仅使用单个密钥,则该密钥材料m可以建立所需的密钥,或者可以根据上文的公开在方框308中从该密钥材料m推衍出其它密钥。然后,在方框310中,利用来自方框308的适当密钥对指定信息进行加密,并且在方框312中以安全的加密的形式存储和/或传输该信息。在方框310中,解密通常需要对加密过程反向。或者,密钥材料或其推衍可以在创建该密钥材料或其推衍的装置内部使用,例如作为密码使用。

应当理解的是,虽然已经参考一些实例实施方案描述了本发明的技术方案,但是这些无意为限制性,并且可以使用各种替代布置来实施本文所要求保护的主题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1