[go: up one dir, main page]

CN114761952B - 提供安全联合机器学习的技术 - Google Patents

提供安全联合机器学习的技术 Download PDF

Info

Publication number
CN114761952B
CN114761952B CN201980102752.XA CN201980102752A CN114761952B CN 114761952 B CN114761952 B CN 114761952B CN 201980102752 A CN201980102752 A CN 201980102752A CN 114761952 B CN114761952 B CN 114761952B
Authority
CN
China
Prior art keywords
data
entity
project
machine learning
computing device
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
CN201980102752.XA
Other languages
English (en)
Other versions
CN114761952A (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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Publication of CN114761952A publication Critical patent/CN114761952A/zh
Application granted granted Critical
Publication of CN114761952B publication Critical patent/CN114761952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/3247Cryptographic 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 involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明的实施例涉及用于安全地执行联合任务(例如,机器学习模型的生成和利用)的系统、方法和装置。安全平台计算机可以操作安全存储器空间。参与联合项目的实体可以发送定义所述联合项目的项目数据的相应部分。每个实体可以为所述项目提供它们各自的(加密)数据集,所述数据集又可以用来根据所述项目数据生成机器学习模型。所述机器学习模型可以存储在所述安全存储器空间中,并且通过由所述安全平台计算机提供的接口访问。利用本文中所论述的技术,可以生成机器学习模型,并且可以限制对这些模型的访问,同时保护每个参与者的数据集不暴露给其它项目参与者。

Description

提供安全联合机器学习的技术
相关申请交叉引用
无。
背景技术
机器学习算法用于各种背景。通常,如果多个实体希望训练和利用机器学习模型,则它们将需要交换其数据。虽然这些实体可能有充分的理由彼此合作以生成机器学习模型,但让每个实体有权访问其它实体的数据可能是不利或不可取的。取决于所使用的数据类型,共享此类数据可能会引起隐私问题。可能存在机器学习之外的额外背景,其中多个实体可能希望在不交换它们各自数据的情况下执行任务。
本公开的实施例单独地以及共同地解决了这些和其它问题。
发明内容
本发明的一个实施例涉及一种方法。所述方法可包括由安全平台计算机操作安全存储器空间,接收对应于涉及第一实体和第二实体的分布式项目的项目数据的第一部分和第二部分。在一些实施例中,项目数据的第一部分可对应于第一实体,并且项目数据的第二部分对应于第二实体。所述方法还可包括由安全平台计算机接收第一实体的第一数据集和第二实体的第二数据集。所述方法还可包括由安全平台计算机至少部分地基于第一数据集、第二数据集和项目数据生成机器学习模型。所述方法还可包括由安全平台计算机向第一实体和第二实体提供对机器学习模型的访问,机器学习模型存储在安全存储器空间内。
本发明的另一实施例涉及一种计算装置,所述计算装置包括一个或多个处理器以及操作安全存储器空间的安全平台计算机。安全存储器空间可包括计算机可执行指令,所述指令在由一个或多个处理器执行时使安全平台计算机执行操作。所述操作可包括接收对应于涉及第一实体和第二实体的分布式项目的项目数据的第一部分和第二部分。在一些实施例中,项目数据的第一部分对应于第一实体,并且项目数据的第二部分对应于第二实体。所述操作还可包括接收第一实体的第一数据集和第二实体的第二数据集。所述操作还可包括至少部分地基于第一数据集、第二数据集和项目数据生成机器学习模型。所述操作还可包括向第一实体和第二实体提供对机器学习模型的访问,机器学习模型存储在安全存储器空间内。
有关本发明的实施例的更多详细信息可见于具体实施方式和附图。
附图说明
图1示出了根据一些实施例的用于执行安全联合任务的系统的框图。
图2示出根据一些实施例的示例性安全平台计算机的框图。
图3示出流程图,示出了根据一些实施例的用于安全交换密钥的方法。
图4示出流程图,示出了根据一些实施例的用于安全定义项目的方法。
图5示出流程图,示出了根据一些实施例的用于安全提供联合项目的数据集的方法。
图6示出流程图,示出了根据一些实施例的用于执行联合任务的方法。
图7示出流程图,示出了根据一些实施例的用于利用联合机器学习模型的方法。
图8示出框图,示出了根据至少一个实施例的示例性不可变分类账800。
图9示出框图,示出了交易处理系统。
具体实施方式
本发明的实施例涉及利用安全平台计算机执行联合任务。在一些实施例中,任务可以涉及生成和利用机器学习模型。尽管本文中的实例涉及其中生成机器学习模型的情况,但应了解,安全平台计算机可用于除机器学习之外的其它背景中,以便为两个或更多个实体提供安全任务执行环境。
两个或更多个实体可以利用本文公开的安全平台计算机来定义项目并提供它们各自的项目数据。来自每个实体的项目数据可以由安全平台计算机存储在安全存储器空间(例如,由安全平台计算机的芯片组管理的飞地)中。在一些实施例中,此安全存储器空间可仅可由芯片组和/或在安全存储器空间内执行的应用程序和/或模块访问,且不可由其它进程和/或系统访问。通过利用安全平台计算机,每个实体都可以为项目做出贡献,同时确保其数据保密。
在论述本发明的具体实施例之前,可详细描述一些术语。
术语“计算装置”通常指执行计算的装置。计算装置也可以提供与网络的远程通信能力。远程通信能力的实例包括使用移动电话(无线)网络、无线数据网络(例如3G、4G或类似网络)、Wi-Fi、Wi-Max或可提供对因特网或专用网络等网络的访问的任何其它通信介质。用户装置的实例包括移动电话(例如,蜂窝电话)、PDA、平板计算机、上网本、笔记本电脑、个人音乐播放器、手持式专用读取器等。用户装置的其它实例包括可穿戴装置,例如智能手表、健身手环、踝链、戒指、耳环等,以及具有远程通信能力的汽车。用户装置可以包括用于执行此类功能的任何合适硬件和软件,且还可以包括多个装置或组件(例如,当装置通过网络共享到另一装置--即将另一装置用作调制解调器--而能够远程访问网络时,联系在一起的两个装置可以被认为是单个用户装置)。
“联合项目”(也称为“项目”)是由两个或多个实体计划和设计以实现特定目标的合作企业。
“安全平台计算机”可以包括一个或多个计算装置。在一些实施例中,安全平台计算机可以是大型主机、小型计算机集群或作为单元运行的一组服务器计算机。安全平台计算机可耦合到一个或多个数据库,且可包括用于服务来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑或前述内容的组合。安全平台计算机可以包括一个或多个计算设备,且可以使用多种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机/应用程序的请求。在一些实施例中,安全平台计算机可以被配置成管理一个或多个安全存储器空间。
“安全存储器空间”可包括存储器的隔离区,其仅运用在相同安全存储器空间内执行的代码来访问。安全存储器空间可由芯片组初始化并管理,使得安全存储器空间的内容通过仅芯片组已知的专用密钥来以密码方式进行散列。安全存储器空间的内容可受保护以甚至免于例如虚拟机、监视器、BIOS或操作系统的特权软件的影响。芯片组可对访问安全存储器空间中的内容推行访问控制。
“软件保护扩展”(SGX)是部分中央处理单元(CPU)所内置的一组安全相关指令代码。这些保护扩展允许用户级和操作系统代码定义称为“飞地”的存储器的私有区(例如,每个安全存储器空间的实例),其内容受到保护,且无法在飞地本身之外的任何进程中读取或保存,包括以较高权限级别运行的进程。SGX可能涉及由飞地的CPU加密。飞地仅在CPU本身内快速解密,甚至仅在飞地本身内运行的代码和数据中解密。除加密形式外,飞地内容无法通过飞地以外的任何代码读取。
术语“芯片组”可包括集成电路中的一组电子组件,其管理计算装置的处理器、存储器及外围装置之间的数据流。芯片组可包括可经过执行以初始化并管理对任何数目个安全存储器空间的访问的代码。
“受保护应用程序”或“受保护模块”可包括在安全存储器空间内执行的软件应用程序或模块。受保护应用程序和/或模块的功能性的执行可由芯片组管理,使得应用程序和/或模块的功能/方法调用可访问安全存储器空间中所含有的数据。
“客户端计算机”可以是由客户端或代表客户端操作的计算装置。客户端可以是任何合适的实体。“实体”可包括个人、公司、金融机构、研究组织、医疗组织等。
“密码密钥”可以包括用于密码算法中以将输入数据变换为另一表示的一条信息。密码算法可以是将原始数据变换成替代表示的加密算法,或将加密信息变换回到原始数据的解密算法。密码算法的实例可包括三重数据加密标准(TDES)、数据加密标准(DES)、高级加密标准(AES)等。
“密码密钥对”可以包括一对链接的密码密钥。例如,密钥对可包括公钥和对应的私钥。在密码密钥对中,第一密码密钥(例如,公钥)可以用于对消息进行加密,而第二密码密钥(例如,私钥)可以用于对加密的消息进行解密。另外,公钥能够验证用对应的私钥创建的数字签名。公钥可以分布在整个网络中,以便能够验证使用对应私钥签名的消息。公钥和私钥可以呈任何适当的格式,包括基于RSA或椭圆曲线密码学(ECC)的格式。在一些实施例中,可以使用非对称密钥对算法来生成密钥对。
“不可变分类账”可以指不可改变的交易分类账。不可变分类账的实例可以是“区块链分类账”。“区块链分类账”是根据区块链协议维护的一系列记录。区块链分类账的完整副本可包括系统执行的每个交易。分类账中的每一条目(例如,块)可包含前一个条目的散列。这具有创建从创始块到当前块的一系列块的效果。每一块都保证按时间顺序在前一个块之后,因为前一个块的散列不会以其它方式被知晓。每一块一旦已经处于所述一系列块中一段时间,在计算上进行修改也是不切实际的,因为所述块之后的每个块也必须重新生成。这些性质使得区块链分类账相对安全且防篡改。
“项目数据”可以是定义两个或更多个实体之间的项目的任何合适的数据。例如,项目数据可包括定义任务(例如,使用一个或多个机器学习算法训练和/或维护机器学习模型)的许可使用信息,定义由一个或多个对应实体提供的数据组织或结构的一个或多个架构,定义由一个实体提供的数据集可如何变换为不同格式的变换数据,或可用于定义项目和/或与项目相关联的一个或多个操作的任何合适数据。
“许可使用信息”可包括定义对应于一个或多个实体的一个或多个数据集的许可使用的任何合适信息。
“架构”可指定义数据组织或结构的一个或多个文档。架构可以呈任何合适的格式。例如,可以用例如XML的加价语言提供架构以定义对象、数据类型/结构、应用程序接口等。
“使用策略”可以包括定义如何使用特定数据的一个或多个规则。使用策略可以包括用于限制一个或多个许可使用之外的数据使用的一个或多个规则(例如,如一个或多个实体提供的对应许可使用信息中所提供)。
“机器学习算法”可用于基于称为“训练数据”的样本数据来构建数学模型,以便作出明确编程以执行任务的预测或决策。一些机器学习算法包括监督学习算法(例如,分类算法、回归算法、决策树、随机森林等,其利用标记的训练数据)、半监督学习算法(例如,利用训练数据的算法,其中一些训练实例被标记,而一些训练实例未被标记)、无监督学习算法(例如,集群分析算法、k-最近邻算法、优先算法等)、强化学习算法(例如,马尔可夫决策过程等)。
“机器学习模型”可以是现实世界过程的数学表示。在一些实施例中,机器学习模型是利用训练数据和机器学习算法生成(例如,训练的)的数学模型。一些实例模型包括人工神经网络、递归神经网络、决策树、贝叶斯网络等。
“任务请求”可以是指示对任务执行的请求的数据。任务请求可以呈任何合适的形式。
“输出请求”可以是指示对输出数据的请求的数据。输出请求可以是任务请求的类型,并且可以呈任何合适的形式。
“应用程序编程接口”(API)可以是客户端与服务器之间的接口或通信协议。在一些实施例中,应用程序编程接口可以定义特定请求和对应响应的格式。API可以采用多种形式,但是通常可以包括用于例程、数据结构、对象类别、变量和/或远程调用的规范。API可用于基于网络的系统、操作系统、数据库系统、计算机硬件和/或软件库,仅举几例。
“证明过程”可以指用于验证数据存在和/或有效的过程。证明的目的是向远程方证明操作系统和/或应用程序软件是完整和可信的。
“存储器”可以是能够存储电子数据的任何合适的一个或多个装置。合适的存储器可以包括存储指令的非瞬态计算机可读介质,所述指令能够由处理器执行以实施期望的方法。存储器的实例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电、光和/或磁操作模式来操作。
“处理器”可指任何合适的一个或多个数据计算装置。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似处理器。
“服务器计算机”可包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群,或者像单元一样工作的一组服务器。在一个实例中,服务器计算机可以是与网络服务器耦合的数据库服务器。服务器计算机可以耦合到数据库,并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑或前述各项的组合。服务器计算机可以包括一个或多个计算设备,且可以使用多种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。
“支付凭证”可包括与账户(例如,支付账户和/或与账户相关联的支付装置)相关联的任何合适的信息。此类信息可以与账户直接相关,或可以源自与账户相关的信息。账户信息的实例可以包括PAN(主账号或“账号”)、用户名、到期日期、CVV(卡验证值)、dCVV(动态卡验证值)、CVV2(卡验证值2)、CVC3卡验证值等等。CVV2通常被理解为是与支付装置相关联的静态验证值。CVV2值通常对用户(例如,消费者)可见,而CVV和dCVV值通常嵌入存储器或授权请求消息中,用户不容易知道(尽管它们对发行方和支付处理器是已知的)。支付凭证可以是标识支付账户或与支付账户相关联的任何信息。可以提供支付凭证以便从支付账户进行支付。支付凭证还可以包括用户名、到期日期、礼品卡号或代码以及任何其它合适的信息。
“资源提供商”可以是可提供例如商品、服务、信息和/或访问之类的资源的实体。资源提供商的实例包括商家、访问装置、安全数据访问点等。“商家”通常可以是参与交易并且可以出售商品或服务或提供对商品或服务的访问的实体。资源提供商可以操作计算机以执行操作,所述计算机通常也可以被称为“资源提供商计算机”。
“收单方”通常可以是与特定商家或其它实体具有业务关系的业务实体(例如,商业银行)。一些实体可执行发行方和收单方两者的功能。一些实施例可涵盖此类单个实体发行方-收单方。收单方可操作收单方计算机,其一般也可以被称为“传输计算机”。
“授权实体”可以是授权请求的实体。授权实体的实例可以是发行方、政府机构、文档存储库、访问管理员等。“发行方”通常可以指维护用户账户的商业实体(例如,银行)。发行方也可以向消费者发行存储在例如蜂窝电话、智能卡、平板计算机或膝上型计算机之类的用户装置上的支付凭证。授权实体可以操作计算机以执行操作,所述计算机通常也可以被称为“授权实体计算机”。
“访问装置”可以是提供对远程系统的访问的任何合适的装置。访问装置还可以用于与商家计算机、交易处理计算机、认证计算机或任何其它合适的系统通信。访问装置通常可位于任何合适的位置处,例如位于商家所在位置处。访问装置可以采用任何合适形式。访问装置的一些实例包括POS或销售点装置(例如,POS终端)、蜂窝电话、PDA、个人计算机(PC)、平板PC、手持式专用读取器、机顶盒、电子现金出纳机(ECR)、自动柜员机(ATM)、虚拟现金出纳机(VCR)、查询一体机、安全系统、访问系统等。访问装置可以使用任何合适的接触或非接触操作模式,以向用户移动装置发送或从其接收数据或与用户移动装置相关联。在访问装置可以包括POS终端的一些实施例中,可使用任何合适的POS终端并且其可以包括读取器、处理器和计算机可读介质。读取器可以包括任何合适的接触或非接触操作模式。例如,示例性读卡器可以包括射频(RF)天线、光学扫描仪、条形码读取器或磁条读取器,以与支付装置和/或移动装置交互。在一些实施例中,用作POS终端的蜂窝电话、平板计算机或其它专用无线装置可被称为移动销售点或“mPOS”终端。
“授权请求消息”可以是请求对交易的授权的电子消息。在一些实施例中,授权请求消息被发送给交易处理计算机和/或支付卡的发行方,以请求交易授权。根据一些实施例的授权请求消息可符合ISO8583,这是针对交换与用户使用支付装置或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消息可以包括可与支付装置或支付账户相关联的发行方账户标识符。授权请求消息还可以包括与“交易数据”对应的额外数据元素,仅例如,包括:服务代码、CVV(卡验证值)、dCVV(动态卡验证值)、PAN(主账号或“账号”)、支付令牌、用户名、到期日期等等。授权请求消息可以包括额外的“交易数据”,例如与当前交易相关联的任何信息,例如交易金额、商家标识符、商家位置、收单方银行标识号(BIN)、卡片接受器ID、标识所购买的项目的信息等以及可用以确定是否标识和/或授权交易的任何其它信息。
“授权响应消息”可以是响应于授权请求的消息。在一些情况下,授权响应消息可以是由发行金融机构或交易处理计算机生成的对授权请求消息的电子消息应答。仅例如,授权响应消息可以包括以下状态指示符中的一个或多个:批准--交易被批准;拒绝--交易未被批准;或呼叫中心--响应未决的更多信息,商家必须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,所述授权代码可以是信用卡发行银行响应于电子消息中的授权请求消息(直接地或通过交易处理计算机)返回到商家的访问装置(例如,POS设备)的指示交易被批准的代码。所述代码可以充当授权的证据。如上所述,在一些实施例中,交易处理计算机可以向商家生成或转发授权响应消息。
图1示出了根据一些实施例的用于执行安全联合任务(例如,项目)的系统100的框图。在一些实施例中,联合任务可包括利用任何合适的机器学习算法生成(也称为“训练”)机器学习模型,但联合任务可包括任何合适的处理。系统100可包括安全平台计算机102、计算装置104和计算装置106。在一些实施例中,系统100可包括对应于任何合适数目的客户端的任何合适数目的计算装置。客户端A和客户端B仅用于说明,且无意限制可与安全平台计算机102交互以执行给定联合任务的客户端的数目。
安全平台计算机102可包括任何合适数目的模块以执行本文所述功能。如所描绘的,安全平台计算机102包括密钥管理模块107、项目管理模块108、数据管理模块110、模型管理模块112、通知模块114、模型输入模块116和证明模块118。在一些实施例中,安全平台计算机102可以管理安全存储器空间,例如飞地120。安全平台计算机102可以被配置成将密码密钥、项目数据和模型分别存储在对应的数据存储区122、124和126中。数据存储区122、124、126可以表示单独的数据存储区,或者此类数据可以存储在组合数据存储区中。
安全平台计算机102可以在飞地120内操作多个受保护的模块,例如密钥管理器128、项目管理模块130、数据处理模块132、模型生成器134和模型处理模块136,但每个模块的功能可以任何合适方式组合。飞地120内的模块和数据存储区可以被保护(例如,加密),使得仅安全平台计算机102的芯片组可以访问那些模块和/或数据存储区。飞地120可以是安全存储器空间的实例。
安全平台计算机102可以暴露任何合适数目的用户界面(UI)和/或应用程序编程接口(API),以用于触发在飞地120内提供的模块的功能性。例如,客户端载入UI/API 140可包括用于向密钥管理模块107提供数据的UI和/或API。在一些实施例中,每个客户端装置(例如,计算装置104、计算装置106)可以被配置成生成公/私钥对(例如,分别为密钥150和152),并且经由客户端载入UI/API 140将其公钥提供给密钥管理模块107。同样,安全平台计算机102还可被配置成生成公/私钥对。在一些实施例中,每个计算装置(例如,计算装置104)与安全平台计算机102之间的通信可以经由传输层安全(TLS)协议来保护。利用TLS协议可以在计算装置104(或计算装置106)与安全平台计算机102之间提供隐私和数据完整性。使用TLS协议,经由客户端载入UI/API 140传输的数据(例如,计算装置的公钥)可能是安全的,因为计算装置与安全平台计算机102之间的TLS连接使用对称加密法(例如,计算装置和安全平台计算机102已知的并在连接建立时协商的共享秘密)来加密发送的数据而成为私用的。
密钥管理模块107可以接收计算装置104的公钥的加密版本(例如,第一公钥)。密钥管理模块107可以解密公钥,并将公钥发送到密钥管理器128,或者密钥管理模块可以将加密的公钥和共享秘密发送到密钥管理器128以进行解密。一旦密钥管理器128已经获得公钥的解密版本,密钥管理器128就可以将客户端标识符(例如,字母数字标识符)分配给计算装置104,并将解密的密钥存储在数据存储区122中作为与客户端标识符相关联。密钥管理器128和/或密钥管理模块107可被配置成(例如,经由通知模块114)提供所提供的密钥在密钥管理器128中成功和/或未成功地注册(例如,由所述密钥管理器存储)的反馈。任何合适的实体(例如,客户端B)可以利用类似的过程,以便向密钥管理模块107提供实体的公钥(例如,对应于客户端B的第二公钥)以最终解密并存储在数据存储区122中。在一些实施例中,安全平台计算机102的公钥可以由安全平台计算机102经由对应的安全连接提供给计算装置104和106(或与项目参与者/实体相关联的任何合适的装置),并存储在计算装置104和106处以供后续使用。安全平台计算机102的公钥可分别经由客户端API 154和156接收。
在一些实施例中,客户端A可以利用计算装置104开始定义项目。项目可包括联合任务。作为非限制性实例,客户端A和客户端B可能希望使用每个客户端已知的数据的组合来联合训练机器学习模型。客户端A或B(例如,客户端A)可以利用它们各自的计算装置来访问项目设置UI/API 142,以将项目数据的至少一部分提供到项目管理模块108。例如,客户端A可以提供项目数据的第一部分(例如,对应于客户端A的项目数据),并且客户端B可以提供项目数据的第二部分(例如,对应于客户端B的项目数据)。客户端A可以是第一实体的实例,并且客户端B可以是第二实体的实例。在一些实施例中,可以使用数据提供者的私钥(例如,客户端A的私钥用于客户端A的数据,客户端B的私钥用于客户端B的数据等)对经由项目设置UI/API 142提供的任何数据进行数字签名。在一些实施例中,可以生成数字签名并将其用作JSON Web签名。“JSON Web签名”是IEFT提出的对任意数据进行签名的标准。在一些实施例中,项目数据可包括项目标识符(例如,由客户端定义)、提供实体的客户端标识符(例如,客户端A的标识符)、参与项目的其它实体的一个或多个客户端标识符(例如,客户端B的标识符)、一个或多个架构(也称为“数据字典”)、用于将以一种格式提供的数据转换为另一种格式的一个或多个变换规则、数据使用策略(例如,允许/限制使用客户端数据的一个或多个规则)、一个或多个选定的机器学习算法、性能目标(例如,阈值,所述阈值指示90%的准确性),或可用于定义/描述提供实体数据、项目或将如何使用和/或格式化提供实体的数据以用于项目的任何合适的数据。在一些实施例中,项目数据可以包括到期日期,在此日期之后,客户端的数据可能不再用于项目。在到期后,客户端的数据可从系统中删除。
作为非限制性实例,客户端A(例如,第一实体)可以提供项目数据的第一部分,其包括客户端A的客户端标识符、表示客户端B预期将参与项目的客户端B的客户端标识符、对应于客户端A的数据的一个或多个架构、客户端A使用的一个或多个变换规则、指示客户端A的数据不用于特定机器学习算法(例如,集群算法)的数据使用策略,选定的机器学习算法(例如,特定分类算法),以及90%的性能目标。
在一些实施例中,项目管理模块108可以从每个实体接收项目数据的一部分(例如,来自客户端A的项目数据,称为第一部分),并且可以将项目数据(和/或项目数据的每个部分)提供给项目管理模块130。项目管理模块130可以被配置成通过验证数字签名是由提供实体(例如,客户端A)利用存储在数据存储区122中且与提供实体相关联的公钥提供的来验证项目数据的来源和数据的完整性。如果数字签名被验证(例如,确定项目数据未被修改并且实际上已经由提供实体发送),则项目管理模块130可以被配置成将项目数据存储在数据存储区124中以供后续使用。如果客户端未提供项目标识符,则项目管理模块130可生成项目的项目标识符。安全平台计算机102与计算装置104和106之间的任何后续数据交换可以包括项目的项目标识符。在一些实施例中,项目管理模块130可以被配置成生成用于允许或限制提供实体数据的使用的一个或多个使用策略。在一些实施例中,使用策略可包括允许或限制使用由实体提供的数据的一个或多个规则。在一些实施例中,一个或多个使用策略可以作为从提供实体接收的项目数据的一部分提供。也可将一个或多个使用策略存储在数据存储区124中以供后续使用。
在一些实施例中,当项目数据指示将参与项目的一个或多个额外实体时,项目管理模块108可以被配置成使通知模块114向每个额外实体提供一个或多个通知。由安全平台计算机102提供的任何通知可以由计算装置(例如,计算装置106)经由客户端API(例如,客户端API 156)接收。在一些实施例中,通知可包括实体(例如,客户端A)先前提供的项目数据的任何合适组合。作为非限制性实例,如果客户端A发起项目,并指示客户端B将参与所述项目(例如,通过包括客户端B的电子邮件地址、手机号码等联系信息),则通知模块114可以被配置成使通知被发送至客户端B(例如,使用客户端A提供的客户端B的联系信息,经由客户端API 156、经由电子邮件、文本消息等),指示已请求客户端B为所述项目提供额外的项目数据。通知可以呈现客户端A提供的任何或所有项目数据。在一些实施例中,项目数据可以包括项目标识符。
客户端B(和任何其它额外实体)可以上文所论述的类似方式利用项目设置UI/API142,以便提供额外项目数据(例如,对应于客户端B的项目数据的第二部分)。例如,客户端B可提供其自身的项目数据,包括但不限于,一个或多个架构/数据字典、用于将客户端B提供的数据转换为另一格式的一个或多个转换规则、数据使用策略(例如,使用客户端B的数据的一个或多个规则)、一个或多个选定的机器学习算法、性能目标(例如,阈值,所述阈值指示90%的准确性),或可用于标识/定义客户端B的数据、任务、或如何使用和/或格式化以使用客户端B的数据以执行任务的任何合适的数据。客户端B可类似地定义其数据将从系统中删除的到期日期。
在一些实施例中,项目数据可以与客户端B的项目标识符和客户端标识符一起发送,指示这部分项目数据由客户端B提供且与客户端B相关联。客户端B提供的项目数据可以经过数字签名(例如,用客户端B的私钥)。项目管理模块108可以从项目设置UI/API 142接收项目数据和数字签名,并将客户端B的项目数据和数字签名提供给项目管理模块130。项目管理模块108可以通过利用存储在数据存储区122中且与客户端B相关联的公钥验证数字签名来验证数据的来源和数据的完整性。如果验证了数字签名(例如,项目数据被确定为未被修改且实际上已被客户端B发送),则项目管理模块130可以被配置成将项目数据存储在数据存储区124中以供后续使用。在一些实施例中,项目管理模块130可以被配置成生成用于允许或限制客户端B数据的使用的一个或多个使用策略。在一些实施例中,可以在项目数据中提供一个或多个使用策略。也可将一个或多个使用策略存储在数据存储区124中以供后续使用。
应了解,如果项目数据中存在任何差异,则可以通知参与项目的任何合适数目的实体,和/或可将其它实体意图以特定方式利用所述数据通知到所述实体。例如,客户端A可选择特定机器学习算法,并且客户端B可选择相同和/或不同的机器学习算法,项目管理模块130可使通知模块114向客户端A和B提供通知,通知它们其它实体对数据的预期用途(例如,其它实体的定义任务)。在一些实施例中,可以向接收此类通知的实体提供选项,以允许项目按定义前进或限制其它实体使用安全平台计算机102执行定义任务。例如,客户端A可以允许使用或拒绝使用其数据来使用客户端B指示的算法训练机器学习模型。这些选项选择可以由通知模块114接收和处理。如果接收到拒绝,则通知模块114可以触发项目管理模块108以请求客户端B以特定方式修改项目数据(例如,选择不同的机器学习模型)。一旦项目的所有实体都提供了数据并且不存在未解决的差异,项目管理模块130就可以使通知模块114向参与实体提供项目已被定义和/或参与者可以上传它们各自数据集的通知。因此,可以将项目的其它参与者的预期任务和数据使用通知到参与项目的每个客户端,并明确授予或拒绝其数据用于此类目的。
在一些实施例中,客户端A和B可以利用数据上传UI/API 144来提供它们各自的数据集。在一些实施例中,计算装置104和106可以分别配置有客户端数据加密模块158和160。客户端数据加密模块158和160可以用来发送相应客户端的数据集,使得数据集被加密并进行数字签名。例如,可以利用安全平台计算机102的公钥来加密数据集(确保只有具有对应私钥的实体可以解密数据,在这种情况下,是安全平台计算机102)。在一些实施例中,可以利用JSON Web加密来加密项目数据集。JSON Web加密是IETF标准,为基于JSON和Base64的加密数据交换提供标准化语法。客户端的数据也可使用客户的私钥进行数字签名。
数据管理模块110可以被配置成接收经加密和数字签名的数据集,并将所述数据集发送到数据处理模块132。数据管理模块110可能未获得所接收数据集的解密版本。数据处理模块132可以被配置成利用安全平台计算机102的私钥来解密数据集,并且使用声称的发送者的公钥来验证数据集的来源和数据集的完整性。换句话说,数据处理模块132可以利用声称的发送者的公钥和数字签名来确保数据集未被修改并且数据集实际上是由声称的发送者提供的。如果数字签名被验证(例如,确定数据集未被修改并且实际上由声称的发送者提供),则数据处理模块132可以被配置成为数据集分配数据集标识符并将解密的数据集存储在数据存储区124中。数据处理模块132可以被配置成从数据存储区124访问与数据提供者(例如,客户端A)相关联的任何合适的项目数据。一旦访问,数据处理模块132可以利用任何合适的架构来验证所提供的数据的格式和/或值。数据处理模块132可进一步利用任何合适的变换数据将数据从任何合适的第一格式转换为任何合适的第二格式。如果验证和/或变换失败,则数据处理模块132可以被配置成使通知模块114将错误通知到提供客户端。一旦验证和/或转换,数据处理模块132可以被配置成将数据存储在数据存储区124中。在一些实施例中,数据处理模块132可以存储独立于第二实体数据集(例如,由客户端B提供的第二数据集)的实体数据集(例如,由客户端A提供的第一数据集)。每个数据集(例如,第一数据集)对于项目的其它参与者(例如,客户端B)可能是不可访问的。因此,项目的任何其它实体可能无法访问每个实体的数据集。
在一些实施例中,数据处理模块132可以将从客户端接收的加密数据集存储在不可变分类账127(区块链的实例)中。区块链可包括使用密码法链接的称为块的不断增加的记录列表。每个块可以包含前一个块的密码散列、时间戳和交易数据(通常表示为默克尔树)。通过设计,区块链可抵抗数据的修改。一旦记录,任何给定块中的数据都不能在不更改所有后续块的情况下进行追溯性更改。尽管在技术上并非不可更改,但区块链可被视为设计上是安全的,且可被称为不可变分类账。由安全平台计算机102接收的每个数据集可以存储在不可变分类账127中。在一些实施例中,数据集(或数据集的密钥)可以与项目数据的任何合适部分以及提供数据集的实体的客户端标识符一起被散列化并包括在不可变分类账127中。在一些实施例中,可以将新记录(例如,块)添加到不可变分类账127,包括前一个记录(块)的散列、数据集的散列以及提供数据集的实体的项目数据和客户端标识符。在一些实施例中,数据处理模块132可以将前一个块的散列提供给提供数据集的实体,作为数据集成功存储的证据。
客户端A或客户端B可以利用它们各自的计算装置来访问模型管理UI/API 146。模型管理UI/API 146可以被配置成使任一客户端(例如,第一实体、第二实体等)能够触发模型生成过程。在模型生成过程期间,可以至少部分地基于第一数据集(例如,由第一实体例如客户端A提供)和第二数据集(例如,由第二实体例如客户端B提供)来生成机器学习模型。在一些实施例中,所生成的特定模型可以符合先前提供的项目数据。模型管理UI/API 146可以提供可选选项,所述可选选项在被选择时发送针对模型生成的任务请求。任务请求可以由模型管理模块112从模型管理UI/API 146接收。在一些实施例中,任务请求可包括项目标识符、客户端标识符、请求实体的数字签名(例如,使用请求实体的私钥生成的数字签名)、一个或多个请求代码(每个请求代码指示正请求的操作,例如使用特定机器学习算法训练模型),等。任务请求可以由模型管理模块112发送到模型生成器134。模型生成器134可以被配置成验证请求的来源,并且通过使用从数据存储区122检取到的请求实体的公钥验证数字签名来验证请求未被修改。如果数字签名未被验证(例如,消息已被修改或未被声称的发送者提供),任务请求可能被拒绝,且可能促使通知模块114向请求实体提供拒绝通知。
当数字签名被验证时,模型生成器134可以访问与项目标识符相关联的项目数据。在一些实施例中,在继续之前,模型生成器134可以验证请求实体与项目相关联(例如,与第一实体或第二实体相同)。如果请求实体不与项目相关联,则可以拒绝任务请求,并且可以促使通知模块114向请求实体提供拒绝的通知。如果任务请求有效且请求实体与项目相关联,模型生成器134可以被配置成执行由项目数据定义的一个或多个任务。因此,在一些实施例中,任务请求仅仅是执行由项目数据定义的任务的请求。例如,请求实体(例如,客户端A)先前可能已经指示将由客户端A和客户端B提供的数据集用于利用特定机器学习算法(或机器学习算法的类型)生成(例如,训练)机器学习模型。因此,模型生成器134可以被配置成执行训练过程,所述训练过程利用先前由相应客户端提供的数据集(例如,由客户端A提供的第一数据集和由客户端B提供的第二数据集,统称为“训练数据”)和项目数据中指定的机器学习算法生成机器学习模型。应当理解,项目数据可以指定要生成的多于一个机器学习模型(例如,利用相同或不同的机器学习算法)。因此,在一些实施例中,模型生成器134可以被配置成生成/训练多于一个机器学习模型。在一些实施例中,模型生成器134可以被配置成使通知模块114向与项目相关联的实体提供已根据项目数据生成一个或多个模型的通知。在一些实施例中,通知可以包括项目标识符和模型标识符。
一旦生成(训练),模型可以与模型标识符相关联(例如,由模型生成器134生成)并且存储在数据存储区126中(例如,由模型生成器134)以供后续使用。数据存储区126可以被配置成存储生成和/或与任何合适数目的项目相关联的任何合适数目的机器学习模型。每个模型可以与模型标识符和/或对应于模型涉及的项目的项目标识符相关联。在一些实施例中,可以生成任何合适数目的额外机器学习模型。
在生成模型后的任何适当时间,客户端A(第一实体)或客户端B(第二实体)或项目的任何合适的参与者/实体可以利用模型输入UI/API 148来提交输出请求(例如,对来自为项目生成的一个或多个模型的输出的请求)。输出请求可包括任何合适形式的输入数据。在一些实施例中,可以使用安全平台计算机102的公钥来加密输入数据。输入数据还可以包括以与上文所描述的类似方式使用提供实体的私钥生成的数字签名。模型输入模块116可以被配置成接收加密数据以及对应的数字签名,并将加密数据和数字签名提供到模型处理模块136。模型处理模块136可以被配置成利用与请求方相关联的私钥和数字签名来验证输入数据和输入数据的来源。如果请求有效(例如,未修改且实际上由请求方发送)且请求方与项目相关联,则模型处理模块136可利用对应项目数据来验证数据且/或将数据转换为另一格式。在一些实施例中,模型处理模块136可以向模型输入模块116提供反馈,所述反馈指示客户端B将为所述请求提供额外输入数据。
在一些实施例中,模型输入模块116可以将任何合适的数据发送到计算装置106,以请求来自客户端B的额外数据。通常,模型输入模块116可以被配置成从任何合适的计算装置请求任何合适的数据。在一些实施例中,由模型输入模块116提供的请求可以由分别由计算装置104和106利用的客户端API 154和156接收。客户端B可以以与上述模型输入模块116类似的方式提供其数据,并且所述数据可以由模型处理模块136验证和解密。
输入数据(例如,由客户端A提供的用于模型的新数据以及在一些情况下连同由客户端B提供的数据)可以由模型处理模块136用作到机器学习模型的输入数据。可以将模型的输出数据提供给提交输入数据的任何客户端或至少发起输出请求的客户端(例如,在进行中的实例中为客户端A)。可能的情况是,客户端A和客户端B利用不同的模型,因此,在一些实施例中,尽管两个客户端有时都可以提供输入数据,但输出数据可以仅提供给请求了特定模型的客户端(例如,如项目数据中所指示的)。由模型提供的输出数据的特定格式和类型可以至少部分地基于训练模型的背景和所使用的特定训练数据而变化。
在一些实施例中,输入数据可以被转发到模型管理模块112以用于更新和/或重新训练机器学习模型。模型管理模块112可以将经过加密和数字签名的数据转发到模型生成器134,所述模型生成器可以被配置成验证输入数据的源和完整性,并且允许来源提供新的训练数据(例如,来源与项目相关联)。如果有效,可以将输入数据添加到训练数据集(例如,包括由客户端A提供的第一数据集和由客户端B提供的第二数据集的数据集)。
在一些实施例中,可以(例如,由模型生成器134或模型处理模块136)将输入数据(经过加密)添加到不可变分类账127中。在一些实施例中,输入数据(或输入数据的密钥)可以与项目数据的任何合适部分以及提供输入数据的实体的客户端标识符一起被散列化并包括在不可变分类账127的新记录(块)中。前一个记录(块)的散列也可以包括在当前块中。输出数据同样可以被加密(例如,使用安全平台计算机102的公钥)并由模型处理模块136添加到不可变分类账127的又一新记录(块)中。在一些实施例中,输出数据(或输出数据的密钥)可以与项目数据的任何合适部分以及请求输出数据的实体的客户端标识符一起被散列化并包括在不可变分类账127的新记录(块)中。模型处理模块136(或模型生成器134)可以另外生成不可变分类账127的前一个记录(块)的散列,并将此散列包括在当前记录(块)中。因此,不可变分类账127可以包含由安全平台计算机102接收的所有输入数据和发送的所有输出数据的加密和散列版本。
在任何合适的时间,项目参与者可以访问证明UI/API 160以请求安全平台计算机102的证明。证明模块118可以接收指示请求证明的任务请求(例如,请求不可变分类账127、请求验证不可变分类账127等),并且可以将所述任务请求转发到数据处理模块132以进行处理。在一些实施例中,数据处理模块132可以被配置成通过验证每个块的散列表示前一个记录(块)的散列来验证不可变分类账127的记录(块)。数据处理模块132可以对任务请求提供响应,指示不可变分类账127是否被验证。响应可包括最近块的散列。响应可以呈任何合适的形式。在一些实施例中,数据处理模块132可以利用与安全平台计算机102相关联的私钥来生成数字签名,以认证不可变分类账127已被验证。计算装置可以被配置成验证数字签名。如果验证了数字签名(例如,指示数据未被更改且安全平台计算机102发送了数字签名),则计算装置可以考虑不可变分类账127已被验证。
在一些实施例中,参与实体可以访问模型管理UI/API 146以发起指示更新和/或重新训练机器学习模型的请求的任务请求。任务请求可包括使用请求装置的私钥生成的数字签名。模型管理模块112可以接收任务请求并将请求和数字签名转发到模型生成器134,所述模型生成器可以被配置成验证请求的来源和完整性,并且允许来源请求此类任务(例如,更新和/或重新训练特定机器学习模型)。如果数字签名是有效的并且允许来源发出此类请求,模型生成器134可以被配置成使用存储在数据存储区124中的任何合适的训练数据(例如,最初提供的数据集和随后获得的任何输入数据/输出数据)更新和/或重新训练机器学习模型。
图2示出根据一些实施例的示例性安全平台计算机202(例如,图1的安全平台计算机102的实例)的框图。安全平台计算机202可以包括中央处理器204。处理器204可耦合到系统存储器206和外部通信接口208。安全平台计算机202可以包括芯片组210。芯片组210可以包括可与芯片组存储器214耦合的芯片组处理器212。芯片组存储器214可以被配置成存储用于执行本文中相对于芯片组操作所描述的功能的芯片组指令(例如,固件或配置逻辑)。
芯片组存储器214可包括用于管理引擎215的指令。管理引擎215可包括可由芯片组处理器212执行以用于初始化并管理例如安全存储器空间218(例如,图1的飞地120的实例)的一个或多个安全存储器空间的代码。管理引擎215可被配置成推行访问控制协议以限制对安全存储器空间218的访问。在利用访问控制协议的情况下,管理引擎215可限制对安全存储器空间218的访问,使得仅在安全存储器空间218内执行的应用程序、模块和/或过程可访问安全存储器空间218内的内容(例如,图1的数据存储区122、124和126)。
计算机可读介质216还能可操作地耦合到处理器204。计算机可读介质216可包括可由处理器204执行的软件。例如,密钥管理模块107、项目管理模块108、数据管理模块110、模型管理模块112、通知模块114、模型输入模块116和证明模块118各自可以由处理器204执行。应当理解,根据管理引擎215提供的限制,模块106-118都不能访问数据存储区122、124和126。
安全存储器空间218可以可操作地耦合到芯片组处理器212,并且安全存储器空间218可以包括密钥管理器128、项目管理模块130、数据处理模块132、模型生成器134和模型处理模块136。管理引擎215可以允许模块128-136访问数据存储区122、124和/或126中的任何数据。模块128-136可包括可由芯片组处理器212执行以用于执行上文结合图1描述的功能的代码。
数据存储区122、124和126可使用各种数据结构实施,所述数据结构例如阵列、散列图、(链接的)列表、构造的文本文件(例如,XML)、表等。此类数据结构可以存储在存储器中和/或结构化文件中。数据存储区122-126可被配置成通过管理引擎215驻留在安全存储器空间218内。对数据存储区122-126的访问可根据与管理引擎215相关联的访问控制协议来执行。在一些实施例中,数据存储区122-126可被配置成存储加密数据。例如,数据存储区122-126可被配置成存储如由安全平台计算机202加密的加密形式的密码密钥、项目数据、训练数据和/或模型。管理引擎215可推行对数据存储区122-126的访问控制,使得这些数据存储区的内容可由芯片组处理器212经由执行模块128-136的功能调用访问,并且不可由任何其它构件访问。
管理引擎215可创建并管理安全存储器空间。当处理器204最初加载模块128-136的代码和数据时,处理器204可将安全存储器空间请求发送到芯片组处理器212。在接收后,芯片组处理器212可执行管理引擎215的指令以初始化并配置安全存储器空间218。
在一些实施例中,管理引擎215可使得芯片组处理器212将模块128-136的代码和数据从未受保护的存储器(例如,计算机可读介质216)复制到安全存储器空间218中。管理引擎215接着可使处理器212使用存储在芯片组存储器214中的加密密钥对安全存储器空间218的内容进行加密(例如,以密码方式进行散列)。在一些实施例中,加密密钥可以被硬编码到芯片组存储器214中。加密确保存储在安全存储器空间218中的代码和数据无法由包括系统软件的其它软件或其它装置访问。在一些实施例中,管理引擎215一次可支持多个安全存储器空间。
密钥管理模块107可被配置成(例如,从图1的客户端载入UI/API 140)接收来自客户端装置的密钥请求。在一些实施例中,密钥管理模块107可以被配置成发起与远程装置(例如,图1的计算装置104)的安全通信信道(例如,传输层安全(TLS)连接),其中所述信道是使用在发起连接时协商的共享秘密端到端加密的。安全通信信道可用于在安全平台计算机202与计算装置(例如,计算装置104、计算装置106等)之间交换公钥。由密钥管理模块107接收的公钥可以在任何合适的时间提供给密钥管理器128。密钥管理器128可以被配置成将接收的密钥存储在数据存储区122中以供后续使用。密钥管理模块107可以被配置成在客户端装置不提供客户端标识符的情况下生成用于请求装置的客户端标识符。客户端标识符可以存储为与数据存储区122中接收到的密钥相关联,以供以后查找。
项目管理模块108可以被配置成从一个或多个计算装置(例如,与一个或多个客户端/项目参与者相关联的装置)接收(例如,从图1的项目设置UI/API 142)经过数字签名的项目数据(例如,具有使用计算装置的私钥生成的数字签名的项目数据)。项目管理模块108可被配置成与通知模块114通信,所述通知模块是被配置成从安全平台计算机202提供各种通知的组件。例如,项目管理模块108可以检查由一个实体(例如,客户端A)提供的指示另一实体(例如,客户端B)是项目参与者的项目数据。在确定另一实体(例如,客户端B)尚未提供数据后,项目管理模块108可以被配置成执行代码以使通知模块114向与请求额外项目数据的实体(例如,计算装置106)相关联的计算装置发送通知。
项目管理模块108可以被配置成将任何接收到的项目数据发送到项目管理模块130。项目管理模块130可以被配置成验证数据。例如,项目管理模块130可被配置成使芯片组处理器212检取与项目数据提供者相关联的公钥(例如,利用作为项目数据的一部分接收的客户端标识符来标识项目数据的提供者)以验证数字签名。如果数字签名被验证,则项目数据可以可信为未修改,并且实际上已经由声称的发送者发送。项目管理模块130可以被配置成使芯片组处理器212将任何合适的项目数据(例如,验证的项目数据)存储在数据存储区124中以供后续使用。在一些实施例中,项目数据可以包括项目标识符和可以检取项目数据的任何合适数目的客户端标识符。在一些实施例中,项目管理模块130可以被配置成生成任何合适数目的使用策略(例如,一个或多个规则),所述使用策略定义项目数据(例如,存储在数据存储区124中的训练数据)如何使用以及由谁使用。
数据管理模块110可以被配置成从一个或多个计算装置(例如,与一个或多个客户端/项目参与者相关联的装置)接收(例如,从图1的数据上传UI/API 144)经过加密和数字签名的数据(例如,使用安全平台计算机202的公钥加密的并且包括使用提供实体的私钥生成的数字签名的训练数据)。
数据管理模块110可以被配置成将任何合适的加密数据发送到数据处理模块132。数据处理模块132可以被配置成解密和验证数据。例如,数据处理模块132可被配置成使芯片组处理器212利用与安全平台计算机202相关联的公钥来解密数据。在一些实施例中,数据处理模块132可以被配置成使芯片组处理器212检取与项目数据提供者相关联的公钥以验证数字签名。如果数字签名被验证,则数据可以可信为未修改,并且实际上已经由声称的发送者发送。数据处理模块132可以被配置成使芯片组处理器212将任何合适的数据(例如,训练数据)存储在数据存储区124中以供后续使用。在一些实施例中,数据处理模块132可以被配置成使芯片组处理器212根据任何合适的先前提供的项目数据来验证数据和/或转换数据。例如,数据处理模块132可利用先前提供的架构来验证所提供的数据的格式和/或值。作为另一实例,数据处理模块132可利用先前提供的变换数据将所提供的数据从第一格式转换为第二格式。
在一些实施例中,数据处理模块132可以被配置成将从客户端接收的加密数据存储在不可变分类账127(区块链的实例)中。由数据处理模块132接收的每个数据集可以存储在不可变分类账127中。在一些实施例中,数据集(或数据集的密钥)可以与项目数据的任何合适部分以及提供数据集的实体的客户端标识符一起被散列化并包括在不可变分类账127中。在一些实施例中,可以将新记录(例如,块)添加到不可变分类账127,包括前一个记录(块)的散列、数据集的散列以及提供数据集的实体的项目数据和客户端标识符。在一些实施例中,数据处理模块132可以将前一个块的散列提供给提供数据集的实体,作为数据集成功存储的证据。
模型管理模块112可以被配置成(例如,从图1的模型管理UI/API 146)接收包括使用请求实体(例如,与客户端/项目参与者相关联的装置)的私钥生成的数字签名的模型请求。请求可包括请求实体的客户端标识符。在一些实施例中,请求可包括与项目相关联的项目标识符。
模型管理模块112可以被配置成将请求发送到模型生成器134。模型生成器134可以被配置成验证请求。例如,模型生成器134可被配置成使芯片组处理器212检取与请求实体相关联的公钥(例如,从数据存储区122)以验证数字签名。如果数字签名被验证,则请求可以可信为未修改,并且实际上已经由声称的发送者发送。响应于验证数字签名,模型生成器134可以被配置成使芯片组处理器212验证(例如,利用包括在请求中的项目标识符和先前存储的项目数据和/或使用策略)允许请求者发起模型生成。如果请求者与先前存储的项目数据相关联,模型生成器134可以被配置成使芯片组处理器212根据先前存储项目数据中指示的算法生成(例如,训练)机器学习模型(或多于一个机器学习模型)。
模型输入模块116可以被配置成(例如,从图1的模型输入UI/API 148)接收包括输入数据和使用请求实体(例如,与客户端/项目参与者相关联的装置)的私钥生成的数字签名的输出请求。输出请求可以呈任何合适的形式,并且可以包括请求实体的客户端标识符和项目的项目标识符。
模型输入模块116可以被配置成将输出请求发送到模型处理模块136。模型处理模块136可以被配置成验证输出请求。例如,模型处理模块136可被配置成使芯片组处理器212检取与请求实体相关联的公钥(例如,从数据存储区122)以验证数字签名。如果数字签名被验证,则输出请求可以可信为未修改,并且实际上已经由声称的发送者发送。响应于验证数字签名,模型处理模块136可以被配置成使芯片组处理器212将输入数据提供到与项目(例如,与输出请求的项目标识符相关联的项目)相关联的模型(或多个模型)。来自模型的输出可以使用请求实体的公钥加密,并且经由模型输入模块提供给请求输入。在一些实施例中,输出数据可以经由客户端API(例如,图1的客户端API 154)提供。在一些实施例中,可以使用与用于首先加密输出数据的公钥相对应的计算装置的私钥来解密输出数据。
在一些实施例中,输入数据(如在输出请求中加密)可以经由模型管理模块112转发到模型生成器134。模型生成器134可以解密输入数据并将输入数据添加到训练数据。模型生成器134可以利用更新的训练数据在任何合适的时间更新和/或重新训练一个或多个模型。例如,计算装置104可以用来访问模型管理UI/API 146以提供更新请求。更新请求可包括项目标识符和客户端标识符。更新请求可以经由模型管理模块112发送到模型生成器134。模型生成器134可以利用包括最近提供的输入数据的训练数据来更新与项目标识符相关联的一个或多个模型。
在一些实施例中,可以(例如,由模型生成器134或模型处理模块136)将输入数据(经过加密)添加到不可变分类账127中。在一些实施例中,输入数据(或输入数据的密钥)可以与项目数据的任何合适部分以及提供输入数据的实体的客户端标识符一起被散列化并包括在不可变分类账127的新记录(块)中。前一个记录(块)的散列也可以包括在当前块中。输出数据同样可以被加密(例如,使用安全平台计算机102的公钥)并由模型处理模块136添加到不可变分类账127的又一新记录(块)中。在一些实施例中,输出数据(或输出数据的密钥)可以与项目数据的任何合适部分以及请求输出数据的实体的客户端标识符一起被散列化并包括在不可变分类账127的新记录(块)中。模型处理模块136(或模型生成器134)可以另外生成不可变分类账127的前一个记录(块)的散列,并将此散列包括在当前记录(块)中。因此,不可变分类账127可以包含由安全平台计算机102接收的所有输入数据和发送的所有输出数据的加密和散列版本。
在任何合适的时间,项目参与者可以请求对安全平台计算机102的证明(例如,利用图1的证明UI/API 160)。证明模块118可以接收指示请求证明的任务请求,并且可以将所述任务请求转发到数据处理模块132以进行处理。在一些实施例中,数据处理模块132可以被配置成通过验证每个块的散列表示前一个记录(块)的散列来验证不可变分类账127的记录(块)。数据处理模块132可以对任务请求提供响应,指示不可变分类账127是否被验证。响应可包括最近块的散列。在一些实施例中,数据处理模块132可以利用与安全平台计算机102相关联的私钥来生成数字签名,以认证不可变分类账127已被验证。计算装置可以被配置成验证数字签名。如果验证了数字签名(例如,指示数据未被更改且安全平台计算机102发送了数字签名),则计算装置可以考虑不可变分类账127已被验证。
图3示出流程图,示出了根据一些实施例的用于安全交换密钥(例如,公钥)的方法300。方法300可以用计算装置104和/或计算装置106、密钥管理模块107和密钥管理器128执行。密钥管理模块107可以在安全平台计算机(例如,图2的安全平台计算机202)的不安全存储器空间(例如,图2的计算机可读介质216)中执行。密钥管理器128可在例如图2的安全存储器空间218(例如,图1的飞地120的实例)等安全存储器空间内执行。
方法300可以在302处开始,其中可以经由计算装置104访问UI和/或API(例如,客户端载入UI/API 140)以请求密钥交换。
在304处,可以在密钥管理模块107与计算装置104之间建立安全连接。安全连接可以是传输层安全(TLS)连接。可以在密钥管理模块107与计算装置104之间协商共享秘密以建立安全连接。
在306处,计算装置104可以经由安全信道发送其公钥。也就是说,可以使用为安全连接协商的共享秘密来加密计算装置104的公钥。
在308处,密钥管理模块107可以接收和解密使用了共享秘密的公钥。解密后,在310处,可以将计算装置104的公钥转发到密钥管理器128。替代地,所述方法可以跳过步骤308和310,并且在312处密钥管理模块107可以简单地将加密密钥和共享秘密发送到密钥管理器128,并且在314处密钥管理器128可以利用共享秘密来解密加密密钥,以便检取计算装置104的公钥。
在任一情境中,在316处,密钥管理器128可将计算装置104的公钥存储在被配置成存储此类信息的数据存储区(例如,图1和2的数据存储区122)中。在一些实施例中,公钥可以与对应于计算装置104的客户端标识符相关联地存储。
在318处,密钥管理器128可以将与密钥管理器128在其上执行的安全平台计算机相关联的公钥返回到密钥管理模块107。在一些实施例中,如果密钥管理器128已知共享秘密,则密钥管理器128可以用共享秘密加密此公钥。在一些实施例中,密钥管理模块107而非密钥管理器128可以对安全平台计算机的公钥进行加密。
在320处,可以经由304处建立的安全连接将安全平台计算机的公钥(如使用304处协商的共享秘密加密的)发送到计算装置104。
在322处,计算装置104可以接收和解密使用了共享秘密的公钥。解密后,在324处计算装置104的公钥可以将解密的公钥存储在本地存储器中以供后续使用。
方法300可以用任何合适数目的计算装置执行任何合适次数,以便在安全平台计算机与相应计算装置之间交换公钥。
图4示出流程图,示出了根据一些实施例的用于安全定义项目的方法400。方法400可以用任何合适数目的计算装置(例如,图1的计算装置104和/或计算装置106)、图1和2的项目管理模块108、图1和2的通知模块114以及图1和2的项目管理模块130执行。项目管理模块108可以在安全平台计算机(例如,图2的安全平台计算机202)的不安全存储器空间(例如,图2的计算机可读介质216)中执行。项目管理模块130可在例如图2的安全存储器空间218(例如,图1的飞地120的实例)等安全存储器空间内执行。
方法400可以在402处开始,其中可以经由计算装置104访问UI和/或API(例如,项目设置UI/API 142)以发起项目。在402处,计算装置104可用于获得定义任何合适数目的项目参与者之间的项目的任何合适项目数据。尽管图4中提供的实例利用了两个项目参与者,但应了解,其它项目中可包括更多参与者。在402处获得的项目数据可包括定义项目任务(例如,使用一个或多个机器学习算法训练和/或维护机器学习模型)的许可使用信息、一个或多个性能阈值(例如,指示应训练模型直到至少90%准确为止),定义由与计算装置104相关联的实体提供的数据组织或结构的一个或多个架构,定义由实体提供的数据集可如何变换为一个或多个不同格式的变换数据,或可用于定义项目和/或与项目相关联的一个或多个操作的任何合适数据。
在404处,可以为项目数据生成数字签名(例如,利用与计算装置104相关联的私钥),并且可以将项目数据和数字签名发送到项目管理模块108。
在406处,项目管理模块108可以将项目数据和数字签名转发到项目管理模块130。
在408处,项目管理模块130可以利用数字签名来验证项目数据。例如,项目管理模块130可以(例如,从数据存储区122)检取与作为项目数据中的提供实体提供的客户端标识符(例如,作为对应于计算装置104的实体的客户端A的标识符)相关联的公钥。公钥可以用于验证/验证数字签名。如果数字签名无效,则项目管理模块130可以拒绝项目数据并执行操作以使通知模块114向计算装置104提供指示项目数据被拒绝(未描绘)的通知。如果确定数字签名有效,则项目管理模块130可以执行操作以使项目数据存储在数据存储区(例如,图1的数据存储区124)。
项目管理模块130可标识项目数据指示至少一个其它项目参与者(例如,对应于计算装置106的客户端B)尚未接收到项目数据。在作出此确定后,在410处,项目管理模块130可以将任何合适的数据发送到通知模块114以指示需要来自其它参与者的项目数据。
在412处,响应于接收到指示,通知模块114向计算装置106(例如,与另一项目参与者相关联的计算装置)发送请求来自所述参与者的项目数据的通知。
在414处,可以为由计算装置106提供的额外项目数据生成数字签名(例如,利用与计算装置104相关联的私钥),并且可以将额外项目数据和数字签名发送到项目管理模块108。在414处提供的项目数据可包括定义项目任务(例如,使用一个或多个机器学习算法训练和/或维护机器学习模型)的许可使用信息、一个或多个性能阈值(例如,指示应训练模型直到至少90%准确为止),定义由与计算装置106相关联的实体提供的数据组织或结构的一个或多个架构,定义由实体提供的数据集可如何变换为一个或多个不同格式的变换数据,或可用于定义项目和/或与项目相关联的一个或多个操作的任何合适数据。
在416处,项目管理模块108可以将包括数字签名的额外项目数据转发到项目管理模块130。
在418处,项目管理模块130可以利用数字签名来验证额外项目数据。例如,项目管理模块130可以(例如,从数据存储区122)检取与作为项目数据中的提供实体提供的客户端标识符(例如,作为对应于计算装置106的实体的客户端B的标识符)相关联的公钥。公钥可以用于验证/验证数字签名。如果数字签名无效,则项目管理模块130可以拒绝项目数据并执行操作以使通知模块114向计算装置104和/或计算装置106提供指示项目数据被拒绝(未描绘)的通知。如果确定数字签名有效,则项目管理模块130可以执行操作以使项目数据存储在数据存储区(例如,图1的数据存储区124)。
在420处,项目管理模块130可以检查是否已针对项目的所有参与者提供项目数据。如果仍需要来自更多参与者的项目数据,项目管理模块130可以使通知模块114向仍需要项目数据的每个参与者发送通知。
在422处,如果所有参与者都提供了其各自的项目数据,则项目管理模块130可以发送指示项目已被成功定义的数据。在接收到这一指示后,通知模块114可以被配置成向所有参与者发送项目已被成功定义的通知(例如,如424和426处所描绘)。
图5示出流程图,示出了根据一些实施例的用于安全提供项目的数据集(例如,训练数据)的方法500。方法500可以用任何合适数目的计算装置(例如,图1的计算装置104和/或计算装置106)、图1和2的数据管理模块110、图1和2的通知模块114以及图1和2的数据处理模块132执行。数据管理模块110可以在安全平台计算机(例如,图2的安全平台计算机202)的不安全存储器空间(例如,图2的计算机可读介质216)中执行。数据处理模块132可在例如图2的安全存储器空间218(例如,图1的飞地120的实例)等安全存储器空间内执行。
方法500可以在502处开始,其中可以经由计算装置104访问UI和/或API(例如,数据上传UI/API 144)以获得项目的数据集。由计算装置104提供的此数据集可以是训练由项目数据定义的机器学习模型所需的训练数据的一部分。在504处,可以将数据集从计算装置104发送到数据管理模块110,所述数据管理模块又可以将数据集转发到数据处理模块132。数据集可以与标识数据集所涉项目的项目标识符一起发送。在一些实施例中,可以使用与数据处理模块132在其上执行的安全平台计算机相关联的公钥来加密在504和506处发送的数据集。在一些实施例中,可以使用与计算装置104相关联的私钥生成数字签名,并且可以与加密的数据集一起发送所述数字签名。
在508处,数据处理模块132可以使用与计算装置104相关联的公钥(例如,从数据存储区122检取并与计算装置104相关联的公钥)执行用于验证数字签名的任何合适的操作。在一些实施例中,数据处理模块132还可以使用与数据处理模块132在其上执行的安全平台计算机相关联的私钥来解密数据集。
在510处,数据处理模块132可以检取对应于项目标识符的项目的项目数据。在一些实施例中,项目数据可用于验证数据集的格式和/或值。例如,项目数据的架构可以指示数据的组织和结构。作为简单实例,架构可标识具有特定数据类型和一组有效值或值范围的特定数据。数据处理模块132可以执行任何合适数目的检查,以确保数据符合架构。如果数据不符合所提供的架构,数据处理模块132可以拒绝数据并执行操作,以使得通知模块114向计算装置104发送数据集被拒绝的通知。作为另一实例,数据处理模块132可利用项目数据来执行数据字段和/或数据集的值的任何合适的变换和/或转换。例如,一些数据可能未最佳地格式化以与特定机器学习算法一起使用。项目数据可标识可以对数据执行的转换,以将数据转换为最适合特定机器学习算法的格式。如果数据集未被拒绝,则数据处理模块132可以生成数据集的加密版本的散列。数据集的散列和加密版本可以存储在不可变分类账(例如,图1和2的不可变分类账127)的新记录中。前一个记录的散列也可以包括在新记录以及任何合适的项目数据和数据集的提供者的客户端标识符中。
在512处,数据处理模块132可标识数据集尚未由另一参与者(例如,与计算装置106相关联的实体B)提供。因此,数据处理模块132可以将指示这一点的数据发送到通知模块114。
在514处,响应于在512处接收到数据,通知模块114可以将请求参与者提交其针对项目的对应数据集的通知发送到计算装置106(例如,与项目的另一参与者相关联)。
响应于514处的通知,可以执行步骤516-522。步骤516-522可以基本上类似于步骤504-510,但与计算装置106而不是计算装置104有关。
在524处,数据处理模块132可标识已针对项目的每个参与者提供了数据集。因此,数据处理模块132可以将任何合适的数据发送到通知模块114。
在526处,通知模块114可以将指示所有参与者已提供其针对项目的对应数据集的通知发送到项目的每个参与者(例如,发送到计算装置104和106)。
图6示出流程图,示出了根据一些实施例的用于执行安全联合任务的方法。方法600可以用任何合适数目的计算装置(例如,计算装置104)、图1和2的模型管理模块112、图1和2的通知模块114以及图1和2的模型生成器134执行。模型管理模块112可以在安全平台计算机(例如,图2的安全平台计算机202)的不安全存储器空间(例如,图2的计算机可读介质216)中执行。模型生成器134可在例如图2的安全存储器空间218(例如,图1的飞地120的实例)等安全存储器空间内执行。
方法600可以在602处开始,其中可以经由计算装置104访问UI和/或API(例如,数据上传UI/API 144)以发起与项目相关联的任务的执行。在一些实施例中,任务可包括生成一个或多个机器学习模型。
在604,可以将任何合适的数据(例如,任务请求)从计算装置104发送到模型管理模块112。任务请求可呈任何合适的格式。在一些实施例中,任务请求可包括对应于项目的项目标识符和对应于客户端(例如,对应于计算装置104的客户端A)的客户端标识符。在一些实施例中,计算装置104可以利用其私钥生成数字签名,并且可以在任务请求中发送数字签名。
在606处,模型管理模块112可以将任务请求转发到模型生成器134。
在608处,可以利用客户端标识符来检取与计算装置104相关联的公钥(例如,从图1的数据存储区122中)。与计算装置104相关联的公钥可以用于验证任务请求尚未被修改且实际上是由计算装置104发送的。如果无法验证请求,则可以拒绝请求并通知计算装置104(例如,由通知模块114)。
在610处,任务请求的项目标识符可以用于检取对应的项目数据(例如,存储在图1的数据存储区124中)。在一些实施例中,项目数据可以用于标识待执行的特定任务。
在612处,模型生成器134可以执行由项目数据定义的对应于与计算装置104相关联的实体的特定任务。例如,项目数据可指定与计算装置104相关联的实体指定利用特定机器学习算法训练了特定机器学习模型。因此,模型生成器134可以从数据存储区124中检取结合图5提供的训练数据集,并且可以根据项目定义继续利用指定的机器学习算法和训练数据集训练机器学习模型。在一些实施例中,模型生成器134可以被配置成确保模型被训练成满足项目数据中提供的任何合适的性能阈值。也就是说,如果项目数据指定模型至少90%准确,则可以继续训练过程,直到确定模型至少90%准确。为了评估准确性,模型生成器134可以利用训练数据集的实例,所述训练数据集的输出作为对新训练模型的输入数据是已知的。可以通过标识模型的输出中有多少与项目数据中发现的预期输出匹配来计算模型的准确性。如果准确性未超过指定阈值,则可以继续模型训练,直到模型的准确性超过指定阈值。
在614处,当模型训练完成(或已经失败)时,模型生成器134可以将任何合适的数据发送到通知模块114,以使通知模块114向计算装置104发送指示所请求的任务(例如,模型训练)已完成的通知。如果由于某种原因训练失败,则可以向计算装置104提供指示这一点的通知。方法600可以在图1的安全平台计算机102与对应于与项目相关联的实体的任何合适数目的计算装置之间重复任何合适次数。
任何合适的项目任务可以类似于上文关于方法600所描述的来执行。例如,实体可以利用计算装置104来请求使用当前训练数据集更新和/或重新训练模型。
图7示出流程图,示出了根据一些实施例的用于利用联合机器学习模型的方法700。方法700可以用任何合适数目的计算装置(例如,计算装置104、计算装置106等)、图1和2的模型输入模块116、图1和2的通知模块114以及图1和2的模型处理模块136执行。模型输入模块116可以在安全平台计算机(例如,图2的安全平台计算机202)的不安全存储器空间(例如,图2的计算机可读介质216)中执行。模型处理模块136可在例如图2的安全存储器空间218(例如,图1的飞地120的实例)等安全存储器空间内执行。
方法700可以在702处开始,其中可经由计算装置104访问UI和/或API(例如,模型输入UI/API 148),以至少部分地基于由计算装置104提供的输入数据从特定机器学习模型请求输出数据。
在704处,可以将输入数据发送到模型输入模块116(例如,经由任务请求)。输入数据可以与项目标识符和对应于计算装置104的客户端标识符一起发送。在一些实施例中,计算装置104可以使用其私钥生成数字签名,并且可以将数字签名与输入数据一起发送到模型输入模块116。在706处,可以由模型输入模块116将输入数据、客户端标识符、项目标识符和数字签名转发到模型处理模块136。在一些实施例中,可以使用模型处理模块136在其上执行的安全平台计算机的公钥来加密输入数据、客户端标识符、项目标识符和数字签名的任何合适部分。
在708处,模型处理模块136可以获得所述模型处理模块在其上执行的安全平台计算机的私钥,以解密所接收的加密的输入数据。
在710处,模型处理模块136可以获得对应于客户端标识符的公钥。所获得的公钥可以用于验证数字签名。也就是说,任务请求是未修改的,并且实际上是由声称的发送者(例如,计算装置104)发送的。如果被验证,模型处理模块136可以继续处理请求。
在712处,模型处理模块136可以验证(例如,利用项目数据的一个或多个使用策略)与客户端标识符相关联的实体是项目参与者,并且允许利用所请求的模型。如果与客户端标识符相关联的实体不是项目参与者和/或不允许利用所请求的模型,则可以拒绝任务请求,并且通知计算装置104有关所述拒绝(例如,由模型处理模块136经由模型输入模块116,未描绘)。可以生成输入数据的加密版本的散列,并且可以将输入数据的散列和加密版本存储在不可变分类账(例如,图1和2的不可变分类账127)的新记录中。前一个记录的散列也可以包括在新记录以及任何合适的项目数据和输入数据的提供者的客户端标识符中。
在714处,如果与客户端标识符相关联的实体是项目参与者并且允许访问所请求的模型(例如,如根据项目数据/使用策略确定的),则模型处理模块136可以确定需要来自一个或多个其它参与者的额外输入数据。例如,可能需要来自对应于计算装置106的参与者的输入数据。因此,可以由模型处理模块136经由模型输入模块116发送对输入数据的请求。在一些实施例中,此请求可经由图1的客户端API 156接收。
在716处,计算装置106可以通过提供所请求的输入数据以及项目标识符、与对应于计算装置106的实体相关联的客户端标识符和利用计算装置106的私钥生成的数字签名来响应请求。可以使用其上有模型处理模块136的安全平台计算机的公钥来加密在714处发送的数据,使得仅安全平台计算机能够解密数据,因为只有安全平台计算机将拥有对应的私钥。在718处,模型输入模块116可以将加密数据转发到模型处理模块136。
在720处,模型处理模块136可以获得所述模型处理模块在其上执行的安全平台计算机的私钥,以解密在718处接收的加密数据。
在722处,模型处理模块136可以获得对应于与计算装置106相关联的客户端标识符的公钥。所获得的公钥可以用于验证数字签名。也就是说,输入数据、项目标识符和客户端标识符是未修改的,并且实际上是由声称的发送者(例如,计算装置106)发送的。如果被验证,模型处理模块136可以继续处理请求。
在724处,模型处理模块136可以验证(例如,利用项目数据的一个或多个使用策略)与客户端标识符相关联的实体是项目参与者并且允许其提供输入数据。如果与客户端标识符相关联的实体不是项目参与者和/或不允许利用所请求的模型,则可以拒绝输入数据,并且通知计算装置104有关所述拒绝(例如,由模型处理模块136经由模型输入模块116,未描绘)。
在726处,模型处理模块136可确定已从每个参与者提供输入数据。因此,模型处理模块136可以继续处理在706处接收的任务请求。例如,模型处理模块136可提供从计算装置104和106接收的输入数据,作为到与项目相关联的项目数据中指定的模型的输入。
在728处,模型处理模块136可以将从模型获得的输出提供到计算装置104(例如,任务请求的发起者)。可以生成输出数据的加密版本的散列,并且可以将输出数据的散列和加密版本存储在不可变分类账(例如,图1和2的不可变分类账127)的新记录中。前一个记录的散列也可以包括在新记录以及任何合适的项目数据和请求了输出数据的实体的客户端标识符中。
图8示出框图,示出了根据至少一个实施例的示例性不可变分类账800。
如上文图中所讨论的,可以维护不可变分类账800(图1和2的不可变分类账127的实例),以记录由安全平台计算机102接收的所有数据集和输入数据以及由安全平台计算机102发送的所有输出数据。不可变分类账127可以呈区块链的形式。“区块链”是根据区块链协议维护的一系列记录(块)。区块链分类账的完整副本可包括系统执行的每个交易。分类账中的每一条目(例如,块)可包含前一个条目的散列。这具有创建从创始块到当前块的一系列块的效果。每一块都保证按时间顺序在前一个块之后,因为前一个块的散列不会以其它方式被知晓。每一块一旦已经处于所述一系列块中一段时间,在计算上进行修改也是不切实际的,因为所述块之后的每个块也必须重新生成。这些性质使得区块链分类账相对安全且防篡改。
不可变分类账800可包括任何合适数目的记录(块)。例如,每个块可包括前一个块的内容的散列。例如,散列802、散列804和散列806可以是对应的前一个块的内容的散列。每个块中还可以包括由安全平台计算机102接收/发送的数据的加密版本的散列。例如,散列808、810和812分别表示由安全平台计算机102接收/发送的数据集、输入数据或输出数据的散列。另外,每个块可以包括数据部分(例如,数据814、数据816和数据818),包括加密数据所涉及的项目的项目数据的任何合适部分、对应于加密数据的任务请求,以及与加密数据的请求者/提供者相关联的客户端标识符。
例如,加密数据820(例如,数据集)可以接收在客户端通信822中、经过解密,并存储在安全存储器(例如,飞地120)中。在存储解密数据时,数据处理模块132可以通过对客户端通信822中接收的加密数据820进行散列来生成散列824。散列824(散列810的实例)可以存储在如图所示的不可变分类账800的块中。对应于加密数据820的项目的项目数据以及提供加密数据的实体的客户端标识符可以被包括为数据816。可以生成前一个块的散列(例如,散列804)并包括在块中。可以提供响应(例如,客户端响应826),所述响应包括散列804和利用安全平台计算机102的私钥生成的数字签名,以证明加密数据820已成功存储在安全存储器(例如,图1的飞地120)中。
在任何合适的时间,项目参与者可以请求对安全平台计算机102的证明(例如,通过访问图1的证明UI/API 160)。在一些实施例中,请求(例如,任务请求)可以由图1和2的数据处理模块132接收,所述数据处理模块可以被配置成通过验证每个块的散列表示前一个记录(块)的散列来验证不可变分类账127的记录(块)。数据处理模块132可以响应于任务请求提供系统响应828,指示不可变分类账127是否被验证。作为非限制性实例,系统响应828可包括最近块的散列(例如,散列806)、加密数据830(例如,对应于散列812的加密数据)以及散列812(加密数据的散列)。在一些实施例中,数据处理模块132可以利用与安全平台计算机102相关联的私钥来生成数字签名,以认证不可变分类账127已被验证。计算装置可以被配置成验证数字签名。如果验证了数字签名(例如,指示数据未被更改且安全平台计算机102发送了数字签名),则计算装置可以考虑不可变分类账127已被验证。
图9示出框图,示出了交易处理系统900。图9示出可操作便携式装置910(例如,借记卡、信用卡、配置有支付凭证的计算装置等)的用户906。用户906可以使用便携式装置910在资源提供商(例如,商家)处支付商品或服务,例如票据。在一些实施例中,便携式装置910是由授权实体发行的信用卡或借记卡。资源提供商可操作资源提供商计算机930和/或访问装置。资源提供商计算机930可以被配置成经由作为支付处理网络的一部分操作的传输计算机940(由收单方操作)和处理网络计算机950与由授权实体操作或代表授权实体操作的授权实体计算机960通信。
支付处理网络可以包括用以支持和递送授权服务、异常文件服务以及清算和结算服务的数据处理子系统、网络和操作。示例性支付处理网络可以包括VisaNetTM。例如VisaNetTM之类的支付处理网络能够处理信用卡交易、借记卡交易和其它类型的商业交易。VisaNetTM确切地说包括处理授权请求的VIP系统(Visa集成式支付系统),和执行清算和结算服务的Base II系统。支付处理网络可以使用任何合适的有线或无线网络,包括因特网。
典型的支付交易可以描述为如下,用户906将便携式装置910(例如,借记卡、信用卡等)插入到访问装置920(例如,读卡器)的接口中。在一些实施例中,便携式装置910可以保持在访问装置920附近。访问装置920可以从便携式装置910请求支付凭证,并将所述支付凭证发送到资源提供商计算机930。
然后,资源提供商计算机930可以生成包括从访问装置920接收的信息的至少一部分的授权请求消息,并将所述授权请求消息以电子方式发送到传输计算机940。传输计算机940可以接收授权请求消息、进行处理并将其转发到授权实体计算机960,以便经由处理网络计算机950进行授权。
一般来说,在发生信用卡或借记卡交易之前,处理网络计算机950已经与每个发行方建立了关于如何对发行方的交易进行授权的协议。在一些情况下,例如当交易金额低于阈值时,处理网络计算机950可以被配置成基于其具有的关于用户账户的信息对交易进行授权,而无需生成授权请求消息并且将授权请求消息发送到授权实体计算机960。在其它情况下,例如当交易金额高于阈值时,处理网络计算机950可以接收授权请求消息,确定与便携式装置910相关联的发行方,并将用于交易的授权请求消息转发到授权实体计算机960以用于验证和授权。一旦交易被授权,授权实体计算机960就可以生成授权响应消息(其可以包括指示交易被批准或拒绝的授权代码)并且(例如,经由其外部通信接口)将此电子消息发送到处理网络计算机950。然后,处理网络计算机950可以将授权响应消息转发到传输计算机940,接着,所述传输计算机又可以将包括授权指示的电子消息发送到资源提供商计算机930,然后发送到远程计算机925,然后发送到访问装置920。
在一天结束时或以某个其它合适的时间间隔,可以对所述交易执行资源提供商计算机930、传输计算机940、处理网络计算机950和/或授权实体计算机960之间的清算和结算过程。
在一些实施例中,图9的任何合适数目的组件可以被配置成与安全平台计算机902(例如,分别是图1和2的安全平台计算机102和202的实例)通信。作为非限制性实例,与处理网络(例如,实体A)相关联的处理网络计算机950和与授权实体(例如,实体B)相关联的授权实体计算机960可以与安全平台计算机902通信。处理网络计算机950可以被配置成生成和/或存储对应于任何合适数目的交易的交易信息(例如,授权请求消息、授权响应消息、支付凭证等)。授权实体计算机960可以被配置成生成和/或存储对应于与任何合适数目的消费者相关联的一个或多个金融账户(例如,对应于支付凭证的金融账户)的账户数据。
在一些实施例中,通信网络(实体A)和授权实体(实体B)可能希望利用安全平台计算机902参与联合项目。例如,实体A和实体B可能希望利用无监督机器学习算法来生成机器学习算法,以预测未来日期的未来交易金额。因此,实体A和实体B可以利用上述图中描述的UI/API来与安全平台计算机902交换公钥。例如,可以执行图3的方法300。
一旦交换了密钥,实体A和实体B就可以利用上述UI/API来定义项目。每个实体都可以提供定义其数据的组织和/或结构的架构,和/或用于将其数据转换为一个或多个其它格式的一个或多个变换规则,和/或对数据使用的一个或多个限制。例如,实体A可以指定实体B不能使用实体A的数据来生成特定的机器学习算法或执行另一指定任务。在一些实施例中,可以根据图4的方法400提供项目数据。
一旦已从实体A和实体B获得项目数据,处理网络计算机950或授权实体计算机960就可以提供项目的数据集。作为非限制性实例,处理网络计算机950可以提供交易数据,所述交易数据指示在某一时间段内(例如,去年)发生的任何合适数目的交易。在一些实施例中,此数据可以用安全平台计算机902的公钥加密。数据可以经过数字签名(例如,可以包括使用与对应于生成数字签名的计算机的实体相关联的私钥生成的数字签名)。可以根据图5的方法500处理数据集,并且可以执行任务。例如,可以根据图6的方法600生成模型。在一些实施例中,可以为每个实体生成一个或多个模型。在一些实施例中,这些模型可以彼此不同,并且不同于为另一实体生成的模型。
一旦项目任务(例如,模型生成/训练)完成,每个实体(例如,实体A和实体B)就可以向所生成的模型提供输入数据以便预测未来条件。例如,实体A可以提供对应于上周的新交易数据,并且实体B可以提供对应于在上周发生的交易中使用的账户的新账户数据,作为先前由安全平台计算机902生成/训练的模型的输入数据。安全平台计算机902可以将此数据作为输入提供到机器学习模型以获得输出。可以将输出提供给一个或两个实体。例如,可以将输出提供给请求输出的实体,在这种情况下,对应于支付处理器的实体A。
技术优势
本发明的实施例具有数个优势。例如,利用上文讨论的技术,任何合适数目的实体可以参与安全联合项目,其中从多个实体获得的数据可以共同用于执行任务,而不会将每个实体的对应数据暴露给其它参与实体。本文所述的安全平台计算机提供一种联合环境,在所述联合环境中数据可以被安全地定义、提供和存储,使得只有安全平台计算机才能访问此类数据(例如,定义项目的项目数据、项目参与实体提供的与项目相对应的数据集等)。安全平台计算机可另外提供证明服务,实体可利用所述证明服务验证提供给安全平台计算机的数据已被安全地存储和管理。本文提供的技术提供了与分散式联合机器学习系统相比的效率改进,所述分散式联合机器学习系统跨越保持本地数据样本的分散式装置训练机器学习模型,而不交换其样本。此类常规系统可以作为模型训练过程的一部分来回发送大量消息。通过利用本文中所公开的安全平台计算机来集中数据,可以完全避免这些消息。
另外,本文提供的技术提供了与分散式联合机器学习系统相比的安全性改进,所述分散式联合机器学习系统可能将训练数据集(例如,包括每个实体的数据集)分配给每个参与者。不是存储来自其它实体的数据(这可能会带来安全和/或隐私问题),而是将每个实体的数据提供给安全平台计算机,以便对项目的所有其它参与者保密。安全平台计算机可以确保生成(训练)复杂的机器学习模型,而不会暴露生成此类模型所依赖的基础数据。
本文所述的任何计算装置可以是计算机系统的实例,所述计算机系统可用于实施上述任何实体或组件。此类计算机系统的子系统可以通过系统总线互连。额外子系统包括打印机、键盘、存储装置和监视器,所述监视器耦合到显示器适配器。外围设备和输入/输出(I/O)装置耦合到I/O控制器,并且可以通过本领域已知的许多手段中的任何一种(例如串行端口)连接到计算机系统。例如,I/O端口或外部接口可以用于将计算机设备连接到广域网(例如,互联网)、鼠标输入装置或扫描器。通过系统总线的互连可以允许中央处理器与每个子系统通信,并且控制来自系统存储器或存储装置的指令的执行,以及在子系统之间的信息交换。系统存储器和/或存储装置可以体现计算机可读介质。
如所描述,本发明的服务可涉及实施一个或多个功能、过程、操作或方法步骤。在一些实施例中,所述功能、过程、操作或方法步骤可以实施为由适当地被编程的计算装置、微处理器、数据处理器等执行指令集或软件代码的结果。指令集或软件代码可以存储在由计算装置、微处理器等存取的存储器或其它形式的数据存储元件中。在其它实施例中,所述功能、过程、操作或方法步骤可由固件或专用处理器、集成电路等实施。
本申请中描述的任何软件组件或功能可使用任何合适的计算机语言实施为由处理器执行的软件代码,所述计算机语言例如使用例如常规的或面向对象的技术的Java、C++或Perl。软件代码可作为一系列指令或命令存储在计算机可读介质上,例如随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器的磁介质或软盘、或例如CD-ROM的光学介质。任何此类计算机可读介质可驻存在单个计算设备上或内部,并且可存在于系统或网络内的不同计算设备上或内部。
虽然已经详细描述并在附图中示出某些示例性实施例,但应理解,此类实施例仅仅是对本发明的说明而非限制,并且本发明不限于所示和所描述的具体布置和构造,因为所属领域的一般技术人员可以想到各种其它修改。
如本文所使用,除非明确指示为相反情况,否则“一”或“所述”的使用旨在意指“至少一个”。

Claims (11)

1.一种计算装置,其包括:
一个或多个处理器;以及
操作安全存储器空间的安全平台计算机,所述安全存储器空间包括计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使所述安全平台计算机:
接收与涉及第一实体和第二实体的联合项目相对应的项目数据的第一部分和第二部分,所述项目数据的所述第一部分对应于所述第一实体,并且所述项目数据的所述第二部分对应于所述第二实体,其中所述项目数据定义所述联合项目的各方面;
接收所述第一实体的第一数据集和所述第二实体的第二数据集,所述第一数据集和所述第二数据集不同于所述项目数据;
维护包括与由所述安全平台计算机接收所述第一数据集和所述第二数据集相对应的信息的不可变分类账;
至少部分地基于所述第一数据集、所述第二数据集和所述项目数据生成机器学习模型;
向所述第一实体和所述第二实体提供对所述机器学习模型的访问,
所述机器学习模型存储在所述安全存储器空间内;
从请求实体接收请求验证所述不可变分类账的任务请求;
基于所述请求实体的第一标识符与所述项目数据的第二标识符匹配,验证所述不可变分类账;并且
向所述请求实体提供所述不可变分类账被验证的指示。
2.根据权利要求1所述的计算装置,其中所述安全存储器空间是由所述一个或多个处理器的芯片组管理的飞地,其中所述飞地由所述芯片组加密并且仅由所述芯片组访问。
3.根据权利要求2所述的计算装置,其中所述不可变分类账还包括所述数据的提供者的标识符,并且其中所述指令还使所述安全平台计算机验证所述数据的所述提供者对应于所述第一实体或所述第二实体。
4.根据权利要求2所述的计算装置,其中所述指令还使所述安全平台计算机生成用于从所述安全存储器空间检取所述第一数据集的一个或多个第一密钥和用于从所述安全存储器空间检取所述第二数据集的一个或多个第二密钥。
5.根据权利要求4所述的计算装置,其中在所述不可变分类账中维护的信息包括对应于所述一个或多个第一密钥的第一散列值和对应于所述一个或多个第二密钥的第二散列值。
6.根据权利要求1所述的计算装置,其中所述指令还使所述安全平台计算机:
至少部分地基于所述第一数据集、所述第二数据集和所述项目数据生成额外机器学习模型;并且
为所述第一实体提供对所述额外机器学习模型的访问,所述额外机器学习模型存储在所述安全存储器空间内。
7.根据权利要求1所述的计算装置,其中所述指令还使所述安全平台计算机:
响应于接收到所述项目数据的所述第一部分而向所述第二实体发送通知,所述通知是在接收到所述项目数据的所述第二部分之前发送的,其中所述通知指示接收到所述项目数据的所述第一部分。
8.根据权利要求1所述的计算装置,其中所述指令还使所述安全平台计算机向所述第一实体和所述第二实体发送通知,其中所述通知指示所述机器学习模型的生成完成。
9.根据权利要求1所述的计算装置,其中所述指令还使所述安全平台计算机:
从所述第一实体的计算装置接收指示更新所述机器学习模型的请求的任务请求;
利用包括所述第一数据集、所述第二数据集和在接收到所述第一数据集和所述第二数据集之后接收的后续数据的数据集来更新所述机器学习模型;并且
向所述第一实体的所述计算装置发送指示所述任务请求成功或不成功的通知。
10.根据权利要求1所述的计算装置,其中所述项目数据包括以下各项中的至少一项:1)定义机器学习任务的数据,2)定义与关联于实体的数据集相对应的数据结构的一个或多个架构,3)定义由一个实体提供的数据能如何变换为不同格式的变换数据,4)限制实体的数据的使用的一个或多个数据使用策略,5)要使用的一个或多个机器学习算法,6)用于所述机器学习任务的性能目标。
11.一种计算装置,其包括:
一个或多个处理器;以及
操作安全存储器空间的安全平台计算机,所述安全存储器空间包括计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使所述安全平台计算机:
接收与涉及第一实体和第二实体的联合项目相对应的项目数据的第一部分和第二部分,所述项目数据的所述第一部分对应于所述第一实体,并且所述项目数据的所述第二部分对应于所述第二实体,其中所述项目数据定义所述联合项目的各方面;
接收所述第一实体的第一数据集和所述第二实体的第二数据集,其中所述第二实体无法访问所述第一数据集,并且其中所述第一实体无法访问所述第二数据集,所述第一数据集和所述第二数据集不同于所述项目数据;
维护包括与由所述安全平台计算机接收所述第一数据集和所述第二数据集相对应的信息的不可变分类账;
至少部分地基于所述第一数据集、所述第二数据集和所述项目数据生成机器学习模型;
向所述第一实体和所述第二实体提供对所述机器学习模型的访问,
所述机器学习模型存储在所述安全存储器空间内;
从请求实体接收请求验证所述不可变分类账的任务请求;
基于所述请求实体的第一标识符与所述项目数据的第二标识符匹配,验证所述不可变分类账;并且
向所述请求实体提供所述不可变分类账被验证的指示。
CN201980102752.XA 2019-12-03 2019-12-03 提供安全联合机器学习的技术 Active CN114761952B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/064279 WO2021112831A1 (en) 2019-12-03 2019-12-03 Techniques for providing secure federated machine-learning

