CN103703718B - 用于模糊处理密码协议的初始值的系统和方法 - Google Patents

用于模糊处理密码协议的初始值的系统和方法 Download PDF

Info

Publication number
CN103703718B
CN103703718B CN201280036431.2A CN201280036431A CN103703718B CN 103703718 B CN103703718 B CN 103703718B CN 201280036431 A CN201280036431 A CN 201280036431A CN 103703718 B CN103703718 B CN 103703718B
Authority
CN
China
Prior art keywords
computing device
value
message
owned
publicly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201280036431.2A
Other languages
English (en)
Other versions
CN103703718A (zh
Inventor
米驰·佐凌格
菲利普·庞恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netflix Inc
Original Assignee
Netflix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netflix Inc filed Critical Netflix Inc
Publication of CN103703718A publication Critical patent/CN103703718A/zh
Application granted granted Critical
Publication of CN103703718B publication Critical patent/CN103703718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0414Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/605Copy protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于确定第一计算设备是否具有正确版本的软件程序的计算机实施的技术,用于提供一种安全方法来验证客户端计算设备具有安全和被认可版本的内容播放器软件,其被实现以用于消费所下载的具有版权的媒体内容。通过该技术,具有版权的媒体内容提供商能够确保只有安全和被认可的内容播放器才实施来访问该内容。

Description

用于模糊处理密码协议的初始值的系统和方法
技术领域
本发明总体涉及计算机网络中的密码,更具体地,涉及根据经模糊处理的密码协议初始值检查计算机设备运行正确版本软件程序的系统和方法。
背景技术
配置成在客户端计算设备上运行的内容播放器软件一般相当复杂。内容播放器软件中的安全漏洞通常在该软件发布并且被许多客户端计算设备下载之后才会被发现。这样的安全漏洞会导致受版权保护的内容被没有正当授权的终端用户或其他人观看或拷贝(copy)。为了弥补这样的安全漏洞,将客户端内容播放器软件更新到被设计来解决该安全漏洞的新版本,并且客户端计算设备将不能下载受版权保护的内容直到该客户端计算设备验证内容播放器软件的新版本已经正当地装载到该设备上。
一般每个版本的内容播放器软件都由不同版本号表示。当前位于客户端计算设备的内容播放器软件的版本号被存储在与该内容播放器软件相关联的客户端计算设备的存储器中。该方法的一个问题在于客户端计算机的终端用户可以容易地“黑”(hack)内容播放器软件并且改变版本号,而不需要下载与改变的版本号对应的新版本的内容播放器软件,其中该新版本的内容播放器软件被改进为解决老版本的内容播放器软件中的一个或多个安全漏洞。结果是,客户端计算设备的终端用户能够避免由内容提供商实施的并且通过内容播放器软件中的一个或多个安全漏洞暴露出来的DRM和其它拷贝保护。
如前所述,现有技术需要更安全的方法来验证当前安装在客户端设备上的应用是安全的。
发明内容
本发明的一个实施例提出一种用于确定第一计算设备是否具有正确版本的软件程序的计算机实施的方法。该系统包括使用相同的一个或多个初值初始化的两个计算设备。该方法包括根据至少一个初始设置值计算私有密值,根据私有密值和至少一个初始设置值计算公有值,发送所计算的公有值给第二计算设备,从第二计算设备接收另一公有值,根据从第二计算设备接收的公有值和私有密值计算共享秘密。该方法还包括从第二计算设备接收加密的消息,使用共享秘密解密该加密的消息,并确定该消息是否被正确解密。如果该消息被正确解密,则第一计算设备和第二计算设备之间的通信继续进行,因为第一计算设备具有正确版本的软件程序。而如果该消息没有被正确解密,则第一计算设备和第二计算设备之间的通信终止,因为第一计算设备不具有正确版本的软件程序。
所公开的方法的一个优点是该方法提供了一种安全方案来验证客户端计算设备具有安全和被认可版本的内容播放器软件,其被实现以用于消费下载的具有版权的媒体内容。结果是,具有版权的媒体内容的提供商能够确保只有被认可和安全的媒体播放器才被实现来访问内容。
附图说明
参考部分结合附图进行说明的实施例,更具体地描述上文简要概括的本发明,使得本发明的上述特征可以得到更详细的理解。然而,需要说明的是,附图仅示出本发明的典型实施例,因此,不应认为是对本发明的范围的限制,本发明可以包括其它等效实施例。
图1示出了被配置成实现本发明的一个或多个方面的计算机网络;
图2是根据本发明的一个实施例,图1的第一计算设备的更详细的说明;
图3是根据本发明的一个实施例,图2的第一计算设备中的安全通信模块的更详细的说明;
图4是根据本发明的一个实施例,图1的第二计算设备的更详细的说明;
图5是根据本发明的一个实施例,图4的第二计算设备中的安全通信模块的更详细的说明;
图6是根据本发明的一个实施例,用于按模糊处理方式计算共享秘密的方法步骤的流程图;
图7是根据本发明的一个实施例,用于验证图1的第一计算设备具有正确版本的内容播放器应用的方法步骤的流程图;以及
图8是根据本发明的一个实施例,用于更新图1的第一计算设备中的内容播放器和安全通信模块的方法步骤的流程图。
具体实施方式
图1示出了被配置为实现本发明的一个或多个方面的计算机网络100。如图所示,计算机网络100包括第一计算设备102、通信网络104和第二计算设备106。
第一计算设备102和第二计算设备106是进行数据通信的任何两个计算设备。在一个实施例中,第一计算设备102是终端用户计算设备,例如桌面计算机、膝上型计算机、移动电话、个人数字助理(PDA)或者配置成通过通信网络104进行数据通信的任何其它设备。在一个实施例中,第二计算设备106是存储诸如音频或视频数据之类的媒体内容的服务器。在一个实施例中,第二计算设备106是内容配送网络(CDN)中的服务器。尽管如此,本领域的技术人员会明白第一计算设备102和第二计算设备106可以是彼此通信的任何两个计算设备。根据一个实施例,通信网络104是因特网。
图2是根据本发明的一个实施例,图1的第一计算设备102的更详细的说明。如图所示,第一计算设备102包括中央处理单元(CPU)205、网络接口215、互连220、存储器225。第一计算设备102还可以包括将I/O设备212(例如键盘、显示器和鼠标设备)连接到第一计算设备102的输入/输出(I/O)设备接口210。
CPU205检索并执行存储在存储器225中的编程指令。类似地,CPU205存储并检索位于存储器225中的应用数据。互连220用于在CPU205、I/O设备接口210、存储设备230、网络接口215和存储器225之间传送编程指令和应用数据。所具有的CPU205可以表示单个CPU、多个CPU、具有多处理核的单个CPU等等。存储器225包括随机存取存储器(RAM)、硬盘驱动和/或闪存存储驱动。
如图所示,存储器225包括内容播放器230、安全通信模块240和更新安装模块250。在一个实施例中,内容播放器230是配置成向第一计算设备102的终端用户呈现音频或视频数据的媒体播放器。安全通信模块240包括被执行时使第一计算设备102与另一计算设备(例如第二计算设备106)通过通信网络104进行加密通信的软件。更新安装模块250包括被执行时使得内容播放器230和安全通信模块240进行更新的软件。
如图所示,内容播放器230包括版本信息235。版本信息235存储表示内容播放器230软件的当前版本的信息。在一个实施例中,版本信息235包括版本号。在另一个实施例中,版本信息235包括内容播放器230软件最后一次被修改的日期和时间。
如图所示,安全通信模块240包括秘密模块245。在一个实施例中,秘密模块245是模糊处理模块,包括第一计算设备102的终端用户不能读取或改变的数据。根据一个实施例,秘密模块245的操作的更详细的讨论结合下面图3的讨论进行。在一个实施例中,更新安装模块250还更新内容播放器230的版本信息235和安全通信模块240的秘密模块245以确保秘密模块245对应于版本信息235。
在一个实施例中,内容播放器230和安全通信模块240总是一起被更新。因此,在任何时候只要内容播放器230的版本信息235得到更新,安全通信模块240的秘密模块245也就会得到更新。
图3是根据本发明的一个实施例,图2的第一计算设备102中的安全通信模块240的更详细的说明。如图所示,安全通信模块240包括秘密模块245、第一计算设备的私有密值330、第一计算设备的公有值340、第二计算设备的公有值350、共享秘密360和消息加密/解密模块370。
秘密模块245包括发生器元素值(generator element value)310和质元素值(prime element value)320。本领域的技术人员可以理解需要这样的值来实现密码算法,例如,诸如Diffie-Hellman密钥交换算法等的密钥交换算法,或者诸如ElGamal加密算法等的加密算法,或者数字签名算法(DSA)。在一个实施例中,秘密模块245中的值,发生器元素值310和质元素值320,对应于内容播放器230的特定版本信息235。换句话说,在任何时候只要内容播放器230的版本信息235得到更新,发生器元素值310和质元素值320也就会得到更新。该技术确保秘密模块245对应于版本信息235。在一个实施例中,发生器元素值310是与质元素值320互质的前一个质数(the generator element value310is relatively primeto the prime element value320minus1)。在一个实施例中,发生器元素值310包括多于第一阈值数目的比特并且具有小于第二阈值数目的比特,其被设为1以便于使用发生器元素值310进行快速二进制计算(the generator element value 310 includes more bitsthan a first threshold number and has less than a second threshold number ofbits that are set to1in order to facilitate fast binary calculations with thegenerator element value310),从而使得发生器元素值310难以通过试错的方式得到。在一个实施例中,质元素值320大于第三阈值数目,从而通过试错的方式很难得到下面的值:质元素值320、公有值340、公有值350和共享秘密360。可是,本领域的技术人员可以理解根据加密算法、密钥交换算法或签名算法有效的任何发生器元素值310和质元素值320可以结合这里描述的技术来实现。
根据一个实施例,其中实施的密码算法是密钥交换算法,更具体地是Diffie-Hellman密钥交换算法,由安全通信模块240选择第一计算设备的私有密值330。第一计算设备的私有密值330是1和小于质元素值320的数之间的数。如这里所说明的,第一计算设备的公有值340是根据发生器元素值310、质元素值320和第一计算设备的私有密值330来确定的。第一计算设备的公有值340通过通信网络104被发送至第二计算设备106。其中,所实施的密钥交换算法是Diffie-Hellman密钥交换算法,第一计算设备的公有值340根据式(1)计算:
A=ga mod p (1)
其中,A是第一计算设备的公有值340,a是第一计算设备的私有密值330,g是发生器元素值310,p是质元素值320。
在一个实施例中,安全通信模块240还存储第二计算设备的公有值350。在一个实施例中,通过通信网络104从第二计算设备106接收第二计算设备的公有值350。此外,在一个实施例中,安全通信模块240还存储共享秘密360。如这里所说明的,根据质元素值320、第一计算设备的私有密值330和第二计算设备的公有值350计算共享秘密360。根据一个实施例,其中所实施的密钥交换算法是Diffie-Hellman密钥交换算法,共享秘密360根据式(2)计算:
s=Ba mod p (2)
其中s是共享秘密360,B是第二计算设备的公有值350,a是第一计算设备的私有密值330,p是质元素值320。
然而,本领域的技术人员会理解,可以结合这里描述的技术使用除了Diffie-Hellman密钥交换算法之外的其它密码算法。如果使用除了Diffie-Hellman密钥交换算法之外的其它密码算法,那么用于计算第一计算设备的公有值340和共享秘密360的公式可以不同于上述的式(1)-(2)。
消息加密/解密模块370配置成使用加密/解密算法和共享秘密360来加密和解密消息。
图4是根据本发明的一个实施例,图1的第二计算设备106的更详细的说明。如图所示,第二计算设备106包括中央处理单元(CPU)405、网络接口415、互连420、存储器425。第二计算设备106还可以包括将I/O设备412(例如键盘、显示器和鼠标设备)连接到第二计算设备106的输入/输出(I/O)设备接口410。
如图所示,存储器425包括内容存储430、安全通信模块440和更新传送模块450。在一个实施例中,内容存储430是配置成给第一计算设备102中包括的内容播放器230提供音频或视频数据的媒体存储。安全通信模块440包括当被执行时使得第二计算设备106与另一计算设备(例如第一计算设备102)通过通信网络104进行加密通信的软件。更新传送模块450包括:当被执行时使得内容存储430和安全通信模块440得到更新并且还使第一计算设备102上的内容播放器230和安全通信模块240得到更新的软件。
如图所示,内容存储430包括版本信息435。版本信息435存储表示内容播放器430软件的当前版本的信息。在一个实施例中,内容存储430配置成仅在内容存储430的版本信息435对应于内容播放器230的版本信息235时允许第一计算设备102上的内容播放器230下载内容。在一个实施例中,版本信息435包括版本号。在另一个实施例中,版本信息435包括与内容存储430相关联的播放器软件最后一次被修改的日期和时间。
在一个实施例中,当更新传送模块450更新安全通信模块440和内容存储430中的内容时,更新传送模块450还提供软件给第一计算设备102以更新内容播放器230和安全通信模块240二者。这样的更新保证内容存储430的版本信息435对应于第一计算设备102的内容播放器的版本信息235。此外,这样的更新保证第一计算设备102的安全通信模块240的秘密模块245中的值对应于第二计算设备106的安全通信模块440中的值。
图5是根据本发明的一个实施例,图4的第二计算设备中的安全通信模块440的更详细的说明。如图所示,安全通信模块440包括发生器元素值510、质元素值520、第二计算设备的私有密值530、第二计算设备的公有值350、第一计算设备的公有值340、共享秘密540和消息加密/解密模块550。本领域的技术人员可以理解,在一个实施例中,第二计算设备106的安全通信模块440不同于第一计算设备102的安全通信模块,不同在于第二计算设备106没有秘密模块245。代替的是发生器元素值510和质元素值520存储在非秘密模块(未示出)中。第一计算设备102上需要秘密通信模块而第二计算设备106上不需要的一个原因是终端用户访问第一计算设备102,而不是第二计算设备106。在一个实施例中,在第一计算设备102是诸如由终端用户操作的膝上型或桌面计算机或者移动电话之类的客户端计算设备,而第二计算设备106是属于媒体内容提供商的内容配送网络(CDN)中的服务器机器时采用这样的模式。
在一个实施例中,第二计算设备106上存储的发生器元素值510和质元素值520分别与第一计算设备102上存储的发生器元素值310和质元素值320相等。本领域的技术人员可以理解,需要发生器元素值510和质元素值520以实施加密算法,例如,Diffie-Hellman密钥交换算法、ElGamal加密算法或者数字签名算法(DSA)。在一个实施例中,发生器元素值510和质元素值520对应于内容存储430的特定版本信息435。换句话说,在任何时候只要内容存储430的版本信息435得到更新,发生器元素值510和质元素值520也就会得到更新。这样的技术确保发生器元素值510和质元素值520对应于版本信息435。在一个实施例中,发生器元素值510是质元素值520的互质数(the generator element value 510is relativelyprime to the prime element value520)。在一个实施例中,发生器元素值510由多于第一阈值数目的比特组成并且具有小于第二阈值数目的比特,其被设为1以便于使用发生器元素值510进行快速二进制计算(the generator element value510is comprised of morebits than a first threshold number and has less than a second thresholdnumber of bits that are set to 1 in order to facilitate binary calculationswith the generator element value510)。在一个实施例中,质元素值520大于第三阈值数目,从而通过试错的方式很难猜到下面的值:质元素值320、公有值350和共享秘密540。然而,本领域的技术人员可以理解根据加密算法有效的任何发生器元素值510和质元素值520可以结合这里描述的技术来实现。
根据一个实施例,其中实施的密钥交换算法是Diffie-Hellman密钥交换算法,由安全通信模块440选择第二计算设备的私有密值530为1和小于质元素值520的数之间的数。如这里所说明的,第二计算设备的公有值350根据发生器元素值510、质元素值520和第二计算设备的私有密值530确定。根据一个实施例,其中所实施的加密算法是Diffie-Hellman密钥交换算法,第二计算设备的公有值350根据式(3)计算:
B=gb mod p (3)
其中B是第二计算设备的公有值350,b是第二计算设备的私有密值530,g是发生器元素值510,p是质元素值520。
在一个实施例中,安全通信模块240还存储第一计算设备的公有值340。在一个实施例中,通过通信网络104从第一计算设备102接收第一计算设备的公有值340。此外,在一个实施例中,安全通信模块440还存储共享秘密540。如这里所说明的,根据质元素值520、第二计算设备的私有密值530和第一计算设备的公有值340计算共享秘密540。根据一个实施例,其中所实施的密钥交换算法是Diffie-Hellman密钥交换算法,共享秘密540根据式(4)计算:
s=Ab mod p (4)
其中s是共享秘密540,A是第一计算设备的公有值340,b是第二计算设备的私有密值530,p是质元素值520。
然而,本领域的技术人员会理解,可以结合这里描述的技术使用除了Diffie-Hellman密钥交换算法之外的其它密码算法。如果使用除了Diffie-Hellman密钥交换算法之外的密码算法,那么用于计算第二计算设备的公有值350和共享秘密540的公式可以不同于上述的式(3)-(4)。
消息加密/解密模块550被配置成使用加密/解密算法和共享秘密540来加密和解密消息。
图6是根据本发明的一个实施例,用于以模糊处理方式计算共享秘密的方法步骤的流程图。虽然这里结合图1-5描述该方法步骤,本领域的技术人员可以理解,配置成以任何顺序执行该方法步骤的任何系统都落入本发明的范围内。
方法600在步骤610开始,在步骤610安全通信模块440根据安全通信模块440中存储的至少一个初始设置值,私有密值530,以及诸如Diffie-Hellman密钥交换算法、ElGamal加密算法或者数字签名算法(DSA)等算法计算第二计算设备的公有值350。在一个实施例中,密钥交换算法是Diffie-Hellman密钥交换算法,第二计算设备的公有值350如上所述根据式(3)计算。在步骤620,安全通信模块440发送第二计算设备的公有值350给第一计算设备102的安全通信模块240。在一个实施例中,通过通信网络104从第二计算设备106发送第二计算设备的公有值350。
方法600然后继续到步骤630,在步骤630安全通信模块240接收第二计算设备的公有值350。在步骤640,安全通信模块240计算第一计算设备的私有密值330。在一个实施例中,第一计算设备的私有密值330在1和小于质元素值320的数之间。在一个实施例中,对第一计算设备的私有密值330的计算和存储进行模糊处理。
接下来,方法600继续到步骤650,在步骤650安全通信模块240根据私有密值330、第二计算设备的公有值350和质元素值320确定共享秘密360。在一个实施例中,密钥交换算法是Diffie-Hellman密钥交换算法,如上所述,根据式(2)计算共享秘密360。在一个实施例中,对第一计算设备的共享密值360的计算进行模糊处理。
在步骤660,安全通信模块240根据私有密值330、发生器元素值310和质元素值320计算第一计算设备的公有值340。在一个实施例中,对第一计算设备的公有值340的计算进行模糊处理。在步骤670,安全通信模块240通过通信网络104发送第一计算设备的公有值340给第二计算设备106。
第二计算设备106的安全通信模块440根据与上面结合图6描述的处理类似的处理确定共享秘密540。然而,根据一个实施例,一个重要的区别在于,在第二计算设备106的安全通信模块440中不存在秘密模块245。与第一计算设备102中的秘密模块245中存储的值对应的值由第二计算设备106中的安全通信模块440存储。
图7是根据本发明的一个实施例,用于验证图1的第一计算设备具有正确版本的内容播放器应用的方法步骤的流程图。虽然这里结合图1-5描述该方法步骤,本领域的技术人员可以理解,配置成以任何顺序执行该方法步骤的任何系统都落入本发明的范围内。
方法700在步骤710开始,在步骤710在第二计算设备106的安全通信模块440中包括的消息加密/解密模块550根据先前计算的共享秘密540加密消息。在步骤720消息加密/解密模块550发送加密的消息给第一计算设备102。在步骤730在第一计算设备102的安全通信模块240中包括的消息加密/解密模块370根据解密算法和通过图6中描述的技术计算的共享秘密360解密从第二计算设备106接收的加密消息。
在步骤740消息加密/解密模块550确定第一计算设备102是否正确地解密由第二计算设备106在步骤720发送的消息。如果第一计算设备102正确地解密该消息,那么该方法进行到步骤750,在步骤750继续第一计算设备102和第二计算设备106之间的通信。重要的是,如果第一计算设备102计算的共享秘密360是正确的,那么第一计算设备102就能够正确地解密第二计算设备106发送的消息。然而,如果第一计算设备102没有正确地解密该消息,那么该方法进行到步骤760,在步骤760终止第一计算设备102和第二计算设备106之间的通信。
在一个实施例中,第一计算设备102使用解密的消息作为会话密钥生成算法的输入,以产生会话密钥。然后在步骤740由第二计算设备106对该会话密钥进行证实,从而确定第一计算设备102是否正确地解密该消息。
在可替换的实施例中,第一计算设备102和第二计算设备104使用共享秘密作为会话密钥生成算法的输入,以产生会话密钥。该会话密钥用于加密102和104之间传递的消息。然后在步骤740由第二计算设备106对该会话密钥进行证实,从而确定第一计算设备102是否正确地解密该消息。
在另一个实施例中,第一计算设备102和第二计算设备106都认同该消息的值,并且如果在第一计算设备102产生的解密消息不匹配达成一致的值,那么第一计算设备102没有正确地解密该消息。在该实施例中,第一计算设备102发送错误消息给第二计算设备102,指出解密消息与达成一致的值不匹配。
本领域的技术人员可以理解,这里描述的发明方面可以应用于具有不同版本的软件程序。换句话说,任何软件程序可以替换这里描述的内容播放器应用230。
图8是根据本发明的一个实施例,用于更新图1的第一计算设备102中的内容播放器230和安全通信模块240的方法步骤的流程图。虽然这里结合图1-5描述该方法步骤,本领域的技术人员可以理解,配置成以任何顺序执行该方法步骤的任何系统都落入本发明的范围内。
方法800在步骤810开始,在步骤810第二计算设备106的更新传送模块450接收更新命令。在一个实施例中,更新命令是由第二计算设备106的管理员在他检测到第一计算设备102上的内容播放器230的软件中的安全漏洞并希望更新该软件时提供的。方法800接着进行到步骤820,在步骤820更新传送模块450更新内容存储版本信息435,并且在必要的时候更新内容存储430。接下来,方法800进行到步骤830,在步骤830更新传送模块450更新第二计算设备的安全通信模块440中的初始设置值。在一个实施例中,更新传送模块450更新发生器元素值510或质元素值520中的至少一个。
方法800接着进行到步骤840,在步骤840更新传送模块450使第一计算设备102更新内容播放器230。在一个实施例中,更新传送模块450通过通信网络104与第一计算设备102通信。
方法800接着进行到步骤850,在步骤850更新传送模块450使第一计算设备102更新安全通信模块240的秘密模块245中的初始设置值,发生器元素310和质元素值320。最后方法800进行到步骤860,在步骤860更新传送模块450使第一计算设备102更新内容播放器版本信息235以反映该更新。步骤860之后,方法800结束。
总之,所公开的技术非常广泛地提供了具有经模糊处理的初始设置值的加密算法,其确保了只有认可版本的通信软件才能够成功地加密和解密消息。更具体地,根据该技术的一个实现方式,密码算法是Diffie-Hellman密钥交换算法,初始设置值是发生器元素值和质元素值。根据该特定的实现方式,客户端计算设备下载当前版本的通信软件,其具有用于加密算法的发生器元素值和质元素值。发生器元素值和质元素值二者均存储在客户端计算设备中的秘密或模糊处理模块中,不能由客户端计算设备的用户访问或读取。
为了根据Diffie-Hellman密钥交换协议与服务器机器通信,客户端计算设备生成私有密值和公有值。根据秘密或模糊处理模块中存储的质元素值和发生器元素值以及私有密值来计算公有值。客户端计算设备然后发送公有值给服务器机器。一旦从服务器计算设备接收到公有值,客户端计算设备就根据秘密或模糊处理模块中存储的质元素值、客户端计算设备私有密值和服务器机器的公有值计算共享秘密。客户端计算设备和服务器机器之间的随后的通信根据计算的共享秘密被加密或解密。在一些实现方式中,客户端计算设备和服务器机器由于能够解密该客户端和该服务器之间的消息集暗示了还可以验证这二者都具有相同的共享秘密。
所公开的方法的一个优点是:只有客户端计算设备具有用于下载和观看媒体的、安全的并被认可的版本的软件时,客户端计算设备才能够下载具有版权的媒体的内容。结果是,具有版权的媒体内容的提供商可以更容易地确保只使用被认可和安全的媒体播放器才能用来观看提供的内容。
上文描述了本发明的一些实施例,而本发明的其它和更多实施例在不偏离本发明的基本范围的条件下也是可以想到的。例如,本发明的多个方面可以以硬件或软件或者以硬件和软件的组合实现。本发明的一个实施例可以实现为供计算机系统使用的程序产品。该程序产品的(一个或多个)程序限定了实施例(包括这里描述的方法)的功能并且能够包含在各种计算机可读存储介质上。所述的计算机可读存储介质包括,但不限于:(i)不可写存储介质(例如,计算机内的只读存储器设备,如能够由CD-ROM驱动读取的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失半导体存储器),信息可永久存储在该不可写存储介质上;(ii)可写存储介质(例如,软磁盘驱动或硬盘驱动中的软盘或任何类型的固态随机存取半导体存储器),可写存储介质上存储的信息是可变更的。这种计算机可读存储介质在执行指示本发明功能的计算机可读指令时,构成本发明的实施例。
本发明的范围由所附的权利要求确定。

Claims (9)

1.一种用于确定第一计算设备是否具有正确版本的软件程序的计算机实施的方法,所述方法包括:
根据至少一个初始设置值计算私有密值;
根据所述私有密值和至少一个初始设置值计算公有值,其中所述至少一个初始设置值包括对应于所述软件程序的特定版本信息的基准发生器值或质元素值;
发送所述公有值给第二计算设备;
从所述第二计算设备接收第二公有值;
根据从所述第二计算设备接收的所述第二公有值和所述私有密值计算共享秘密;
从所述第二计算设备接收加密的消息;
使用所述共享秘密解密所述加密的消息;
确定所述消息是否被正确解密;以及
如果所述消息被正确解密,则使所述第一计算设备和所述第二计算设备之间的通信继续进行,因为所述第一计算设备和所述第二计算设备具有相同版本的所述软件程序;
如果所述消息没有被正确解密,则使所述第一计算设备和所述第二计算设备之间的通信终止,因为所述第一计算设备和所述第二计算设备不具有相同版本的所述软件程序。
2.根据权利要求1所述的方法,其中用于加密和解密所述消息的密码算法包括Diffie-Hellman密钥交换算法、ElGamal加密算法或数字签名算法。
3.根据权利要求1所述的方法,其中所述基准发生器值的二进制表示由多于第一阈值数目的比特组成并且具有小于第二阈值数目的比特。
4.根据权利要求1所述的方法,其中所述质元素值的二进制表示由多于第三阈值数目的比特组成。
5.根据权利要求1所述的方法,其中所述加密的消息包括根据所述第二计算设备计算的共享秘密加密的原始消息。
6.根据权利要求5所述的方法,其中如果所述消息被正确解密,则所述解密的消息匹配所述原始消息,并且根据从所述第二计算设备接收的所述第二公有值计算的所述共享秘密等于由所述第二计算设备计算的所述共享秘密。
7.根据权利要求1所述的方法,其中所述第二计算设备确定所述消息是否被正确解密并且使所述第一计算设备和所述第二计算设备之间的通信继续进行或终止。
8.根据权利要求1所述的方法,其中对由所述第一计算设备进行的所述私有密值、所述公有值和所述共享秘密的所述计算是经过模糊处理的。
9.一种第一计算设备,包括:
处理单元,其配置成:
根据至少一个初始设置值计算私有密值;
根据所述私有密值和至少一个初始设置值计算公有值,其中所述至少一个初始设置值包括对应于软件程序的特定版本信息的基准发生器值或质元素值;
发送所述公有值给第二计算设备;
从所述第二计算设备接收第二公有值;
根据从所述第二计算设备接收的所述第二公有值和所述私有密值计算共享秘密;
从所述第二计算设备接收加密的消息;
使用所述共享秘密解密所述加密的消息;以及
确定所述消息是否被正确解密,其中
如果所述消息被正确解密,则所述第一计算设备和所述第二计算设备之间的通信继续进行,因为所述第一计算设备具有正确版本的软件程序;
如果所述消息没有被正确解密,则所述第一计算设备和所述第二计算设备之间的通信终止,因为所述第一计算设备不具有正确版本的软件程序。
CN201280036431.2A 2011-07-22 2012-07-19 用于模糊处理密码协议的初始值的系统和方法 Active CN103703718B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/189,437 US8782420B2 (en) 2011-07-22 2011-07-22 System and method for obfuscation initiation values of a cryptography protocol
US13/189,437 2011-07-22
PCT/US2012/047448 WO2013016141A1 (en) 2011-07-22 2012-07-19 System and method for obfuscating initiation values of a cryptography protocol

Publications (2)

Publication Number Publication Date
CN103703718A CN103703718A (zh) 2014-04-02
CN103703718B true CN103703718B (zh) 2017-06-27

Family

ID=47556662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280036431.2A Active CN103703718B (zh) 2011-07-22 2012-07-19 用于模糊处理密码协议的初始值的系统和方法

Country Status (9)

Country Link
US (2) US8782420B2 (zh)
EP (1) EP2735117B1 (zh)
JP (2) JP2014522171A (zh)
KR (1) KR101579696B1 (zh)
CN (1) CN103703718B (zh)
AU (1) AU2012287219B2 (zh)
CA (1) CA2844359C (zh)
DK (1) DK2735117T3 (zh)
WO (1) WO2013016141A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2625820B1 (en) * 2010-10-08 2021-06-02 Brian Lee Moffat Private data sharing system
US9143318B1 (en) * 2013-03-11 2015-09-22 Emc Corporation Secure recoverable offline storage of a shared secret
KR101951201B1 (ko) * 2016-11-09 2019-02-25 주식회사 엔오디비즈웨어 보안 기능을 수행하는 애플리케이션의 작동 방법과 상응하는 애플리케이션
KR102101614B1 (ko) * 2019-01-22 2020-04-17 주식회사 엔오디비즈웨어 보안 기능을 수행하는 애플리케이션의 작동 방법과 상응하는 애플리케이션
KR102180691B1 (ko) * 2020-04-07 2020-11-19 주식회사 소버린월렛 보안 기능을 수행하는 기록 매체에 저장된 애플리케이션과 전자 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298153B1 (en) * 1998-01-16 2001-10-02 Canon Kabushiki Kaisha Digital signature method and information communication system and apparatus using such method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) * 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
JPH01145049A (ja) * 1987-12-02 1989-06-07 Hitachi Medical Corp Mri装置用電磁波シールド室
JPH1145049A (ja) * 1997-07-24 1999-02-16 Matsushita Electric Ind Co Ltd 暗号装置
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US7310735B1 (en) 1999-10-01 2007-12-18 International Business Machines Corporation Method, system, and program for distributing software between computer systems
JP2003202931A (ja) * 2002-01-09 2003-07-18 Toshiba Corp ソフトウェアダウンロードシステム、サーバ装置、端末装置、サーバ制御プログラム、端末制御プログラム、サーバ制御方法、端末制御方法
CA2369304A1 (en) * 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
CN101241735B (zh) * 2003-07-07 2012-07-18 罗威所罗生股份有限公司 重放加密的视听内容的方法
US7992193B2 (en) * 2005-03-17 2011-08-02 Cisco Technology, Inc. Method and apparatus to secure AAA protocol messages
JP4688886B2 (ja) 2006-01-11 2011-05-25 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム
CN101491000B (zh) * 2006-07-12 2011-12-28 耶德托公司 用于混淆密码函数的方法和系统
US8082452B2 (en) 2006-12-06 2011-12-20 George Mason Intellectual Properties, Inc. Protecting sensitive data associations
WO2008071795A2 (en) * 2006-12-15 2008-06-19 Boesgaard Soerensen Hans Marti Digital data authentication
US20080147555A1 (en) 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US8661552B2 (en) 2007-06-28 2014-02-25 Microsoft Corporation Provisioning a computing system for digital rights management
US8462954B2 (en) * 2008-05-30 2013-06-11 Motorola Mobility Llc Content encryption using at least one content pre-key
WO2010090664A1 (en) 2009-02-05 2010-08-12 Wwpass Corporation Centralized authentication system with safe private data storage and method
JP5262941B2 (ja) * 2009-04-10 2013-08-14 ソニー株式会社 認証装置、認証方法、及びプログラム
WO2011064883A1 (ja) * 2009-11-27 2011-06-03 株式会社東芝 メモリチップ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298153B1 (en) * 1998-01-16 2001-10-02 Canon Kabushiki Kaisha Digital signature method and information communication system and apparatus using such method

