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

身份验证程序、身份验证方法、用户终端和用户认证程序与流程

2022-02-20 00:18:42 来源:中国专利 TAG:


1.本公开涉及身份验证程序、身份验证方法、用户终端和用户认证程序。


背景技术:

2.越来越多地使用诸如云服务的各种在线服务,并且已经尝试了管理和保护用户数据的各种对策,诸如使用用户id和密码防止未授权访问的对策以及通过用户数据的加密防止泄露的对策。
3.引用列表
4.专利文献
5.专利文献1:jp 2015-95877 a。


技术实现要素:

6.技术问题
7.在提供各种在线服务时,在用于保护用户数据的对策中,需要实现用户隐私的保护和用户便利性的改善两者。
8.因此,本公开提出了能够实现用户隐私的保护和用户便利性的改善两者的身份验证程序、身份验证方法、用户终端和用户认证程序。
9.问题的解决方案
10.为了解决上述问题,根据本公开的实施方式的身份验证程序使作为用户终端的计算机执行用于通过零知识证明进行身份验证的处理功能,该身份验证程序包括:获取证据,该证据是仅允许用户终端的用户知道的信息;基于所获取的证据生成用于通过零知识证明进行用户认证的证明;并且将基于所生成的证明的用户认证请求发送到认证装置。
附图说明
11.图1是示出根据实施方式的信息处理系统的示例的示图。
12.图2是示出根据实施方式的设置处理的概要的示图。
13.图3是示出根据实施方式的用户终端的处理的概要的示图。
14.图4是示出根据实施方式的用户注册处理的过程的示例的示图。
15.图5是示出根据实施方式的用户认证处理的过程的示例的示图。
16.图6是示出根据实施方式的生成和存储用户秘密秘钥的处理的过程的示例的示图。
17.图7是示出根据实施方式的生成和存储用户秘密秘钥的处理的过程的另一示例的示图。
18.图8是示出根据修改的存储公共参数的处理的过程的示例的示图。
19.图9是示出根据修改的用于选择身份证明算法的用户界面的示例的示图。
20.图10是示出根据修改的生成和存储用户秘密秘钥的处理的过程的另一示例的示
图。
21.图11是示出根据修改的通过公共参数恢复用户秘密秘钥的处理的过程的示例的示图。
22.图12是示出根据修改的生成和存储备份秘密秘钥的处理的过程的示例的示图。
23.图13是示出根据修改的通过备份秘密秘钥恢复用户秘密秘钥的处理的过程的示例的示图。
24.图14是示出多个身份证明算法的应用示例的示图。
25.图15是示出实现用户终端的功能的计算机的示例的硬件配置图。
具体实施方式
26.在下文中,将参考附图详细描述本公开的实施方式。在以下实施方式中,相同的部件由相同的参考数字表示,从而可以省略重复的描述。
27.此外,将按照以下项顺序描述本公开。
28.1.简介
29.2.功能配置示例
30.3.处理过程示例
31.4.修改
32.5.其他
33.6.效果
34.7.硬件配置
35.(1.简介)
36.在提供各种在线服务时,将用于管理和保护用户数据的服务形式粗略地划分为集中式服务形式和分散式服务形式。
37.在集中式服务形式中,由服务运营商管理用户的秘密信息。例如,当使用用户id和密码执行登录认证时,由服务运营商管理忘记密码的情况下的密码或秘密口号。因此,可以灵活地应对密码丢失。服务运营商还管理用于解密用户的加密数据的信息(解密秘钥)。因此,不存在丢失用于解密加密数据的信息的风险,并且数据可用性较高。如上所述,集中式服务形式具有较高的用户便利性。另一方面,因为由服务运营商管理用于解密加密数据的信息(解密秘钥),所以授权的管理员可以解密加密的用户数据并且查看内容。另外,当使用服务时,可以将用户数据提供给第三方,并且期望尽可能避免加密数据可以被服务运营商解密。如上所述,在集中式服务形式中,从保护用户隐私的角度来看存在问题。为了解决用户隐私问题,考虑分散式服务形式。
38.在分散式服务形式中,用户管理用于解密通过加密用户数据而获得的加密数据的信息(用户秘钥)。因此,管理加密数据的服务运营商无法解密加密数据,并且仅用户可以解密加密数据,从而可以保护用户隐私。另一方面,如果用户丢失用于解密加密数据的信息(用户秘钥),则加密数据无法恢复和引用,并且数据可用性较低。如上所述,分散式服务形式在用户便利性方面存在问题。
39.另外,存在备份方法,在该备份方法中,服务运营商加密和管理用于加密用户数据的用户秘钥。然而,因为服务运营商可以解密用户秘钥,所以在用户隐私方面存在问题。另
外,还存在一种方法,在该方法中,用户离线备份用户秘钥,但是需要用户准备用户单独备份用户秘钥的地方,并且在用户便利性方面存在问题。另外,还存在一种方法,在该方法中,服务运营商备份用户利用密码等加密的加密用户秘钥,但是因为存在忘记密码的风险并且由从服务运营商提供的标准方法(诸如密码)管理加密用户秘钥,所以在用户便利性方面存在问题。
40.为此,本实施方式提出了能够实现用户隐私的保护和用户便利性的改善两者的信息处理装置。
41.(2.功能配置示例)
42.图1是示出根据实施方式的信息处理系统1的示例的示图。如图1所示,信息处理系统1包括能够经由通信网络10彼此执行数据通信的用户终端100和云服务器200。
43.用户终端100是由用户使用的用户装置,该用户是由云服务器200提供的在线服务的用户。用户终端100例如由诸如包括智能电话的蜂窝电话、平板终端、台式电脑、笔记本电脑或个人数字助理(pda)的信息处理装置实现。
44.云服务器200是由在云环境中将各种在线服务提供给用户终端100的服务运营商管理的装置。云服务器200是处理从用户终端100发送的用户认证请求的认证装置的示例。图1所示的云服务器200可以包括根据下述实施方式的针对每个处理而分布的多个服务器。
45.[2-1.用户终端]
[0046]
用户终端100包括通信单元101、输入单元102、输出单元103、成像单元104、定位单元105、检测单元106、存储单元115以及控制单元117。
[0047]
通信单元101例如由网络接口卡(nic)等实现。通信单元101以有线或无线方式连接到通信网络10以经由通信网络10将信息发送到云服务器200等并且从云服务器200等接收信息。通信网络10包括局域网(lan)、广域网(wan)、电话网络(移动电话网络、固定电话网络等)、区域因特网协议(ip)网络、因特网等。
[0048]
输入单元102包括键盘、鼠标等,并且接收来自用户终端100的用户的各种操作。由输入单元102从用户终端100接受的操作包括与从云服务器200提供的服务的使用相关联的用户注册操作、登录操作等。输入单元102可以包括诸如麦克风的声音输入装置,并且接收用户的语音等的输入。
[0049]
输出单元103包括显示器、扬声器等以输出各种类型的信息。从输出单元103输出的信息包括从云服务器200提供的用户注册、用于服务使用的用户界面等。
[0050]
成像单元104包括诸如相机的装置并且捕获图像。成像单元104可以获取用户的面部图像、虹膜图像等作为可以通过身份证明算法处理的用户数据。
[0051]
定位单元105包括全球定位系统(gps)等以获取用户终端100的位置。定位单元105可以获取用户的家庭或其父母的家庭的位置信息等作为可以通过身份证明算法处理的用户数据。
[0052]
检测单元106包括加速度传感器、陀螺仪传感器、生物传感器等,并且检测作用在用户终端100上的各种类型的信息。检测单元106可以获取诸如与用户的步态相对应的特征量、心跳的波形以及指纹的特征点的生物信息作为可以通过身份证明算法处理的用户数据。
[0053]
存储单元115存储用于实现由控制单元117执行的各种处理功能的程序、数据等。
例如,存储单元115由诸如随机存取存储器(ram)和闪存存储器的半导体存储器装置或诸如硬盘和光盘的存储装置实现。存储在存储单元115中的程序包括用于实现与控制单元117的每个单元相对应的处理功能的身份验证程序。身份验证程序提供用于使用户终端100执行用于通过下述零知识证明进行身份验证的处理功能的功能。
[0054]
控制单元117执行用户终端100中的各种处理。控制单元117例如由诸如中央处理单元(cpu)或微处理单元(mpu)的处理器实现。例如,控制单元117通过处理器使用随机存取存储器(ram)等作为工作区域来执行存储在用户终端100内部的存储装置中的各种程序实现。控制单元117可以由诸如专用集成电路(asic)或现场可编程门阵列(fpga)的集成电路实现。
[0055]
控制单元117包括身份证明算法生成单元171、zkp设置处理单元172、证据输入单元173、用户注册单元174、zkp证明处理单元175以及秘钥生成单元176。控制单元107通过每个单元实现或执行下述用户终端100的各种处理的功能和动作。控制单元107的功能配置并不具体地限于图1所示的配置示例,并且只要可以执行稍后描述的用户终端100的各种处理,就可以使用其他配置。
[0056]
身份证明算法生成单元171生成作为执行身份验证的方法的身份证明算法。身份证明算法生成单元171经由输入单元102使用证据(在下文中,被描述为“证据”)来生成,该证据是仅允许用户终端100的用户知道的信息。身份证明算法的示例包括姓名与密码之间的匹配、姓名与多个秘密口号之间的匹配、姓名与面部图像之间的位置、姓名与指纹之间的匹配等。
[0057]
可以作为身份证明算法处理的数据的其他示例包括诸如卡号的秘密信息、已知信息的组合、感测数据、我的号码(社会安全和税务号)以及信用卡信息。已知信息的组合的示例包括家庭成员姓名、家庭地址或电话号码、父母的地址或电话号码以及父母的婚前姓名。除上述指纹之外,感测数据的示例还包括诸如家庭的具体地址的位置信息以及诸如虹膜、面部、和步态的生物信息。
[0058]
在身份证明算法中,可以根据身份证明算法中交换的数据适当地采用诸如完全一致、模糊一致、大小比较以及包含关系的条件表达式。在处理密码、秘密口号以及生物信息的身份证明算法的情况下,可以采用完全一致作为条件表达式。在处理生物信息和秘密口号的身份证明算法的情况下,可以采用模糊一致作为条件表达式。在处理位置信息的身份证明算法的情况下,例如,可以采用诸如位置信息是否包括在具体区域中的包含关系作为条件表达式。身份证明算法中处理的数据和条件表达式的组合可以是与条件或者或条件。
[0059]
身份证明算法的数据可以经由输入单元102、成像单元104等交互地输入或可以非交互地输入。
[0060]
zkp(零知识证明)设置处理单元172基于身份证明算法执行生成用于通过零知识证明进行用户认证的公共参数的设置处理。zkp设置处理单元172用作执行生成用于通过零知识证明进行用户认证的公共参数的设置处理的设置处理单元。
[0061]
图2是示出根据实施方式的设置处理的概要的示图。如图2所示,zkp设置处理单元172通过将由身份证明算法生成单元171生成的身份证明算法a1输入到逻辑门g1而将身份证明算法a1转换为np完全类问题q1。
[0062]
除非已知证据,否则在多项式时间中不能解决np完全类问题q1,该证据是已经用
于生成身份证明算法并且仅允许用户知道的信息。因此,实现了使用身份证明算法的身份验证的完整性、安全性以及零知识。用户终端100的用户可以被证明是用户而无需向服务运营商公开证据。
[0063]
证据输入单元173接收用户终端100的用户的证据的输入。证据输入单元173用作获取证据的获取单元,该证据是仅允许用户终端100的用户知道的信息。
[0064]
用户注册单元174将用户终端100的用户信息注册到云服务器200中。用户注册单元174经由输入单元102从用户终端100的用户获取对用户唯一的用户识别信息(用户id)。用户注册单元174将用户识别信息(用户id)、公共参数以及加密证据彼此相关联地注册到云服务器200中。假设诸如电子邮件地址的用户不可能忘记的信息用作用户识别信息。
[0065]
zkp证明处理单元175包括证据还原处理单元(witnessreduction processing unit)175a和证明生成单元(proofgeneration unit)175b。zkp证明处理单元175用作基于每个单元的证据生成用于通过零知识证明进行用户认证的证明的生成单元。zkp证明处理单元175还用作将使用证明的用户认证请求发送到云服务器200的发送单元。
[0066]
证据还原处理单元175a执行基于证据、公共参数以及加密证据生成秘密多项式h的证据还原处理。当证据(即,仅允许用户知道的信息)不存在时,通过证据还原处理生成的秘密多项式h(在下文中,被描述为多项式h)是不能在多项式时间中生成的多项式。即,当证据与加密证据不匹配时,通过证据还原处理不能生成正确的多项式h。
[0067]
证明生成单元175b基于通过证据还原处理生成的多项式h生成用于通过零知识证明进行用户认证的证明。例如,证明生成单元175b生成使多项式h散列的结果作为证明。证明生成单元175b将所生成的证明发送到云服务器200。
[0068]
秘钥生成单元176使用多项式h生成用于加密用户终端100的用户的用户数据的用户秘密秘钥。另外,秘钥生成单元176使用多项式h生成用于加密用户秘密秘钥的备份秘密秘钥。
[0069]
[2-2.云服务器]
[0070]
云服务器200包括通信单元201、存储单元202以及控制单元203。
[0071]
通信单元201例如由网络接口卡(nic)等实现。通信单元201以有线或无线方式连接到通信网络10以经由通信网络10将信息发送到用户终端100等并且从用户终端100等接收信息。
[0072]
存储单元202存储用于实现由控制单元203执行的各种处理功能的程序、数据等。例如,存储单元202由诸如随机存取存储器(ram)和闪存存储器的半导体存储器装置或诸如硬盘和光盘的存储装置实现。存储在存储单元202中的程序包括用于实现与控制单元203的每个单元相对应的处理功能的用户认证程序。用户认证程序提供基于用于通过基于证据生成的零知识证明进行用户认证的证明和加密证据而获得的加密证据执行用户认证的功能。
[0073]
控制单元203执行云服务器200中的各种处理。控制单元203例如由诸如中央处理单元(cpu)或微处理单元(mpu)的处理器实现。例如,控制单元203通过处理器使用随机存取存储器(ram)等作为工作区域来执行存储在云服务器200内部的存储装置中的各种程序实现。控制单元203可以由诸如专用集成电路(asic)或现场可编程门阵列(fpga)的集成电路实现。
[0074]
控制单元203包括服务单元231、公共参数管理单元232以及zkp验证处理单元233,
并且这些单元实现或执行下述云服务器200的各种处理的功能和动作。控制单元203的功能配置并不具体地限于图1所示的配置示例,并且只要可以执行稍后描述的云服务器200的各种处理,就可以使用其他配置。
[0075]
服务单元231为用户终端100的用户提供各种在线服务。当提供各种在线服务时,服务单元231从用户终端100接收用户注册和用户认证请求。
[0076]
公共参数管理单元232彼此相关联地注册和管理从用户终端100提供的公共参数、用户识别信息(用户id)以及加密证据。
[0077]
zkp验证处理单元233基于包括在从用户终端100接收的用户认证请求中的证明执行用户终端100的用户的用户认证。zkp验证处理单元233从公共参数管理单元232获取与包括在用户认证请求中的用户id相关联的公共参数和加密证据。zkp验证处理单元233基于公共参数和加密证据来验证从用户终端100接收的证明。验证证明是否由用户终端100的用户生成。zkp验证处理单元233对基于公共参数和加密证据的计算结果与证明进行匹配,并且验证是否从正确的多项式h生成证明。
[0078]
在可以证明从正确的多项式h生成证明的情况下,zkp验证处理单元233推导指示用户终端100的用户(即,证明的发送源)是真实用户的验证结果。正确的多项式h是指由与生成公共参数时使用的身份证明算法中使用的证据相同的证据生成的多项式。另一方面,在不能证明从正确的多项式h生成证明的情况下,zkp验证处理单元233推导指示用户终端100的用户(即,证明的发送源)不是真实用户的验证结果。
[0079]
图3是示出根据实施方式的用户终端100的处理的概要的示图。如图3所示,身份证明算法生成单元171生成身份证明算法。zkp设置处理单元172基于身份证明算法生成用于通过零知识证明进行用户认证的公共参数。
[0080]
证据输入单元173生成通过加密与用户注册相关联的证据输入而获得的加密证据。用户注册单元174将用户id、公共参数以及加密证据彼此相关联地发送到云服务器200。以这种方式,用户终端100完成用户注册处理。
[0081]
另外,证据输入单元173根据用户认证从用户接收证据的输入。证据还原处理单元175a执行基于证据、公共参数以及加密证据生成秘密多项式h的证据还原处理。
[0082]
证明生成单元175b基于通过证据还原处理生成的多项式h生成用于通过零知识证明进行用户认证的证明。例如,证明生成单元175b生成使多项式h散列的结果作为证明。用户终端100通过将由证明生成单元175b生成的证明发送到云服务器200来接收云服务器200的用户认证处理。
[0083]
另外,秘钥生成单元176使用由证据还原处理单元175a生成的多项式h生成用户秘密秘钥。
[0084]
(3.处理过程示例)
[0085]
[3-1.用户注册]
[0086]
图4是示出根据实施方式的用户注册处理的过程的示例的示图。如图4所示,用户终端100的身份证明算法生成单元171生成身份证明算法(步骤s101)。
[0087]
用户终端100的zkp设置处理单元172基于身份证明算法执行生成用于通过零知识证明进行用户认证的公共参数的设置处理(步骤s102)。
[0088]
用户终端100的证据输入单元173生成通过加密输入证据而获得的加密证据(步骤
s103和s104)。
[0089]
用户终端100的用户注册单元174将用户id、公共参数以及加密证据彼此相关联地发送到云服务器200(步骤s105)。
[0090]
云服务器200的服务单元231请求公共参数管理单元232注册从用户终端100接收的用户id、公共参数以及加密证据(步骤s106)。
[0091]
服务单元231将用户注册完成通知发送到用户终端100(步骤s107)。
[0092]
[3-2.用户认证]
[0093]
图5是示出根据实施方式的用户认证处理的过程的示例的示图。如图5所示,用户终端100将与用户认证相关联地用于获取与由用户输入的用户id相关联的公共参数的请求发送到云服务器200(步骤s201)。
[0094]
云服务器200的zkp验证处理单元233请求公共参数管理单元232提供公共参数(步骤s202)。
[0095]
云服务器200的公共参数管理单元232响应于来自zkp验证处理单元233的请求而将公共参数和加密证据提供给zkp验证处理单元233(步骤s203)。
[0096]
云服务器200的zkp验证处理单元233将公共参数和加密证据发送到用户终端100(步骤s204)。
[0097]
用户终端100的证据输入单元173与用户认证相关联地从用户接收证据的输入(步骤s205)。
[0098]
zkp证明处理单元175基于证据、加密证据以及公共参数执行zkp证明处理以生成用于通过零知识证明进行用户认证的证明(步骤s206)。
[0099]
zkp证明处理单元175将基于在步骤s201中输入的用户id的用户认证请求和在步骤s206中生成的证明发送到云服务器200(步骤s207)。
[0100]
云服务器200的zkp验证处理单元233请求公共参数管理单元232提供与包括在从用户终端100接收的用户认证请求中的用户id相关联的加密证据(步骤s208)。
[0101]
云服务器200的公共参数管理单元232响应于来自zkp验证处理单元233的请求而将加密证据提供给zkp验证处理单元233(步骤s209)。
[0102]
云服务器200的zkp验证处理单元233基于包括在用户认证请求中的证明以及与包括在用户认证请求中的用户id相关联的公共参数和加密证据来验证证明(步骤s210)。
[0103]
[3-3.通过身份验证生成和存储用户秘密秘钥]
[0104]
《3-3-1.散列》
[0105]
图6是示出根据实施方式的生成和存储用户秘密秘钥的处理的过程的示例的示图。在图6所示的处理的过程中,步骤s301至s304的处理与图5所示的步骤s201至s204的处理基本相似,并且因此省略详细描述。
[0106]
如图6所示,用户终端100请求用户输入用于生成与身份验证(用户认证)相关联的身份证明算法的证据,并且证据输入单元173接收证据的输入(步骤s305)。
[0107]
证据还原处理单元175a基于在步骤s305中获取的证据、加密证据以及公共参数执行证据还原处理以生成多项式h(步骤s306)。
[0108]
秘钥生成单元176对通过证据还原处理生成的多项式h进行编码和散列以生成用户秘密秘钥(步骤s307)以将所生成的用户秘密秘钥存储在装置中(步骤s308)。
[0109]
《3-3-2.随机数》
[0110]
图7是示出根据实施方式的生成和存储用户秘密秘钥的处理的过程的另一示例的示图。在图7所示的处理的过程中,步骤s401至s404的处理与图5所示的步骤s201至s204的处理基本相似,并且因此省略详细描述。
[0111]
如图7所示,用户终端100请求用户输入用于生成与身份验证(用户认证)相关联的身份证明算法的证据,并且证据输入单元173接收证据的输入(步骤s405)。
[0112]
证据还原处理单元175a基于在步骤s405中获取的证据、加密证据以及公共参数执行证据还原处理以生成多项式h(步骤s406)。
[0113]
秘钥生成单元176生成任意随机数r(步骤s407)以生成通过将所生成的随机数r输入到多项式h而获得的值作为用户秘密秘钥(步骤s408)。
[0114]
秘钥生成单元176将在步骤s407中生成的随机数r的备份请求发送到云服务器200(步骤s409),并且将在步骤s408中生成的用户秘密秘钥存储在装置中(步骤s410)。
[0115]
当从用户终端100接收到随机数r的备份请求时,云服务器200的服务单元231请求公共参数管理单元232备份随机数r(步骤s411)。
[0116]
(4.修改)
[0117]
[4-1.多个身份证明算法的生成和管理]
[0118]
在上述实施方式中,用户终端100可以生成由用户选择的多个身份证明算法,并且将与多个身份证明算法中的每一个身份证明算法相对应的公共参数注册在云服务器200中。图8是示出根据修改的存储公共参数的处理的过程的示例的示图。图9是示出根据修改的用于选择身份证明算法的用户界面的示例的示图。
[0119]
如图8所示,身份证明算法生成单元171为用户提供图9所示的选择用户界面113以生成身份证明算法,并且zkp设置处理单元172生成公共参数(步骤s501)。
[0120]
如图9所示,身份证明算法生成单元171在输出单元103上显示可以选择多个身份验证方法的选择用户界面113并且为用户提供该选择用户界面113。图9所示的选择用户界面113包括用于选择身份验证方法的多个选择项113a至113d。选择用户界面113被配置为能够从用户接收对选择项113a至113d的选择并且显示分别与选择项113a至113d相对应的证据输入屏幕131a至131d。每次选择身份证明方法并且输入证据时,身份证明算法生成单元171生成身份证明算法。
[0121]
zkp设置处理单元172针对由身份证明算法生成单元171生成的多个身份证明算法中的每一个身份证明算法生成基于身份证明算法的公共参数。
[0122]
返回图8,用户注册单元174将公共参数存储请求与用户id和由zkp设置处理单元172生成的所有公共参数相关联地发送到云服务器200(步骤s502)。
[0123]
当从用户终端100接收到公共参数的存储请求时,云服务器200的服务单元231请求公共参数管理单元232存储公共参数(步骤s503)。公共参数管理单元232彼此相关联地注册和管理用户id和所有公共参数。
[0124]
[4-2.在初始用户注册时用户秘密秘钥的生成和存储]
[0125]
图10是示出根据修改的生成和存储用户秘密秘钥的处理的过程的另一示例的示图。图10示出了在初始用户注册时生成和存储用户秘密秘钥的过程。在图10所示的处理的过程中,步骤s601至s607的处理与图4所示的步骤s101至s107的处理相似,并且因此省略详
细描述。另外,在图10所示的处理的过程中,步骤s608至s610的处理与图6所示的步骤s306至s308的处理基本相似。
[0126]
一旦接收到用户注册完成通知,用户终端100的证据还原处理单元175a就基于在步骤s603中获取的证据、加密证据以及公共参数生成多项式h(步骤s608)。
[0127]
秘钥生成单元176对通过证据还原处理生成的多项式h进行编码和散列以生成用户秘密秘钥(步骤s609)以将所生成的用户秘密秘钥存储在装置中(步骤s610)。
[0128]
在步骤s609中,如图7所示,用户终端100可以生成任意随机数r并且生成通过将所生成的随机数r输入到多项式h而获得的值作为用户秘密秘钥。
[0129]
[4-3.通过公共参数恢复用户秘密秘钥]
[0130]
图11是示出根据修改的通过公共参数恢复用户秘密秘钥的处理的过程的示例的示图。图11所示的步骤s701至s708与图6所示的步骤s301至s308基本相似,并且因此省略其详细描述。在用户终端100的用户通过装置存储等自管理用户秘密秘钥的情况下,可能发生用户秘密秘钥丢失的情形。此时,用户终端100请求用户输入用于生成身份证明算法的证据(步骤s705)。随后,用户终端100基于从云服务器200获取的公共参数和加密证据以及从用户获取的证据执行证据还原处理以生成多项式h(步骤s706)。用户终端100可以通过使用由证据还原处理生成的多项式h再次生成用户秘密秘钥来恢复用户秘密秘钥(步骤s707)。
[0131]
[4-4.备份秘密秘钥的生成和存储]
[0132]
图12是示出根据修改的生成和存储备份秘密秘钥的处理的过程的示例的示图。在图12所示的处理的过程中,步骤s803至s810的处理与图10所示的步骤s601至s610的处理基本相似,并且因此省略详细描述。
[0133]
如图12所示,用户终端100基于所生成的任意随机数生成用户秘密秘钥(步骤s801)以将所生成的用户秘密秘钥存储在装置中(步骤s802)。
[0134]
随后,在用户终端100与云服务器200之间注册用户id、公共参数以及加密证据(步骤s803至s809)。然后,在完成用户注册之后,用户终端100生成多项式h(步骤s810)。
[0135]
秘钥生成单元176基于在步骤s810中生成的多项式h生成用于加密在步骤s801中生成的用户秘密秘钥的备份秘密秘钥(步骤s811)。例如,秘钥生成单元176对多项式h进行编码和散列以生成备份秘密秘钥。
[0136]
秘钥生成单元176生成通过利用在步骤s811中生成的备份秘密秘钥加密在步骤s801中生成的用户秘密秘钥而获得的加密用户秘密秘钥(步骤s812)。
[0137]
秘钥生成单元176将在步骤s812中生成的加密用户秘密秘钥的备份请求发送到云服务器200(步骤s813)。
[0138]
当从用户终端100接收到加密用户秘密秘钥的备份请求时,云服务器200的服务单元231请求公共参数管理单元232备份加密用户秘密秘钥(步骤s815)。公共参数管理单元232注册和管理与用户id相关联的加密用户秘密秘钥。
[0139]
[4-5.通过备份秘密秘钥恢复用户秘密秘钥]
[0140]
图13是示出根据修改的通过备份秘密秘钥恢复用户秘密秘钥的处理的过程的示例的示图。
[0141]
如图13所示,用户终端100响应于用于恢复用户秘密秘钥的用户的请求而请求输入用户id以将用于获取基于所输入的用户id的加密用户秘密秘钥和公共参数的请求发送
到云服务器200(步骤s901)。
[0142]
一旦从用户终端100接收到关于加密用户秘密秘钥和公共参数的获取请求,云服务器200的服务单元231就请求公共参数管理单元232提供加密用户秘密秘钥和公共参数(步骤s902)。
[0143]
云服务器200的公共参数管理单元232响应于来自服务单元231的请求而为服务单元231提供加密用户秘密秘钥、公共参数以及加密证据。
[0144]
服务单元231将加密用户秘密秘钥、公共参数以及加密证据发送到用户终端100(步骤s904)。
[0145]
随后,当备份加密用户秘密秘钥时,用户终端100请求用于生成身份证明算法的证据的输入,并且证据输入单元173接收证据的输入(步骤s905)。
[0146]
证据还原处理单元175a基于在步骤s905中获取的证据、加密证据以及公共参数执行证据还原处理以生成多项式h(步骤s906)。
[0147]
秘钥生成单元176对通过证据还原处理生成的多项式h进行编码和散列以再次生成备份秘密秘钥(步骤s907)。
[0148]
秘钥生成单元176使用在步骤s907中再生成的备份秘密秘钥解密从云服务器200获取的加密用户秘密秘钥以恢复用户秘密秘钥(步骤s908)。
[0149]
(5.其他)
[0150]
[5-1.多个身份证明算法的应用示例]
[0151]
例如,当备份图13所示的加密用户秘密秘钥时,可以应用多个身份证明算法。图14是示出多个身份证明算法的应用示例的示图。如图14所示,例如,用户终端100分别从多个身份证明算法a1至an中生成备份秘密秘钥sk1至skn。即,基于身份证明算法a1从多项式h生成备份秘密秘钥sk1,并且基于身份证明算法an从多项式h生成备份秘密秘钥skn。随后,例如,用户终端100生成通过分别使用备份秘密秘钥sk1至skn加密用户秘密秘钥uk而获得的加密用户秘密秘钥e1至en,并且将加密用户秘密秘钥e1至en备份在云服务器200中。当用户可以利用多个身份证明算法中的任意一个身份证明算法执行身份验证时,用户终端100的用户可以从备份目的地获取加密用户秘密秘钥。因此,用户终端100的用户可以通过使用从备份目的地获取的加密用户秘密秘钥来恢复用户秘密秘钥。
[0152]
[5-2.用例]
[0153]
根据上述实施方式的用户认证方法可以用于除了登录到诸如由云服务器200提供的web服务的在线服务之外的服务。例如,可以用于音乐会、活动等的入场时的身份验证、各种合同中的身份验证、诸如学生折扣的各种服务中的身份验证等。此外,结合各种游戏应用程序的处理,根据上述实施方式的用户认证可以用于与游戏的进程有关的处理,例如,获取导致发生事件的秘密信息或证明用户已经到达秘密位置。例如,可以在游戏场地提供具有编写的秘密口号的具体位置,并且仅已经到达该具体位置的用户可以生成证明(可以证明其已经到达位置)。
[0154]
此外,还可以手动执行上述实施方式中描述的相应处理中被描述为自动执行的全部或部分处理,或可选地,还可以自动执行被描述为通过已知方法手动执行的全部或部分处理。另外,除非另有说明,否则可以任意改变上述文档和附图中所示的处理过程、具体名称以及包括各种数据和参数的信息。例如,每个附图所示的各种信息不限于图示的信息。
[0155]
此外,每个图示装置的每个组件是功能概念,并且不一定必须如附图所示的那样物理地配置。即,每个装置的分布/集成的具体形式并不限于附图所示的形式,并且全部或部分装置可以根据各种负载和使用条件功能或物理地分布/集成在任何单元中。例如,图1所示的zkp证明处理单元175的处理功能可以从用户终端100分布并且在设置在用户终端100外部的验证装置中实现。在这种情况下,当从用户终端100获取证据时,验证装置从云服务器200获取公共参数等、基于所获取的公共参数等执行用户认证处理以将用户认证结果的结果发送到云服务器200。
[0156]
此外,可以在处理内容彼此不矛盾的范围内适当地组合上述实施方式和修改。
[0157]
此外,本说明书中描述的每个实施方式的效果仅是示例并且不受限制,并且可以存在其他效果。另外,可以获得本公开中描述的至少一种效果。
[0158]
(6.效果)
[0159]
如上所述,根据本公开的身份验证程序使作为用户终端(实施方式中的用户终端100等)的计算机执行用于通过零知识证明进行身份验证的处理功能。这样的身份验证程序获取证据,该证据是仅允许用户终端的用户知道的信息。这样的身份验证程序基于所获取的证据生成用于通过零知识证明进行用户认证的证明。该身份验证程序将基于所生成的证明的用户认证请求发送到认证装置(实施方式中的云服务器200等)。因此,根据本公开的身份验证程序可以使认证装置执行不公开仅允许用户知道的信息的用户认证处理。因此,根据本公开的身份验证程序例如可以在使用在线服务时的用户认证中实现用户隐私的保护。
[0160]
另外,根据本公开的身份验证程序基于用于身份验证的身份证明算法执行生成用于通过零知识证明进行用户认证的公共参数的设置处理。这样的身份验证程序将对用户终端的用户唯一的用户识别信息、公共参数以及加密证据彼此相关联地注册到认证装置中。这样的身份验证程序使用证据、公共参数以及通过加密证据而获得的加密证据在证据正确的条件下生成被配置为在多项式时间中推导的多项式。这样的身份验证程序使用多项式生成证明。该身份验证程序将基于用户识别信息和证明的用户认证请求发送到认证装置。因此,根据本公开的身份验证程序可以将基于身份证明算法的公共参数预先注册到认证装置中,并且使用户终端基于公共参数执行不公开仅允许用户知道的信息的用户认证处理。因此,根据本公开的身份验证程序例如可以在使用在线服务时的用户认证中实现用户隐私的保护。
[0161]
此外,根据本公开的身份验证程序通过使用多项式生成用于加密用户的用户数据的用户秘密秘钥。因此,根据本公开的身份验证程序可以利用用户秘密秘钥安全地加密用户数据,除非基于仅允许用户知道的信息身份验证成功,否则不能生成用户秘密秘钥。因此,根据本公开的身份验证程序,即使当通过利用用户秘密秘钥加密用户数据而获得的数据被上传到在线服务中时,也无需担心用户数据被解密,并且可以保护在使用在线服务中的用户隐私。
[0162]
此外,根据本公开的身份验证程序通过使用多项式生成用于加密用户秘密秘钥的备份秘密秘钥,通过使用备份秘密秘钥生成通过加密用户秘密秘钥而获得的加密用户秘密秘钥,并且将加密用户秘密秘钥注册到认证装置中。因此,根据本公开的身份验证程序可以实现通过利用在身份验证成功的条件下生成的备份秘密秘钥加密用户数据而获得的用户秘密秘钥的安全备份。即,根据本公开的身份验证程序备份通过利用备份秘密秘钥加密用
户秘密秘钥而获得的加密用户秘密秘钥,除非身份验证成功,否则不能生成备份秘密秘钥。因此,根据本公开的身份验证程序,无需担心加密用户秘密秘钥被解密。此外,根据本公开的身份验证程序,即使当用户秘密秘钥丢失时,也可以通过使用备份秘密秘钥解密在线服务上备份的加密用户秘密秘钥来恢复用户秘密秘钥。因此,根据本公开的身份验证程序,可以提高数据可用性,并且可以提高用户数据的安全备份中的用户便利性。
[0163]
此外,根据本公开的身份验证程序提供用于从用户终端的用户接收身份证明算法的选择的接口。因此,根据本公开的身份验证程序可以使用户终端使用由用户选择的身份证明算法执行用户认证处理。因此,根据本公开的身份验证程序,代替由提供在线服务的服务运营商设置的身份证明算法,可以使用用户期望的身份证明算法。因此,根据本公开的身份验证程序,例如,可以在使用在线服务等时保护用户认证中的用户隐私的同时,改善在使用在线服务时的用户认证中的用户便利性。
[0164]
(7.硬件配置)
[0165]
例如,根据上述每个实施方式的用户终端100由具有如图15所示的配置的计算机1000实现。图15是示出实现用户终端100的功能的计算机1000的示例的硬件配置图。计算机1000包括cpu 1100、ram 1200、只读存储器(rom)1300、硬盘驱动器(hdd)1400、通信接口1500以及输入/输出接口1600。计算机1000的相应单元通过总线1050连接。
[0166]
cpu 1100基于存储在rom 1300或hdd 1400中的程序进行操作,并且控制每个单元。例如,cpu 1100在ram 1200中开发了存储在rom 1300或hdd 1400中的程序,并且执行与各种程序相对应的处理。
[0167]
rom 1300存储诸如当激活计算机1000时由cpu 1100执行的基本输入输出系统(bios)的启动程序、取决于计算机1000的硬件的程序等。
[0168]
hdd 1400是非暂时地记录由cpu 1100执行的程序、由程序使用的数据等的计算机1000可读记录介质。具体地,例如,hdd 1400是记录用于实现图3所示的天线切换处理的程序的记录介质。
[0169]
通信接口1500是用于计算机1000连接到外部网络1550(例如,因特网)的接口。例如,cpu 1100经由通信接口1500从另一装置接收数据或将由cpu 1100生成的数据发送到另一装置。
[0170]
输入/输出接口1600是用于连接输入/输出装置1650和计算机1000的接口。例如,cpu 1100经由输入/输出接口1600从诸如键盘和鼠标的输入装置接收数据。另外,cpu 1100经由输入/输出接口1600将数据发送到诸如显示器、扬声器或打印机的输出装置。此外,输入/输出接口1600可以用作读取记录在预定记录介质(介质)中的程序等的介质接口。例如,介质是诸如数字通用盘(dvd)或相变可重写盘(pd)的光学记录介质、诸如磁光盘(mo)的磁光记录介质、磁带介质、磁记录介质、半导体存储器等。
[0171]
例如,在计算机1000用作根据实施方式的用户终端100的情况下,计算机1000的cpu 1100执行加载在ram 1200上的程序(诸如用于实现天线切换处理的程序)。因此,实现了诸如由用户终端100的控制单元117执行的各种处理的功能。另外,hdd 1400存储用于实现根据本公开的用户终端100的处理的程序(身份验证程序的示例)、存储在存储单元111中的数据等。cpu 1100从hdd 1400读取程序数据1450并且执行该程序数据,但是作为另一示例,可以经由外部网络1550从另一装置获取程序。
[0172]
本技术还可以如下配置。
[0173]
(1)
[0174]
一种身份验证程序,使作为用户终端的计算机执行用于通过零知识证明进行身份验证的处理功能,该身份验证程序包括:
[0175]
获取证据,该证据是仅允许用户终端的用户知道的信息;
[0176]
基于所获取的证据生成用于通过零知识证明进行用户认证的证明;并且
[0177]
将基于所生成的证明的用户认证请求发送到认证装置。
[0178]
(2)
[0179]
根据(1)的身份验证程序,该程序包括:
[0180]
基于用于身份验证的身份证明算法执行生成用于通过零知识证明进行用户认证的公共参数的设置处理;
[0181]
将对用户终端的用户唯一的用户识别信息、公共参数以及通过加密证据而获得的加密证据彼此相关联地注册到认证装置中;
[0182]
使用证据、公共参数以及加密证据在证据正确的条件下生成被配置为在多项式时间中推导的多项式;
[0183]
使用多项式生成证明;并且
[0184]
将基于用户识别信息和证明的用户认证请求发送到认证装置。
[0185]
(3)
[0186]
根据(2)的身份验证程序,该程序包括:使用多项式生成用于加密用户的用户数据的用户秘密秘钥。
[0187]
(4)
[0188]
根据(3)的身份验证程序,该程序包括:
[0189]
使用多项式生成用于加密用户秘密秘钥的备份秘密秘钥;
[0190]
使用备份秘密秘钥生成通过加密用户秘密秘钥而获得的加密用户秘密秘钥;并且
[0191]
将加密用户秘密秘钥注册到认证装置中。
[0192]
(5)
[0193]
根据(2)至(4)中任一项的身份验证程序,该程序包括:
[0194]
提供用于从用户终端的用户接收对身份证明算法的选择的接口。
[0195]
(6)
[0196]
一种身份验证方法,由作为用户终端的计算机执行用于通过零知识证明进行身份验证的处理功能,该方法包括:
[0197]
获取证据,该证据是仅允许用户终端的用户知道的信息;
[0198]
基于所获取的证据生成用于通过零知识证明进行用户认证的证明;并且
[0199]
将使用所生成的证明的用户认证请求发送到认证装置。
[0200]
(7)
[0201]
一种用户终端,执行用于通过零知识证明进行身份验证的处理功能,该用户终端包括:
[0202]
获取单元,获取证据,该证据是仅允许用户终端的用户知道的信息;
[0203]
生成单元,基于证据生成用于通过零知识证明进行用户认证的证明;以及
[0204]
发送单元,将使用证明的用户认证请求发送到认证装置。
[0205]
(8)
[0206]
一种用户认证程序,使计算机执行用于通过零知识证明进行用户认证的处理功能,该用户认证程序包括:
[0207]
从用户终端接收用户认证请求;并且
[0208]
基于证明和加密证据执行用户认证,该证明用于通过基于证据生成的零知识证明进行用户认证,该证据是仅允许用户终端的用户知道的包括在用户认证请求中的信息,该加密证据是与包括在用户认证请求中的用户识别信息相关联地预先注册的信息,该加密证据是通过加密证据而获得的。
[0209]
参考标记列表
[0210]
1 信息处理系统
[0211]
10 通信网络
[0212]
100 用户终端
[0213]
101 通信单元
[0214]
102 输入单元
[0215]
103 输出单元
[0216]
104 成像单元
[0217]
105 定位单元
[0218]
106 检测单元
[0219]
115 存储单元
[0220]
117 控制单元
[0221]
171 身份证明算法生成单元
[0222]
172 zkp设置处理单元
[0223]
173 证据输入单元
[0224]
174 用户注册单元
[0225]
175 zkp证明处理单元
[0226]
175a 证据还原处理单元
[0227]
175b 证明生成单元
[0228]
176 秘钥生成单元
[0229]
200 云服务器
[0230]
201 通信单元
[0231]
202 存储单元
[0232]
203 控制单元
[0233]
231 服务单元
[0234]
232 公共参数管理单元
[0235]
233 zkp验证处理单元。
再多了解一些

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

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

相关文献