Publications (2)

Publication Number Publication Date
CN114761952A CN114761952A (zh) 2022-07-15
CN114761952B true CN114761952B (zh) 2023-10-27

Family

ID=76222647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980102752.XA Active CN114761952B (zh) 2019-12-03 2019-12-03 提供安全联合机器学习的技术

Country Status (4)

Country Link
US (1) US20230008976A1 (zh)
EP (1) EP4070215A4 (zh)
CN (1) CN114761952B (zh)
WO (1) WO2021112831A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930846B (zh) * 2020-09-15 2021-02-23 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置及设备
US20220210140A1 (en) * 2020-12-30 2022-06-30 Atb Financial Systems and methods for federated learning on blockchain
US12229280B2 (en) * 2021-03-16 2025-02-18 Accenture Global Solutions Limited Privacy preserving cooperative learning in untrusted environments
US12153705B2 (en) * 2021-03-30 2024-11-26 Adobe Inc. Platform for unsupervised machine learning training on unseeable user generated assets
US20220374762A1 (en) * 2021-05-18 2022-11-24 International Business Machines Corporation Trusted and decentralized aggregation for federated learning
US12328391B2 (en) * 2021-11-15 2025-06-10 Sap Se Managing secret values using a secrets manager
US12225111B2 (en) * 2022-03-08 2025-02-11 SanDisk Technologies, Inc. Authorization requests from a data storage device to multiple manager devices
US12300041B2 (en) 2022-06-10 2025-05-13 Amazon Technologies, Inc. Vehicle data stream subscription system
US20240098143A1 (en) * 2022-06-29 2024-03-21 Amazon Technologies, Inc. Plug-in orchestrator for vehicle data stream subscription system
US11902435B1 (en) * 2022-07-20 2024-02-13 CUBE Security Inc. Access control interfaces for blockchains
US20240073001A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Securely sharing data and access permissions in a cloud environment
WO2025061269A1 (en) * 2023-09-19 2025-03-27 Huawei Technologies Co., Ltd. Method of establishing confidential artificial intelligence infrastructure and computing device for deploying artificial intelligence model
CN117454405A (zh) * 2023-11-15 2024-01-26 北京熠智科技有限公司 一种基于sgx的数据分析方法、系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019073000A1 (en) * 2017-10-13 2019-04-18 Nokia Technologies Oy ARTIFICIAL NEURONAL NETWORK
CN110197285A (zh) * 2019-05-07 2019-09-03 清华大学 基于区块链的安全协作深度学习方法及装置
CN110428056A (zh) * 2018-04-30 2019-11-08 慧与发展有限责任合伙企业 使用区块链的分散式机器学习的系统和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017223192A1 (en) * 2016-06-21 2017-12-28 Sri International Systems and methods for machine learning using a trusted model
US12154028B2 (en) * 2017-05-05 2024-11-26 Intel Corporation Fine-grain compute communication execution for deep learning frameworks via hardware accelerated point-to-point primitives
EP3622660B1 (en) * 2017-05-12 2023-08-30 Massachusetts Institute of Technology Systems and methods for crowdsourcing, analyzing, and/or matching personal data
US20190012592A1 (en) * 2017-07-07 2019-01-10 Pointr Data Inc. Secure federated neural networks
US11257073B2 (en) * 2018-01-31 2022-02-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
US11526745B2 (en) * 2018-02-08 2022-12-13 Intel Corporation Methods and apparatus for federated training of a neural network using trusted edge devices
US11157833B2 (en) * 2018-03-14 2021-10-26 International Business Machines Corporation Learning service blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019073000A1 (en) * 2017-10-13 2019-04-18 Nokia Technologies Oy ARTIFICIAL NEURONAL NETWORK
CN110428056A (zh) * 2018-04-30 2019-11-08 慧与发展有限责任合伙企业 使用区块链的分散式机器学习的系统和方法
CN110197285A (zh) * 2019-05-07 2019-09-03 清华大学 基于区块链的安全协作深度学习方法及装置

Also Published As

Publication number Publication date
WO2021112831A1 (en) 2021-06-10
EP4070215A4 (en) 2022-11-23
CN114761952A (zh) 2022-07-15
EP4070215A1 (en) 2022-10-12
US20230008976A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
CN114761952B (zh) 提供安全联合机器学习的技术
JP7442552B2 (ja) 動的オフチェーンデジタル通貨トランザクション処理
US20220029810A1 (en) Identity and electronic signature verification in blockchain
US10911456B2 (en) Systems and methods for device push provisioning
EP3665857B1 (en) Blockchain architecture with record security
US11855971B2 (en) Offline authorization of interactions and controlled tasks
US20240403878A1 (en) Validation service for account verification
US11876911B2 (en) Blockchain based alias interaction processing
CN111201752A (zh) 基于哈希的数据验证系统
CN110692214A (zh) 用于使用区块链的所有权验证的方法和系统
US20220172198A1 (en) Real-time blockchain settlement network
US20230401572A1 (en) Payment settlement via cryptocurrency exchange for fiat currency
US20250069063A1 (en) Api for incremental and periodic crypto asset transfer
CN117981274A (zh) 远程身份交互
US20230401553A1 (en) Crypto-bridge for automating recipient decision on crypto transactions
US12169868B2 (en) Fiat payment based on a cryptocurrency blockchain transaction
CA3167522A1 (en) Blockchain-based security token for kyc verification
US12346895B2 (en) Delegated certificate authority system and method
US12238209B2 (en) Conditional offline interaction system and method
US20240348444A1 (en) Secure interaction using uni-directional data correlation tokens
US20230368292A1 (en) Cryptocurrency payment based on a canceled fiat transaction
US20200402047A1 (en) Registry maintaining processed user requests

Legal Events

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