一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

密码密钥管理的制作方法

2022-07-10 20:11:27 来源:中国专利 TAG:

密码密钥管理
1.相关申请的交叉引用
2.本专利申请要求2019年11月18日提交的申请号为62/936,836的美国临时申请的优先权,并通过引用将其全部内容并入本文。本专利申请还要求于2020年2月24日提交的申请号为16/798,491的美国申请的优先权,并通过引用将其全部内容并入本文。
3.背景
4.对组织和个人来说,凭证管理都是一项挑战。组织和个人在使用和保护密码、密码密钥和其他数据保护机制方面遇到了巨大困难。正如读者可能理解的那样,凭证很容易丢失、遗忘、被盗或意外破坏,从而危及我们敏感/个人数据的安全和价值。
5.传统的凭证管理技术存在问题。通常只有一个授权个人负责处理敏感数据,从安全角度来看,该人员因此成为单个故障点。单个授权个人可能只是忘记了凭证(例如解密密码),从而可能导致加密数据永远丢失。即使在多个授权个人(如企业或其他组织)被授予敏感数据的访问权限和管理责任的情况下,他们之间通常仍共享单个解密密码,从而导致更大的安全风险。此外,当任何一名授权个人离开组织(无论是因终止、退休或死亡)时,组织很难访问和/或保留访问敏感数据的凭证的所有权。
6.还有更多的问题出现。即使个人或企业组织实施了真正的最佳做法(如冷存储数据访问和管理),加密和/或解密信息仍需要定期更改,并且必须保留多个备份副本。实际上,在企业环境中,多个安全位置需要多个副本,使用一次性地址/密钥/密码,并在加密/再加密后对每个地方的当前版本控制进行适当管理。在执行管理私钥/密码检索和使用的数据安全政策方面也存在挑战,确保任何个人(甚至ceo)都不能单独检索敏感数据。
附图说明
7.当参考附图阅读以下详细描述时,理解示例性实施例的特征、方面和优点,其中:
8.图1-13是根据示例性实施例的用于保护电子数据的多用户凭证机制的简化图示;
9.图14-15是根据示例性实施例的操作环境的更详细说明;
10.图16-22是根据示例性实施例的说明加密操作的屏幕截图;
11.图23-25是说明根据示例性实施例的保险库密钥的创建的屏幕截图;
12.图31-34是根据示例性实施例的说明解密操作的屏幕截图;
13.图35是说明根据示例性实施例的电子数据加密方法或算法的流程图;
14.图36是根据示例性实施例的用于解密加密数据的方法或算法的流程图;
15.图37说明了根据示例性实施例的生物识别(biometric)加密;
16.图38-43是根据示例性实施例的说明菜单配置的附加屏幕截图;和
17.图44-45说明了根据示例性实施例的附加操作环境。
具体实施方式
18.下面将参考附图更全面地描述示例性实施例。然而,示例性实施例可以以许多不同的形式体现,并且不应解释为限于本文所述的实施例。提供这些实施例使得本公开将是
彻底和完整的,并且将向本领域的普通技术人员充分传达示例性实施例。此外,本文中列举实施例的所有陈述以及其具体示例旨在涵盖其结构和功能的等效物。此外,此类等效物包括当前已知的等效物以及未来开发的等效物(即,执行相同功能的任何开发元件,无论其结构如何)。
19.因此,例如,本领域的普通技术人员将认识到,图、示意图、插图等代表了说明示例性实施例的概念视图或过程。图中所示的各种元件的功能可以通过使用专用硬件以及能够执行相关软件的硬件来提供。本领域的普通技术人员进一步理解,本文描述的示例性硬件、软件、过程、方法和/或操作系统是为了说明目的,因此,并不打算局限于任何特定的指定制造商。
20.如本文所用,单数形式“一(a)”、“一(an)”和“所述(the)”也包括复数形式,除非另有明确说明。将进一步理解,当在本说明书中使用术语“包括(includes)”、“包含(comprises)”、“包括(including)”和/或“包括(comprising)”时,规定了所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件的存在或添加,和/或它们的组合。应当理解,当一个元件称为“连接”或“联接”到另一个元件时,它可以直接连接或联接到另一个元件,或者可以存在中间元件。此外,本文中使用的“连接”或“联接”可包括无线连接或联接。如本文所用,术语“和/或”包括一个或多个相关列出物品的任何和所有组合。
21.还应理解,尽管本文中可以使用术语第一、第二等来描述各种元件,但这些元件不应受到这些术语的限制。这些术语仅用于区分一种元件和另一种元件。例如,第一设备可以称为第二设备,并且类似地,第二设备可以称为第一设备,而不偏离本发明的教导。
22.图1-13是根据示例性实施例的用于保护电子数据24的多用户凭证机制的简化图示。设备20执行软件应用22以加密电子数据24。尽管设备20可以是任何计算机、服务器、笔记本电脑、平板电脑或其他处理器控制的设备,但大多数读者都熟悉移动计算。因此图1将设备20示为移动智能手机26。智能手机26具有硬件处理器28,其执行本地存储在硬件存储设备30中的软件应用(或“应用(app)”)22。软件应用22可以是预加载的,或者可以从互联网(例如苹果应用商店、谷歌游戏、任何网站或数字分发平台)下载。当智能手机26的用户希望执行加密时,用户打开或启动软件应用22。当智能手机26执行软件应用22时,软件应用22使智能手机26经由电容式触摸屏显示设备34(或任何其他显示技术)显示图形用户界面(或“gui”)32。因此,用户可以进行电容性输入,以触觉方式选择或请求加密操作36。然后,软件应用22(经由图形用户界面32)呈现一串或一系列提示,以从多个用户或与多个用户相关联的用户电容性地输入多个身份凭证38。一旦软件应用22接收到多个身份凭证38,软件应用22就会导致或指示智能手机26基于与多个用户相关联的身份凭证38创建加密保险库密钥40。一旦创建了保险库密钥40,智能手机26就会使用保险库密钥40对电子数据24进行加密。
23.企业示例有助于解释保险库密钥40。假设一家企业希望对其电子数据24进行加密,以采取安全防范措施。电子数据24可以是员工个人记录(可能包含社会安全号码和其他个人识别信息)、数字图像、商业秘密、客户名单、安全代码和密码,以及法律/会计/财务信息。无论电子数据24是什么,假设企业指派一组特定的用户(例如,高管/经理/员工)来保护公司的电子数据24。因此,企业可以以代表身份授权特定用户组使用其身份凭证38加密公司的电子数据24。因此,企业授权整数n名高管/经理/员工作为授权个人42,使用其个人身
份凭证38加密公司的电子数据24。当智能手机26执行软件应用22时,软件应用22导致或指示智能手机26生成图形用户界面32,用于电容性地输入每个授权个人的身份凭证38。虽然软件应用可以接受代表面部识别扫描、指纹扫描和语音/音频识别的生物识别电子数据,但大多数读者都熟悉密码和密码短语。因此,示例性实施例可能要求n个授权个人42中的每个输入、录入或键入她/他各自的密码/密码短语44(可能通过触摸屏显示设备34、按键、键盘或其他输入设备)。
24.图2说明了组织预防措施。尽管n授权个人42有权加密公司的电子数据24,但组织和人员会发生变化。也就是说,随着时间的推移,高管/经理/员工因解雇、退休或死亡而来来往往。因此,即使公司可能会指定n名(大于n=2)授权个人42对公司的电子数据24进行加密,公司的安全程序可以针对人员变动进行面向未来的解密。因此,公司可仅允许n个授权个人42中的子集或子组n
min
(如附图标记48所示)进行解密。换句话说,所有当前n个授权个人42可能需要输入其相应的n个身份凭证38(例如,密码/密码短语44),以加密公司的电子数据24。然而,解密操作46(后面的段落将解释)可能只需要授权个人42中较小的最小数量1≤n
min
≤n来输入其相应的n
min
(如附图标记48所示)身份凭证38。
25.另一个例子很有帮助。假设该公司授权三(3)名管理人员(例如首席执行官、首席运营官和首席技术官)对其电子数据24进行加密。因此,软件应用22可能要求三(3)名管理人员输入其相应的三(3)个身份凭证38。然而,由于三(3)名管理人员中的任何一人可能会离开公司,公司可能会允许人数较少、最小数量n
min
48的管理人员解密。如图2所示,当软件应用22指示移动智能手机26或硬件处理器28生成用于显示的图形用户界面32时,图形用户界面32还可以提示和/或具有用于选择最小数量n
min
48的图形控件。在本示例中,由于只有三(3)名管理人员授权为n名授权个人42,因此可能只需要两(2)名或更少的管理人员输入相应的n
min
48身份凭证38进行解密。之后,如果三(3)名管理人员中的任何一(1)人不再被授权或可用,则电子数据24仍可以在不具备所有三(3)名身份凭证38的情况下解密。相反,执行解密操作46只需要两(2)个身份凭证38。智能手机26的用户因此可以导航触摸屏显示设备38,并电容性地输入n
min
48的她/他的选择,其中n
min
=n-1或n-n,其中n是授权个人42的任意整数。软件应用22或硬件处理器28接收代表n
min
48的用户的选择的电容性输入或信号,并使用该选择来生成保险库密钥40。
26.图3进一步说明了根据示例性实施例的保险库密钥40。因此,保险库密钥40可用于生成至少一个加密密钥,该密钥是从n个身份凭证38(例如,n个密码/密码短语44)创建的。然而,由于软件应用22配置为仅需要身份凭证38中最小数量的n
min
48进行解密,所以可以使用秘密共享算法50和密钥导出函数(或“kdf”)52生成保险库密钥40。软件应用22调用并应用秘密共享算法50,以根据子集或子组n
min
48生成所有n个密码/密码短语44中的至少一个共享。软件应用22还可以调用密钥导出函数52,以从n个密码/密码短语44的至少一个共享中导出保险库密钥40。存在已知的秘密共享算法和密钥导出函数,并且示例性实施例可以使用任何秘密共享算法和密钥导出函数来创建保险库密钥40。一旦生成保险库密钥40,保险库密钥40的电子表示可以存储在硬件存储设备30中以供使用和稍后检索。
27.高速缓存存储器(cache memory)可能是目标。例如,软件应用22可以指示硬件处理器28将保险库密钥40存储在硬件存储设备30的处理器高速缓存存储器部分中。硬件处理器28可以具有集成/嵌入式l1、l2和l3 sram/dram高速缓存存储器。处理器高速缓冲存储器
通常比系统/主存储器小得多,因此硬件处理器28可以将保险库密钥40作为经常需要的数据和/或指令之一存储在处理器高速缓冲存储器中。由于处理器高速缓存存储器在物理上更接近硬件处理器28的处理核心,因此硬件处理器28能够快速检索、获取或命中保险库密钥40。由于保险库密钥40优选地存储在处理器高速缓存存储器中,因此可以避免高速缓存缺失。硬件处理器28不需要经由速度慢得多的总线从系统/主存储器请求和写入数据块。缓存缺失意味着从系统/主存储器获取保险库密钥40的时间和/或周期上的缓存延迟。在等待从系统/主存储器获取数据时,硬件处理器28不需要处于空闲或暂停状态。由于保险库密钥40优选地存储在处理器高速缓存存储器中,因此减少了存储器访问时间,并且硬件处理器28能够基于保险库密钥40更快地执行加密和解密操作。
28.可以使用任何秘密共享方案。读者可能熟悉shamir的秘密共享算法(shamir’s secret sharing algorithm),这是一种众所周知且极其复杂的密码算法。shamir的秘密共享算法非常复杂,只有计算机(如移动智能手机26和/或硬件处理器28)能够计算这些共享。密钥导出函数52是另一个极其复杂的算法,它需要计算机(例如移动智能手机26和/或硬件处理器28)来导出保险库密钥40。因此,示例性实施例可以将n个身份凭证38(例如,n个密码/密码短语44)划分为独特的部分、碎片(shards)或共享,其中每个单独的共享不同于其他共享。因为n个身份凭证38可以分割成多个份额,所以在执行解密之前,必须知道并输入身份凭证38的最小数量n
min
48。如果某人或某台计算机拥有、存储或输入的碎片少于所需数量(例如,最小数量n
min
48),则此人或计算机完全无法了解原始碎片信息。然而,存在许多用于分发秘密的秘密共享或分割方案和算法,并且无论任何特定方案或算法如何,都可以应用示例性实施例。
29.图4说明了根据示例性实施例的保险库密钥40的分发。因为保险库密钥40是本地存储的(可能在处理器高速缓存存储器中),所以可以快速检索保险库密钥40。保险库密钥40还可以通过总线发送,以供显示设备(例如触摸屏显示设备34)显示和/或供纸质打印机物理输出或打印。保险库密钥40还可以通过总线发送到网络接口,用于通过通信网络进行有线、无线远程通信。例如,设备20可以处理保险库密匙40以进行显示(可能通过触摸屏显示设备34)。智能手机26可以输出保险库密钥40,以便在纸上进行物理打印。虽然可以使用任何媒体、手段或形式显示/打印保险库密钥40,但大多数读者都理解保险库密钥40可以作为任何输出(例如,qr码54、条形码56、字母数字文本58、图像和/或任何其他电子或物理表示)显示/打印。由于保险库密钥40以电子方式存储在硬件存储器设备30(例如处理器高速缓存存储器或系统/主存储器)中,保险库密钥40还可以被检索且通过通信网络60通信到任何网络地址或目的地址(例如,互联网协议地址)和/或任何设备/方/用户。因此,保险库密钥40可以通过任何电子消息(例如,互联网协议、电子邮件、sms/mms文本、即时)有线/无线地传输到任何设备62(例如与其他n个授权个人42相关联的任何智能手机)。换句话说,保险库密钥40可以从智能手机26分发,并与任何或所有n个授权个人42共享。由于保险库密钥40可以以电子方式存储和通信,保险库密钥40还可以通过通信网络60发送到与远程服务器64相关联的任何网络地址或目的地址(例如,互联网协议地址),以进行存档存储。简单地说,保险库密钥40可以在现场和/或场外进行物理打印和物理存储,以实现离线保护。保险库密钥40可以附加地或可选地以电子方式传输和远程存储以供在线存档。
30.图5说明了根据示例性实施例的电子数据24的加密。一旦创建了保险库密钥40,软
件应用22随后可以生成电子数据24的加密版本70。软件应用22导致或指示硬件处理器28执行操作,例如获取保险库密钥40的电子表示。例如,软件应用22可以指示或促使硬件处理器28从智能手机26的硬件存储设备30(例如处理器高速缓存存储器或系统/主存储器)检索保险库密钥40。可选地,在执行加密操作36之前,软件应用22可能需要保险库密钥40作为电容输入。例如,软件应用22可提示用户选择存储保险库密钥40或与之相关联的存储器位置(分层文件夹/文件)。然而,软件应用22可提示用户实际出示保险库密钥40(例如通过扫描qr代码54、扫描条形码56或捕获代表保险库密钥40的数字图像)。一旦软件应用22获得保险库密钥40,软件应用22可选择性地要求n个授权个人42中的一些或全部输入其各自的身份凭证28(例如其密码/密码短语44)。例如,因为软件应用22配置为仅需要身份凭证38的子集或子组n
min
48。也就是说,授权个人42中的最小数量n
min
≤n可能需要电容性地输入其相应的n
min
48身份凭证38。然后,软件应用22可以激活或调用加密算法72。加密算法72使用保险库密钥40作为加密参数。加密算法72可以是对称的或非对称的,并且可以使用保险库密钥40作为密钥对中的一个密钥。因此,加密算法72可以使用保险库密钥40对电子数据24进行加密,但是解密操作46需要不同的密钥(可能是解密密钥74)(后面段落将解释)。
31.加密操作36可以使用aes-256(cbc模式)对称加密算法,该算法长期以来受到安全专业人士和政府的信任。即使某些流氓实体(rogue entity)获得了对备份数据的访问权(例如加密版本70),如果没有保险库密钥40、解密密钥74和/或身份凭证38的最小数量n
min
48,流氓实体也绝对无法了解加密信息。加密操作36还可以使用scrypt算法(scrypt algorithm)从n或n
min
密码/密码短语中的任何一个或多个导出加密密钥。scrypt算法是一种众所周知的慢速散列算法,使得攻击者完全不可能通过蛮力发现/找到解密密钥74。
32.图6-7还说明了电子数据24的加密。在软件应用22生成电子数据24的加密版本70之后,加密版本70可以本地存储在智能手机26的硬件存储设备30中。例如,电子数据24的加密版本70可以存储到处理器高速缓存存储器中,以便将来更快地访问。然而,如果加密版本70的字节大小超过处理器高速缓存存储器的内存字节容量,则加密版本70的部分或全部将传输或写入系统/主存储器。因此,可以检索、显示、物理打印和/或传送加密版本70。例如,可以将加密版本70处理为显示和/或物理打印,作为qr码76、条形码78、字母数字文本80、图像和/或任何其他电子或物理表示。因为加密版本70以电子方式存储在硬件存储设备30中,所以加密版本70也可以检索并存储到本地/外围/可移动存储设备82(例如usb闪存(或“拇指”)驱动器84)以进行离线存储。然而,如图7所示,还可以检索加密版本70,并通过通信网络60将其传送到任何网络地址或目的地址(例如,互联网协议地址)和/或任何设备/方/用户。因此,加密版本70可以经由任何电子消息(例如,互联网协议、电子邮件、sms/mms文本、即时)有线/无线地传输到任何设备62(例如与其他n个授权个人42相关联的任何智能手机)。换句话说,加密版本70可以从智能手机26分发,并与n个授权个人42中的任何或所有人共享。因为加密版本70可以电子地存储和通信,所以加密版本70也可以经由通信网络60发送到与远程服务器64相关联的任何网络地址或目的地址(例如,因特网协议地址),以进行存档存储。简单地说,加密版本70可以物理打印并物理存储在现场和/或非现场以进行离线保护。加密版本70可以附加地或可选地以电子方式传输和远程存储以供在线存档。
33.图8说明了加密版本70的存储。在软件应用22生成电子数据24的加密版本70之后,软件应用22可以指示硬件处理器28将加密版本70存储到硬件存储设备30(处理器高速缓存
存储器和/或系统/主存储器)。例如,加密版本70可以与电子数据24分开存储,与身份凭证38分开存储,和/或与保险库密钥70分开存储。也就是说,即使硬件存储设备30可以本地存储电子数据24、身份凭证38、保险库密钥40和加密版本70,数据或信息24、38、40和70也可以存储在单独的分层文件结构和/或单独的硬件部分(处理器高速缓存存储器、系统/主存储器、ram、非易失性)中。硬件和/或软件标志、参数或配置可将访问/检索/使用仅限于软件应用22。例如,软件应用22可以指示硬件处理器28将保险库密钥40和/或加密版本70存储在硬件存储设备30的处理器高速缓存存储器部分中。因此,硬件处理器28再次能够快速检索、获取或命中保险库密钥40和/或加密版本70,以避免来自系统/主存储器的缓存缺失和缓存延迟。因为加密版本70可以优选地存储在处理器高速缓存存储器中,所以减少了存储器访问时间,并且硬件处理器28能够更快地识别和读取加密版本70。
34.因此,示例性实施例提供了一种简洁的保险库解决方案。身份凭证38可以与要加密的电子数据24分离或单独存储。保险库密钥40可以附加地或可选地与要加密的电子数据24分离或单独存储。因此,身份凭证38和/或保险库密钥40可以与要加密的电子数据24完全分离。创建此备份方法的目的是解决上述离线密钥管理的企业难题。因此,软件应用22允许对离线资产进行集中的多用户加密/解密凭证管理,其中加密版本70可以加密、保持离线,并且与解密凭证集分离。因此,计算机的功能和安全性得到了改善,因为没有任何类型的集中式或本地用户数据库或密码数据库,从而实现了集中式凭证管理的所有好处,而不存在任何常规风险。所有凭证管理和数据加密都可以完全脱机完成,无需访问互联网/网络。软件应用22允许多用户管理和安全性,这消除了单个故障点。软件应用22允许在发生悲剧或团队成员/凭证丢失的情况下恢复电子数据24的加密版本70。此外,软件应用22允许对完全离线的数据进行自动版本控制,从而成为第一大规模解决离线密钥管理繁琐过程的软件解决方案。
35.因此,示例性实施例可以生成密码密钥对。多个n身份凭证38和身份凭证的最小数量n
min
48可用于导出保险库密钥40。如前所述,保险库密钥40随后可用于加密和解密。多个n身份凭证38、保险库密钥40和/或身份凭证的最小数量n
min
48也可用于导出加密密钥和解密密钥74。保险库密钥40、加密密钥和/或解密密钥74中的任何一个都可以由软件应用22生成和本地存储,和/或被识别并以加密方式用作密钥对。加密可能需要输入身份凭证的最小数量n
min
48。如果正确输入了身份凭证的最小数量n
min
48,则生成正确的解密密钥74,并可用于解密加密版本70。
36.图9说明了解密操作46。当n个授权个人42中的任何一个希望执行解密时,设备20(再次图示为智能手机26)的用户打开或启动软件应用22。当智能手机26执行软件应用22时,软件应用22使智能手机26经由电容式触摸屏显示设备34显示图形用户界面(或“gui”)32。因此,用户可以策略性地选择或请求解密操作46。软件应用22可(经由图形用户界面32)呈现第一提示以输入保险库密钥40。例如,用户可以电容性地将分层文件结构导航到存储保险库密钥40的电子表示的存储器位置。因此,软件应用22可以从智能手机26的硬件存储设备30检索保险库密钥40。可选地,在执行解密操作46之前,软件应用22可能需要保险库密钥40作为输入。例如,软件应用22可提示用户实际出示保险库密钥40(例如通过扫描qr代码54、扫描条形码56或拍摄代表保险库密钥40的数字图像)。一旦软件应用22获得保险库密钥40,软件应用22可以继续解密操作46。
37.软件应用22可以执行检查。软件应用22可以将保险库密钥40的当前版本与保险库密钥40的历史版本(可能是在加密操作36期间创建的)进行比较。如果当前版本基本上匹配、等于或满足历史版本,则软件应用22可配置为继续解密操作46。例如,代表当前版本的qr码54或条形码56必须与代表历史版本的qr码54或条形码56基本匹配或相等。作为另一示例,软件应用22可配置为激活或调用散列算法。散列算法可以通过散列保险库密钥40的历史版本和保险库密钥40的当前版本来生成散列值。然后,软件应用22可以比较散列值。代表当前版本的散列值可能或必须与代表历史版本的散列值基本匹配或相等。如果确定了实质性的或精确的匹配,则软件应用22可以配置为继续解密操作46。然而,如果表示当前版本的散列值未能基本上匹配、等于或满足表示历史版本的散列值,则软件应用22可配置为不继续解密操作46。
38.可能还需要私人凭证。回想一下,在加密操作36期间,先前选择了最小数量n
min
48(如参考图2-5所解释)。当执行解密操作46时,软件应用22因此可以呈现一串或一系列提示,以电容性地输入用于创建保险库密钥40的身份凭证38中的最小数量n
min
48。因此,n个授权个人42中的最小数量n
min
48键入或输入(可能通过电容式触摸屏显示器34)其各自的身份凭证38。一旦软件应用22接收到身份凭证38的n
min
48,软件应用22使或指示智能手机26重新创建所有n个身份凭证38。也就是说,软件应用22激活或调用秘密共享算法50,以使用表示输入的最小数量n
min
48的共享来重新创建所有n个密码/密码短语44。一旦使用秘密共享算法50重新创建了所有n个密码/密码短语44,软件应用22激活或调用密钥导出函数52以导出解密密钥74。然后,软件应用22可以调用解密算法90,该算法使用解密密钥74作为解密参数,以从加密版本70生成解密版本。换句话说,如果n个身份凭证38中的最小数量n
min
48正确输入,则解密密钥74正确创建,并且将成功地解密加密版本70,从而再现电子数据24。
39.示例性实施例可以使用任何散列函数。许多读者可能熟悉sha-256散列算法。sha-256散列算法作用于任何电子数据或信息,生成256位散列值作为密码密钥。因此,密钥是独特的数字签名。然而,存在许多散列算法,并且示例性实施例可适用于任何散列算法。散列算法是一种极其复杂的操作,只能由计算机(例如智能手机26和硬件处理器28)执行。
40.可以存储解密密钥74和/或解密的电子数据24。例如,软件应用22可以指示硬件处理器28将解密密钥74和/或解密的电子数据24存储在硬件存储设备30的处理器高速缓存存储器部分中。因此,硬件处理器28再次能够快速检索、获取或命中解密密钥74和/或解密的电子数据24,以避免来自系统/主存储器的高速缓存缺失和高速缓存延迟。因为解密密钥74和/或解密的电子数据24可以优选地存储在处理器高速缓存存储器中,所以减少了存储器访问时间,并且硬件处理器28能够更快地识别和读取解密密钥74和/或解密的电子数据24。
41.图10说明了解密的电子数据24的分发。在设备20(例如,智能手机26)执行解密操作46之后,可以从硬件存储设备30检索解密的电子数据24,并进行显示、物理打印和/或通信。例如,智能手机26可以处理用于显示的电子数据24(可能通过触摸屏显示设备34)。智能手机26可以输出电子数据24,以便在纸上进行物理打印。此外,还可以检索解密的电子数据24,并通过通信网络60传送到任何网络地址或目的地址(例如,互联网协议地址)和/或任何设备/方/用户。因此,解密的电子数据24可以经由任何电子消息(例如,互联网协议、电子邮件、sms/mms文本、即时)有线/无线地传输到设备62(例如与其他n个授权个人42相关联的任何智能手机)。换句话说,解密的电子数据24可以从智能手机26分发,并与n个授权个人42中
的任何或所有人共享。因为解密的电子数据24可以电子存储和通信,所以解密的电子数据24也可以经由通信网络60发送到任何网络地址或目的地址(例如,因特网协议地址)。
42.图11-13说明用户的电子数据24的单独加密。当单个个人/用户希望加密她/他的个人信息(再次图示为电子数据24)时,该单个个人/用户可指定可信朋友、代理或代表进行解密。也就是说,即使单个人/用户拥有电子数据24,作为安全预防措施,用户也可以指定一个或多个受信任方作为解密代理92。如果用户(例如,电子数据24的所有者)丢失或忘记了她的密码/密码短语44,或者无法执行或完成解密操作46,解密代理92可以输入她/他的身份凭证38并解密所有者的电子数据24的加密版本70。因此,当单个用户选择加密操作36时,软件应用22可提示输入与n个解密代理92相关联的用户的身份凭证38a和身份凭证38b-n。一旦软件应用22接收到用户的身份凭证38a和代理的身份凭证38b-n,软件应用22生成保险库密钥40。软件应用22激活并应用秘密共享算法50以生成所有n=n 1身份凭证38a-n的至少一个共享,其中任何一(1)个或多个代理的身份凭证38b-n能够解密。一旦生成保险库密钥40,保险库密钥40的电子表示可以存储在硬件存储设备30中以供使用和稍后检索。保险库密钥40可以可选地分发给解密代理92中的任何一个或所有人。所有者/用户选择要加密的电子数据24,并且软件应用22通过使用保险库密钥40作为加密算法72的加密参数来加密电子数据24来生成加密版本70。软件应用22还使得设备20将电子数据24的加密版本70本地存储在固态存储器设备30中。因此,可以检索、显示、物理打印和/或传送电子数据24的加密版本70。如上所述,加密版本70可处理用于显示和/或物理打印(例如qr码76、条形码78、字母数字文本80或任何其他电子或物理表示)。此外,还可以检索加密版本70并将其存储到本地/外围设备/可移动存储设备82(例如usb闪存驱动器84)以进行离线存储。
43.图12说明了分发。还可以检索加密版本70,并通过通信网络60将其传送到任何网络地址或目的地址(例如,互联网协议地址)和/或任何设备/方/用户。因此,加密版本70可以经由任何电子消息(例如,互联网协议、电子邮件、sms/mms文本、即时)有线/无线地传输到任何设备94(例如与解密代理92相关联的任何智能手机)。换句话说,加密版本70可以从智能手机26分发,并与任意或全部n个解密代理92共享。因为加密版本70可以电子地存储和通信,所以加密版本70也可以经由通信网络60发送到任何网络地址或目的地址以进行存档/远程存储(例如与远程服务器64相关联的互联网协议地址)。加密版本70可以在现场和/或场外进行物理打印和物理存储,以进行离线保护。加密版本70可以附加地或可选地以电子方式传输和远程存储以供在线存档。
44.图13说明了代理解密。如果电子数据24的个人所有者发生任何事情,任何解密代理92都可以解锁或解密所有者电子数据24的加密版本70。例如,假设解密代理的设备94也是下载和存储软件应用22的智能手机26。解密代理92策略性地打开或启动软件应用22,并选择或请求解密操作46。软件应用22可任选地提示解密代理92选择或输入保险库密钥40。作为安全措施,软件应用22可配置为首先要求解密代理92扫描保险库密钥40(例如,qr码76、条形码78、字母数字文本80或任何其他电子或物理表示)。因此,解密操作46可以要求解密代理92拥有保险库密钥40的物理副本。软件应用22可附加地或可选地提示解密代理92输入她/他的代理的身份凭证38b(例如密码/密码短语44),其先前用于创建保险库密钥40。一旦软件应用22接收到代理的身份凭证38b-n中的任何一(1)个或多个,软件应用22使或指示智能手机26重新创建所有n=n 1身份凭证38a-n(例如,用户的身份凭证38a和/或n个代理
的身份凭证38b-n)。软件应用22调用并应用秘密共享算法50和密钥导出函数(“kdf”)52来解密加密版本70(使用解密密钥74作为解密算法72的解密参数)。因此,所有者的电子数据24是从加密版本70复制的。因此,所有者电子数据24的加密版本70绑定到解密代理92的密码/口令44。任何解密代理92都可以解锁所有者的加密版本70(例如,加密数据保险库)。
45.图14-15是根据示例性实施例的操作环境的更详细说明。图14说明了经由通信网络60与远程服务器64通信的设备20。设备20具有硬件处理器28(例如“μp”)、专用集成电路(asic)或执行存储在其本地固态存储器设备30中的软件应用22的其他组件。设备20具有到通信网络60的网络接口(为简单起见未示出),因此允许双向通信。软件应用22包括使设备20执行操作的指令、代码和/或程序,例如接收表示要加密的电子数据24的电容性触觉输入(可能经由触摸屏显示设备34)、选择加密操作36、输入或选择n个多身份凭证38,以及在身份凭证38中输入或选择所需的最小数量n
min
48。软件应用22使硬件处理器28生成保险库密钥40,并接收表示要加密的电子数据24的文件、存储器和/或网络位置的一个或多个选择。在识别电子数据24之后,软件应用22通过使用保险库密钥40作为加密算法72的加密参数对电子数据24进行加密来生成加密版本70。软件应用22还使得设备20将电子数据24的加密版本70本地存储在固态存储器设备30中。
46.图15说明了解密。当硬件处理器28执行软件应用22时,设备20的用户可以有策略地选择或请求解密操作46。软件应用22可以选择性地提示用户选择或输入保险库密钥40。还可能会提示用户输入密码。因此,软件应用22可以呈现一串或一系列提示,以输入之前用于创建保险库密钥40的身份凭证38中的最小数量n
min
48。一旦软件应用22接收到身份凭证38的n
min
48,软件应用22可提示用户选择加密版本70(例如本地硬件存储设备30或远程服务器64)的文件/存储器/网络位置。还可以通过扫描物理表示来获得加密版本70(如上所述)。在用户识别加密版本70之后,软件应用22使得或指示智能手机26使用秘密共享算法50重新创建所有n个身份凭证38。一旦所有n个身份凭证38(n个密码/密码短语44)重新创建,软件应用22激活或调用密钥导出函数(“kdf”)52以导出解密密钥74。软件应用22随后可以调用解密算法72,该算法使用解密密钥74作为解密参数,以从加密版本70生成解密版本。换句话说,如果n个身份凭证38中的最小数量n
min
48正确输入,则解密密钥74正确创建,并且将成功地解密加密版本70,从而再现电子数据24。
47.不管网络环境如何,都可以应用示例性实施例。示例性实施例可以容易地适用于具有蜂窝、无线局域网能力(例如)、低功率、近场和/或能力的固定或移动设备。示例性实施例可应用于利用电磁频谱的任何部分和任何信令标准(例如无线电频谱和ieee802标准系列、gsm/cdma/tdma或任何蜂窝标准和/或ism频带)的任何设备。然而,示例性实施例可应用于在射频域和/或互联网协议(ip)域中操作的任何处理器控制的设备。示例性实施例可应用于利用分布式计算网络的任何处理器控制的设备,例如因特网(有时可替换地称为“万维网(world wide web)”)、内联网、局域网(lan)和/或广域网(wan)。示例性实施例可应用于利用电力线技术的任何处理器控制设备,其中信号通过电线进行通信。实际上,不管物理组件、物理配置或通信标准如何,都可以应用示例性实施例。
48.示例性实施例可利用任何处理组件、配置或系统。任何处理器都可以是多个处理器,其中可能包括分布式处理器或单机或多机中的并行处理器。该处理器可用于支持虚拟处理环境。处理器可以包括状态机、专用集成电路(asic)、包括现场pga的可编程门阵列
(pga)或状态机。当任何处理器执行指令以执行“操作”时,这可能包括处理器直接执行操作和/或促进、指导或与另一设备或组件合作以执行操作。
49.示例性实施例可以分组。当任何设备或服务器经由通信网络60进行通信时,该设备或服务器可以收集、发送和检索信息。可以根据分组协议(例如因特网协议)将信息格式化或生成为数据分组。数据包包含描述消息内容或有效载荷的数据位或字节。每个数据分组的数据头可以包含标识发端地址和/或目的地址的路由信息。
50.图16-22是根据示例性实施例的说明加密操作36的屏幕截图。当执行软件应用22时(如参考图1所述),显示屏幕截图(例如由设备/智能手机20/26)。例如,图16说明了图形用户界面32,该图形用户界面32呈现了初始屏幕截图或欢迎屏幕截图,该屏幕截图呈现了i)加密私钥或ii)恢复备份的菜单选择。图17说明了图形用户界面32,其中显示了创建“保险库”备份的选项(例如,存储用户所选电子数据24的加密版本70)。然而,如图18所示,软件应用22可以首先直观地提示用户首先创建保险库密钥40。在用户策略性地选择用于创建保险库密钥10的图形控件后,图19说明了用于键入/输入用户机密信息(即电子数据24)以进行存档或备份的提示和数据字段。虽然可以向用户提供导航到任何网络位置和选择任何电子数据24的控制,但图19说明了提示输入身份凭证38的简单示例。换句话说,用户希望备份身份凭证38。图20说明了屏幕截图,该屏幕截图具有用于输入/扫描先前可能生成的保险库密钥40的可选图形控件。回想一下,保险库密钥40之前可能已创建为qr代码54和/或条形码56(如参考图4所述),因此保险库密钥40可以作为相机输入进行光学或数字扫描/成像。图形用户界面32还可以具有用于手动输入/键入代表保险库密钥40的字母数字文本58的数据字段(如参考图4所述)。图21说明了具有密码数据字段的图形用户界面32,用于手动输入/键入保险库密钥40所需的身份凭证38的n
min
48。在输入身份凭证38的n
min
48之后,用户选择加密图形控件,其发起/启动/导致加密操作38加密用户的秘密信息(即,电子数据24)并生成加密版本70。附加图形控件可以隐藏或清除身份凭证38的任何显示,以确保机密性和安全性。图22说明了代表加密版本70的二维码76的创建。回想一下,加密版本70可以表示为qr码76并进行物理输出(如参考图6所述)。可提示用户在数据字段中输入加密版本70的字母数字表示80。可选地,图形用户界面32可以具有图形控件来导航到任何网络位置并选择加密版本70。在软件应用22生成代表加密版本70的qr码76之后,可以根据可选择的大小和份数将qr码76打印到纸上。
51.图23-25是说明根据示例性实施例的保险库密钥40的创建的屏幕截图。如图24所示,图形用户界面32提示用户输入将要输入的身份凭证38的总数n,加上保险库密钥40所需的身份凭证38的n
min
48。软件应用22生成用于输入n个身份凭证38的密码数据字段。在用户输入n个身份凭证38之后,用户选择创建控件,该控件使软件应用22创建保险库密钥40。图25说明了将保险库密钥40物理打印为qr码54(如参考图4所述),用户可以选择用于选择副本大小和数量的控件/选项。
52.图26-30是说明根据示例性实施例的保险库密钥40的重新加密的屏幕截图。如图27所示,图形用户界面32提示用户输入先前/历史上创建的保险库密钥40(例如,扫描qr代码54和/或条形码56和/或输入/键入字母数字文本58,也参考图4进行解释)。图28说明了输入上一个/历史/旧保险库密钥40所需的“旧”身份凭证38的提示。图29说明了图形用户界面32,提示用户输入新生成的保险库密钥40的“新”n个身份凭证38,以及新保险库密钥40所需
的身份凭证38的n
min
48。图形用户界面32呈现用于输入n个身份凭证38的密码数据字段。在用户输入n个身份凭证38之后,用户选择重新加密控制,其使得软件应用22将“旧”保险库密钥40重新加密为“新”保险库密钥40。图30说明了新重新加密的保险库密钥40作为qr码54的物理打印(如参考图4所述),用户具有用于选择副本大小和数量的可选控件/选项。
53.图31-34是根据示例性实施例的说明解密操作46的屏幕截图。如图32所示,图形用户界面32提示用户输入与加密版本70相关联的保险库密钥40(例如,扫描二维码54和/或条形码56和/或输入/键入字母数字文本58,如参考图4所述)。图33说明了扫描/拍照/输入代表加密版本70的qr代码76的提示(如参考图6所述)。图34说明了输入保险库密钥40所需的身份凭证38的n
min
48的提示。在用户输入身份凭证38的n
min
48之后,用户选择解密控制,其使得软件应用22检索加密版本70并执行解密操作46。
54.图35是说明根据示例性实施例的用于加密电子数据24的方法或算法的流程图。接收加密操作36的选择(框200)。接收n个授权个人42的选择(框202),并接收其各自的身份凭证38(框204)。还接收用于解密的身份凭证38的最小所需数量n
min
48的选择(框206)。接收要加密的电子数据24的选择(框208)。生成保险库密钥40(框210)。通过使用保险库密钥40作为加密算法72的加密参数对电子数据24进行加密来生成电子数据24的加密版本70(框212)。加密版本70被本地和/或远程存储(框214)。加密版本70也可以以物理输出用于离线存储(框216)。
55.图36是根据示例性实施例的用于解密加密版本70的方法或算法的流程图。接收解密操作46的选择(框220)。接收保险库密钥40的键入、输入或扫描(框222)。提示输入/接收之前用于创建保险库密钥40的身份凭证38(框224)中的最小数量n
min
48。接收要解密的解密版本70的选择(框226)。使用身份凭证38中的最小数量n
min
48重新创建n个身份凭证38(框228)。使用n个身份凭证38导出解密密钥74(框230),并将其用作解密参数以解密加密版本70(框232)。
56.图37说明了根据示例性实施例的生物识别加密。设备20(例如,智能手机26)可具有生物识别能力,该生物识别能力也可用于认证和/或增强加密操作36。读者可以理解,智能手机26可以具有指纹传感器250。智能手机26的用户将手指放在指纹传感器250上或附近,指纹传感器250生成用户指纹252的电子表示。指纹传感器250可以使用任何指纹识别方案(例如数字成像和/或电容传感)来创建用户指纹252的电子表示。然后,指纹识别系统254可以使用用户指纹252的电子表示来认证用户。如果用户指纹252的电子表示与存储的、登记的参考图像、数据值或历史表示完全或基本匹配,则用户可以认证、解锁和访问/使用智能手机26。
57.智能手机26可能具有额外的生物识别功能。前向相机256可以捕获用户面部258的电子表示(例如,红外面部地图、图像和/或数据)。面部识别系统260随后可以使用用户面部258的电子表示来认证用户。如果用户面部258的电子表示与存储的、登记的参考图像、地图、数据值或历史表示完全或基本匹配,则用户可以认证、解锁和访问/使用智能手机26。前向相机256可附加地或可选地捕获用户眼睛/虹膜262的电子表示,眼睛/虹膜识别系统264随后可使用该电子表示与存储的、登记的参考图像、地图、数据值或历史表示进行比较。麦克风266可以捕捉用户语音268的电子表示,然后识别系统270可以使用该电子表示与存储的、登记的参考图像、地图、数据值或历史表示进行比较。如果用户语音268的电子表示与存
储的、登记的参考记录、音频数据值或历史音频表示完全或基本匹配,则用户可以认证、解锁和访问/使用智能手机26。
58.软件应用22可以包含这些生物识别功能。例如,当用户选择加密操作36时,软件应用22可以提示输入多个用户的身份凭证38(例如参考图1-3的解释)。然而,软件应用22可配置为要求任何用户各自的密码/口令44和/或她/他的生物识别输入272。也就是说,用户可能需要输入她的密码/密码短语44和她的生物识别(例如,她的指纹252、她的脸258和/或她的声音268)。一些授权个人可能需要输入多个身份凭证38(例如,她的对应密码/密码短语44和她的生物识别指纹252、面部258和/或语音268),而其他用户可能只需要提交一个身份凭证38(例如他们对应的密码/密码短语44或生物识别面部258)。实际上,软件应用22可以配置为要求特定的授权个人输入两个或多个身份凭证38,而其他特定个人可能只需要输入他们的单个身份凭证38。可以允许不同的配置来随机选择哪个授权个人具有多个身份凭证38或单个身份凭证38。软件应用22还可以允许任何用户选择需要输入的身份凭证38的数量。
59.软件应用22协调加密。一旦输入/键入了所有多个n身份凭证38(例如,密码/密码短语44和/或生物识别输入272),软件应用22使或指示智能手机26基于n个密码/密码短语44和/或n个生物识别输入272和/或最小数量n
min
48创建加密保险库密钥40。例如,软件应用22可以使用秘密共享算法50,根据最小数字n
min
48来切分密码/密码短语44和/或生物识别输入272,以生成保险库密钥40。软件应用22还可以使用密钥导出功能52(例如scrypt算法)从密码/密码短语44、生物识别输入272和/或保险库密钥40中的任何一个或多个导出加密密钥。一旦创建了保险库密钥40,保险库密钥40的电子表示可以存储在硬件存储设备30中以供使用和检索(如上所述)。软件应用22还可以使用密码/密码短语44、生物识别输入272和/或保险库密钥40来执行加密操作36和解密操作46(如上所述)。
60.因此,示例性实施例可以使用生物识别来生成密码密钥。任何经授权个人的密码/密码短语44和/或其生物识别输入272(例如,指纹252、面部258和/或语音268)可用作私钥的一部分,以生成公钥(或生成私钥对集),用于加密敏感电子数据24。然后,还可以使用私钥对(从密码/密码短语44、生物识别输入272和/或保险库密钥40生成)来解密加密版本70。因此,这些私钥对(或从密码/密码短语44、生物识别输入272和/或保险库密钥40的加密生成的那些结果)可以视为“访问密钥”以及数据保险库的一种形式。
61.基于生物识别的安全性增强了加密操作36和解密操作46。被授权个人的生物识别的数字化,可能与其相应的密码/密码短语44相结合,可用于创建在保护敏感电子数据24方面提供更大保证的访问密钥(access keys)。可以使用生物识别算法生成唯一的私钥。一旦从密码/密码短语44、生物识别输入272和/或保险库密钥40生成私钥,就可以使用sha-256从私钥随机生成公钥。为了增强安全性,分层确定性钱包(hierarchical deterministic wallet)可以使用私有公钥对来使用sha-256生成新的关联私有公钥对。生物识别/认证因此可以增强加密操作36和解密操作46。因此,软件应用22可以使用任何授权个人的密码/密码短语44和/或生物识别输入272来增强加密。
62.图38-43是根据示例性实施例的说明菜单配置的附加屏幕截图。图38说明了用于选择要加密的电子数据24的菜单主屏幕。设备20(再次图示为智能手机26)可以存储文件、文档、数字图像、数字照片和任何其他电子数据24的各种层次文件夹/文件集合。图39说明
了“公司”文件夹(在图38主屏幕中列出)和菜单列表的选择。智能手机26的用户因此可以电容性地输入并选择要安全加密的电子数据24(例如特定文件夹、文件或资产)。gui32尤其可以列出任何电子内容,例如登录凭证、文本/图形密码、电子文档文件或数字图像照片、文本注释,甚至加密数字硬币或货币。图40说明了用于创建要加密的新文档的菜单选择,例如用于从相机卷上载数字图像或捕获新数字照片的图形选择。用户还可以导航到导入和现有文件或其他内容。图41说明了用于使用现有保险库密钥40或创建新保险库密钥40的附加加密选项。图42说明了基于生物识别的安全增强功能的菜单选择。当创建保险库密钥40时,用户可以指定是否使用密码/密码短语44和/或生物识别输入272。图43说明了用于使用现有的、先前生成的或创建的保险库密钥40的菜单选择,可能基于先前限定的n个授权个人42和n个授权个人42中的子集或子组n
min
48进行解密。加密资产现在可以通过手机摄像头扫描二维码来共享和导入。
63.一旦用户以电容方式输入了她/他的配置选项,软件应用22就会安排加密和/或解密。一旦输入/输入了所有多个n身份凭证38(例如,密码/密码短语44和/或生物识别输入272),软件应用22促使或指示智能手机26创建加密保险库密钥40。软件应用22可以使用密钥导出功能52(例如scrypt算法)从密码/密码短语44、生物识别输入272和/或保险库密钥40中的任何一个或多个导出加密密钥。软件应用22可以使用秘密共享算法50,根据最小数量n
min
48,对密码/密码短语44、生物识别输入272、加密密钥和/或保险库密钥40中的任何一个或多个进行切分。软件应用22还可以使用密码/密码短语44、生物识别输入272、加密密钥和/或保险库密钥40来执行加密操作36和解密操作46(如上所述)。
64.图44是说明更多示例性实施例的示意图。图44是说明处理器控制的设备350的更详细的图。如前几段所述,软件应用22可部分或全部在任何移动或固定处理器控制的设备中操作。然后,图44说明了存储在处理器控制设备350的存储器子系统中的软件应用22。一个或多个处理器与存储器子系统通信,并执行部分或所有应用。由于处理器控制设备350为本领域普通技术人员所熟知,因此无需进一步解释。
65.图45为示例性实施例的附加方面描绘了其他可能的操作环境。图45说明了在各种其他处理器控制的设备350内操作的软件应用22。图45举例说明,软件应用22可在机顶盒(“stb”)或其他媒体播放器(352)、个人/数字视频记录器(pvr/dvr)354、全球定位系统(gps)设备356、交互式电视358、平板电脑360或任何计算机系统、通信设备中全部或部分操作,或利用上述任何处理器和/或数字信号处理器(dp/dsp)362的处理器控制设备。此外,处理器控制的设备350还可以包括可穿戴设备(例如手表)、无线电、车辆电子设备、相机、时钟、打印机、网关、移动/植入式医疗设备以及其他设备和系统。由于各种设备350的架构和工作原理是众所周知的,因此不再进一步说明和描述各种设备350的硬件和软件组件。
66.示例性实施例可应用于任何信令标准。大多数读者被认为熟悉全球移动通信系统(gsm)信令标准。然而,本领域的普通技术人员还认识到,示例性实施例同样适用于使用时分多址信令标准、码分多址信令标准、“双模”gsm-ansi互操作性团队(gait)信令标准或gsm/cdma/tdma信令标准的任何变体的任何通信设备。示例性实施例还可以应用于其他标准,例如,i.e.e.e.802标准系列、电磁频谱的工业、科学和医疗波段、以及任何其他标准。
67.示例性实施例改善处理器控制设备350的功能。当电子数据24(由处理器控制的设
备350存储,例如智能手机26)受到密码/密码短语保护/加密时,除非知道并输入正确的密码/密码短语,否则电子数据24基本上是不可访问的。然而,正如最近的新闻所示,即使是简单的4-6个字符的密码/密码短语也极难记住和/或恢复。事实上,关于制造商是否有义务“破坏”密码/密码短语安全方案的哲学争论仍在继续。示例性实施例通过指定用于访问和/或解密的身份凭证38的多个组合或其中一个来解决这些哲学上的隐私争论。例如,n个授权个人42可以注册其相应的身份凭证38,并且n
min
身份凭证38的任何组合可以解锁和/或解密。因此,处理器控制的设备350(例如智能手机26)可以编程为具有极大的密码安全性,但大大改进了解密的访问。
68.示例性实施例可以物理地体现在计算机可读的非暂时性存储介质上或其中。例如,这种计算机可读介质可以包括cd-rom、dvd、磁带、盒式磁带、软盘、光盘、存储卡、存储驱动器和大容量磁盘。这种计算机可读介质或介质可以分发给终端订阅者、被许可人和受让人。如上文所述,计算机程序产品包括用于加密和解密的处理器可执行指令。
69.虽然已经就各种特征、方面和实施例描述了示例性实施例,但本领域的技术人员和非技术人员将认识到示例性实施例并不限于此。在不脱离示例性实施例的精神和范围的情况下,可以进行其他变化、修改和替代实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献