Also Published As

Publication number Publication date
KR101579696B1 (ko) 2015-12-22
EP2735117B1 (en) 2018-09-19
AU2012287219B2 (en) 2015-07-09
AU2012287219A1 (en) 2014-02-13
US20150019865A1 (en) 2015-01-15
US8782420B2 (en) 2014-07-15
US20130024697A1 (en) 2013-01-24
JP2014522171A (ja) 2014-08-28
CN103703718A (zh) 2014-04-02
JP2016129403A (ja) 2016-07-14
WO2013016141A1 (en) 2013-01-31
US10972439B2 (en) 2021-04-06
DK2735117T3 (en) 2019-01-07
CA2844359A1 (en) 2013-01-31
EP2735117A4 (en) 2015-04-15
CA2844359C (en) 2018-12-04
EP2735117A1 (en) 2014-05-28
KR20140040272A (ko) 2014-04-02

Similar Documents

Publication Publication Date Title
CN103339957B (zh) 用于在开放的计算平台内构造硬件信任根并且提供受保护的内容处理的方法和装置
EP1942430B1 (en) Token Passing Technique for Media Playback Devices
CN109379387B (zh) 一种物联网设备间的安全认证和数据通信系统
NZ567846A (en) Authentication between device and portable storage for digital rights management (DRM)
US9178881B2 (en) Proof of device genuineness
CN101142599A (zh) 基于硬件识别的数字权利管理系统
CN101084482A (zh) 电子软件分配方法及使用以硬件识别为基础的数字权利管理方法的系统
JP2005057435A (ja) クライアント機器及びクライアント機器におけるコンテンツ処理方法、並びにコンテンツ提供システム
CN103703718B (zh) 用于模糊处理密码协议的初始值的系统和方法
JP2021525030A (ja) ユーザ保護ライセンス
US20090210720A1 (en) Method for generating one-time password
US20220407690A1 (en) Key ladder generating a device public key
CN106357659B (zh) 一种云存储认证系统、方法及数据传输方法
KR100737173B1 (ko) 일회용 암호 발생기 및 일회용 암호 발생기를 이용한 인증장치
JP2002247021A (ja) アクセス制限付コンテンツ表示方法およびその装置
EP4016921A1 (en) Certificate management method and apparatus
US20200311228A1 (en) Reducing software release date tampering by incorporating software release date information into a key exchange protocol
JP2008294861A (ja) 鍵管理方法及びシステム及びサービス提供センタ装置及びicカード及びプログラム
JP6108012B2 (ja) 情報配信システム、情報処理装置及びプログラム
KR100959380B1 (ko) 플래시 컨텐츠 제공 방법
CN114556344A (zh) 在加密协同处理器中执行针对实体特定的加密代码
JP2003317235A (ja) 複数原盤を用いた磁気記録媒体の作成方法、コンテンツ受配信方法、並びに、磁気記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant