From 91aa443b6f9355ad493731d7f2b0cda82dac460d Mon Sep 17 00:00:00 2001 From: LiuZhuJunYa <62864940+LiuZhuJunYa@users.noreply.github.com> Date: Sun, 8 Dec 2024 10:21:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=87=8D=E7=94=9F=E4=B9=8B=E6=88=91?= =?UTF-8?q?=E5=81=9A=E5=AE=89=E5=85=A8=E7=AB=9E=E8=B5=9B=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交第一个README文件 --- 2024-shenzhen-FinTechathon/Rebirth/README.md | 459 +++++++++++++++++++ 1 file changed, 459 insertions(+) create mode 100644 2024-shenzhen-FinTechathon/Rebirth/README.md diff --git a/2024-shenzhen-FinTechathon/Rebirth/README.md b/2024-shenzhen-FinTechathon/Rebirth/README.md new file mode 100644 index 000000000..65d1f61dd --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/README.md @@ -0,0 +1,459 @@ +# 1. 项目背景 + +## 1.1 背景分析 + +随着数字经济的高速发展,数据要素已经逐步融入生产生活的各个环节,与土地、劳动力、资本、技术等并列,成为重要的生产要素之一,深刻影响并重构着经济社会结构。为应对这一变革,中国于2024年初组建国家数据局,研究并实施“数据要素X”行动,加快推进数据基础设施的建设工作[1]。数据基础设施作为让数据“供得出、流得动、用得好”的关键载体,不仅推动着数据安全可信的流通,更是实现数字服务高效利用的重要保障。 + +然而,在云计算、大数据、人工智能等新兴技术的推动下,数字服务的部署方式已发生改变。用户通过诸如Dropbox和Apple Pay等互联网服务商进行数据交互[2],但这种分布式环境也带来了新的挑战。智能设备的激增使得连接到互联网的设备数量剧增,而这些设备往往部署在不安全的环境中,使用它们的用户也并非完全可信。因此,如何确保分布式服务的安全连接成为了当下亟待解决的课题。 + +为此,基于密码学的认证方案应运而生,成为应对这些挑战的第一道防线。身份认证、数字签名交换等方案为数据安全提供了坚实保障。传统的身份认证方案可以分为两大类,基于对称密钥的Kerberos协议和基于公钥密码学的公钥基础设施(Public key infrastructure, PKI)技术。Kerberos 协议通过口令认证的方式实现对用户的认证;PKI技术,通过数字证书映射绑定以证明用户身份。然而,尽管有这些防护措施,数据安全形势依然严峻。据苹果公司近期发布的数据泄露报告,2023年前九个月就有3.6亿人的敏感数据遭泄漏,相比2022年全年高出20%。这一数字凸显了全球企业所面临的数据安全危机。 + +综上所述,数据安全已成为数字经济时代的重要议题。然而,传统的身份认证方案往往伴随着第三方的存在,中心化的认证中心难免成为黑客的首要目标,这也导致用户数据泄露事件频繁发生。传统数字交易存在的中心化及隐私保护问题日益突出,学者们尝试利用不同的技术解决现有问题。 + +2008年,中本聪一篇比特币[3]论文诞生了区块链这一项革命性的技术。区块链凭借去中心化、透明可追溯、防篡改等特性被许多学者引入,用于解决传统中心化认证方案存在的安全问题。 + +而基于区块链的去中心化认证方案作为基石,可以支撑其他研究,例如公平的数字签名交换,基于Kerberos的身份认证方案改进等的具体实施。同时出于对数字设备的性能消耗考虑,如何实现数字设备之间的高效认证也是一项挑战。因此,亟需引入区块链技术及高效的密码学方案改进优化现有的身份认证方案。 + +基于以上背景,本课题通过研究代理签名、属性基密码等加密技术,深入进行基于区块链的去中心化认证方案的研究与实现,对于解决数字设备的安全认证,实现去中心化的安全数据共享提供新思路,也为数据安全提供理论支撑,促进数据互联互通行业发展。 + + + +## 1.2 国内外相关研究现状 + +### 1.2.1 去中心化身份认证 + +中心化身份认证是当前最常见的方案,然而一旦掌控一切的中央服务器出现故障,身份识别机制就会彻底失效。区块链技术可以使身份识别机制去中心化,而不再依赖中心服务器[29]。 + +在ARPKI中,Basin等人[30]引入了多个认证中心(Certificate Authority,CA),以串行模式签名和验证证书。2014年,Fromknecht等人[31]提出了第一个基于区块链的PKI机制CertCoin。通过公开的账本记录将用户身份与公钥证书映射,从而实现PKI的去中心化。任何用户都可以查询证书的颁发过程。在此基础上,Axon等人[32]改进了CertCoin模型,并提出了一种基于区块链的PKI隐私保护技术,名为PB-PKI(基于隐私感知区块链的PKI)。不同于传统的PKI通过公钥直接连接用户的真实身份,而是通过离线密钥保护在线密钥,避免用户暴露真实身份。 + +Kubilay等人[33]提出了一种基于区块链的具有证书透明度的新的PKI模型,CertLedger。在CertLedger中,所有TLS客户端都可以验证日志的最终状态,因此不可能进行分裂世界攻击。此外,CertLedger还提供了证书撤销和受信任的CA管理流程的透明度。 + +CertChain[34]提供了一个具有证书操作历史可追溯性和撤销验证的公共审计PKI系统。为了解决被撤销的证书存储规模问题并保护客户端隐私,作者提出了一种可伸缩的证书撤销隐私保护PKI系统,PBCert。与上述基于区块链的分布式PKI系统相比不同的是,Matsumoto等人[35]研究了在给定的PKI系统中,通过自动化激励机制来抵御CA非法行为。 + +Hammi等人[36]提出了一个分布式系统,称为“信任气泡”,保证设备的可靠识别和认证,并保护数据的完整性和可用性。为了实现这一点,他们的方法依赖于区块链技术提供的安全优势,并创建安全的虚拟信任域——气泡。 + +对于分布式PKI区块链架构,Hari和Lakshman[37]实现了DNS映射中边界网关协议(BGP)的路由传播和身份验证,以防止恶意节点攻击。Faisca和Rogado[38]解决了个人云环境中的身份管理和证书管理问题,提高了认证的效率和安全性。 + +ModelChain[39]应用区块链分布式PKI在无线传感器网络中建立信任域。而Zhang等人[40]通过区块链实现安全认证,基于智能合约,以及后端软件保护扩展(SGX)可信硬件实现。Bassam等人[41]通过观察当前的X.509认证标准,只允许仅针对用户的身份颁发证书,但可以记录细粒度的身份认证证书属性信息,从而增加了属性信息的身份验证。在这种方法中,如果用户的身份信息经过身份验证,则其身份的相应属性也被认为是可信的,实现了用户身份和用户属性之间的信任交换。 + +Fabric-iot[42]是第一个通过基于区块链的ABAC模型提供细粒度访问控制的开源方案。Yao等人[43]提出了一个基于联盟链的跨域证书管理系统,CD-BCM,以简化证书撤销检查的过程。Dong Li等人[44]则提出了一种基于联盟链的车联网跨域认证协议。BTCAS[45]提出了一种基于区块链技术的彻底的跨域认证方案,可被采用完全不同设置的不同领域的参与者使用。Zhao等人[46]提出了一种基于区块链的分布式跨域身份认证协议(BC-CDIA)。将区块链证书的生成过程和哈希的存储过程放于注册过程中,减少AS和CA的验证过程,验证哈希而不是证书的签名,提高了跨域认证的效率。AAGrid[47]提出了一种基于联盟链及公钥密码的方案实现了智能电网环境下终端的身份认证和资源授权。 + +至于Kerberos改进的方案,Hena等人[48]提出了一种结合区块链技术和阈值密码系统的改进的方案。根据他们的描述,多个票单授予服务器(TGS)的部署确保了系统的可用性,并在很大程度上避免了单点故障的问题,但在该方案中没有具体实现细节。此外,他们在另一项研究中提出了一种新的基于区块链的三层认证框架[49]。设计了一个实用的拜占庭容错(PBFT)区块链网络来取代KDC的本地数据库。文献[48]解决了诸如单点故障、证书隐私和密码猜测攻击等问题。2022年,Li等人[50]针对用户和服务器之间的密钥协议提出了一种基于区块链的双向认证方案。 + +### 1.2.2 数字签名交换 + +公平交换问题指的是有两个相互不信任的当事人A和B想要交换物品,交换协议应该确保双方获得交换物品或最终不交换。随着数字经济的蓬勃发展,许多互联网上的在线业务如数字媒体,合同签署等,可能涉及双方的物品公平交换[4]。许多数字物品的所有权往往通过交换相应的数字签名来转移,因此公平交换问题的主要问题便是数字签名交换。有许多研究提出了公平的数字签名交换协议。然而,它们中的大多数都需要一个值得信任的第三方(TTP),而TTP的安全性受限。 + +为了解决可信第三方(TTP)导致的安全问题,Park等人[5]提出了一种基于RSA签名方案的协议。在此方案中,发送方只将部分私钥和公钥发送给TTP进行验证,以避免第三方推断出整个私钥。然而Dodis等人[6]指出Park的方案避免不了诚实但好奇的仲裁者推断出签名者的秘钥,因此存在推理缺陷。具体地,Huang等人[7]指出Park的协议无法抵御推断攻击。即一个好奇的TTP可以从它接收到的信息中推断出整个私钥。 + +为了保证协议的安全性,Huang和Wang等人[8]据此对协议进行了改进。Huang等人针对不可信任的第三方提出P2OFE,争议解决之后仍能保证签名安全。Wang 通过应用零知识证明和陷门承诺方案,隐藏了发送到TTP的部分公钥,而不是同时发送部分公钥和私钥。然而,该方法极大地增加了计算成本和通信成本。Zhang等人[9]首先提出了抗滥用(abuse-free)的概念,并基于离散对数实现了该属性。 + +针对TTP的消耗问题,Zhai等人[10]提出了基于低存储TTP的抗滥用的两方电子合同签署协议。2019年,CSP-E2[11]提供了一种减少TTP存储的方法。然而,集中式TTP的存在仍然是一个瓶颈,很可能遭遇单点故障。 + +并发签名[12]的概念由Chen等人提出。并发签名允许两个实体生成两个签名,签名者的身份不被第三方感知,直到一方发布附加信息。该方案基于环签名[13]和指定验证者签名[14],不依赖TTP就可以实现签名交换。Susilo等人进一步提出了一个完美的并发签名方案[15]:第三方无法推断是谁签署了两个签名中的哪一个。随后,Wang等人[16]指出,Susilo等人提出的方案实际上并不是并发的,并提出了一种攻击,使原始签名者能够释放一个精心准备的keystone。相对的,他们提出了一种有效的抵御这种攻击的方法,使改进后的方案真正适合于并发签名。 + +Ferradi等人的公平合同签名方案[17]可以在没有keystones的情况下完成两方签名交换,保证了法律公平和抗滥用。然而,该方案需要双方之间的多重交互,造成了一定的安全风险。综上,数字签名交换面临的障碍之一是其效率问题。现有的相关协议很难同时保证效率的同时,也保证其他特性。 + +近年来,区块链技术被广泛应用于解决传统数据存储的中心化问题。2014年,Danushka等人[18]提出了一种基于比特币网络的用于复杂交易的乐观公平交换电子商务协议。该方案中交换的物品不会向可信第三方泄露。Ferrer Gomila等人[19]提出了第一个基于比特币的合同签订解决方案。该解决方案在成本、效率和符合安全要求方面取得了改进,但也有局限性。 + +Huang等人[20]提出了一种基于可验证的加密签名和区块链的三方公平交换协议。Zhang等人[21]同样使用可验证加密签名方案。该方案尝试通过设计以太坊智能合约[22],实现完全去除可信第三方的存在。通过将质押代币在智能合约中来确保公平,作弊玩家将受到惩罚,即被没收代币。然而该方案使用了算力消耗较大的双线性配对操作。Ferrer Gomila等人在最新的研究中[23]使用拓展椭圆曲线签名方案,该方案清晰地将总体流程分为链上和链下两部分,并强调区块链只用于当合同签署出现争议时。 + +综上可见,从参与方数量出发,现有研究可以分为两方签署,多方签署两大类。长久以来,大多协议均是针对双方合同签署。随着签署方数量的增加,协议的通信成本和复杂度急剧增加。曹等人[24]基于无证书的高效聚合签名方案,提出一个高效的多方合同签署协议。协议中在区块链上仅公开签署方的临时密钥以减少系统开销。然而杨等人[25]通过安全性分析发现,该方案无法抵抗替换公钥攻击和内部签名者的联合攻击。为了解决上述安全缺陷,提出一个改进的无证书聚合签名方案。新方案不仅在随机预言模型下基于计算性Diffie-Hellman问题满足不可伪造性,同时也能抵抗联合攻击。 + +Payeras-Capellà等人[26]提出了去除可信第三方的基于ECC的多方数字合同签署协议,虽然没有使用昂贵的双线性配对操作,但使用了零知识证明技术保证合同的隐私,开销大。Zhang等人[27]使用并发签名方案和Schnorr签名设计了一个高效的多方电子合同签署协议,然而方案中存在NTO第三方。Zhang等人[28]提出了三方合同认证和签字的方法,将加密合同上链,同时使用异构存储在本地数据库上保留了原始合同以此减轻存储压力。 + + + +## 1.3 相关理论基础 + +### 1.3.1 区块链 + +2008年,区块链作为比特币的基础技术诞生。中本聪提出的区块链的概念,是一种点对点分布式账本技术,狭义的“区块链”可以理解为由哈希链接的带时间戳的区块序列组成。尽管颇具复杂性,区块链却以去中心化、数据透明和可追溯性而闻名。如下是区块链所具有的几个关键特征: + +首先,每个节点都拥有账本的副本,并通过共识达到一致。各个节点通过如工作量证明(PoW)和权益证明(PoS)等共识算法维护这个账本,以确保所有节点之间账本的一致性。 + +其次,不可篡改。通过使用哈希实现默克尔树,区块之间通过哈希指针链接,任意的篡改都会破坏这种链式结构。链上的交易数据不可伪造,防篡改因此实现。 + +最后,智能合约。智能合约可以简单理解为在链上运行的计算机程序,智能合约的诞生使成千上万的开发人员参与到去中心化应用的建设中,推动区块链进入可编程的新时代。随着技术的发展,新的区块链平台出现。以太坊[22]使区块链可使用智能合约进行编程。智能合约并不是一个新概念,它最初是Nick Szabo的研究中[51]提出的,它代表了由参与者执行的数字承诺。当触发条件被激活时,区块链中的智能合约可以自动执行。此外,它是无TTP的,不可逆的和可追溯的。 + +为了使区块链可编程,以太坊提供了图灵完备的编程语言Solidity[52]。Solidity等高级语言编写的智能合约通过沙箱——太坊虚拟机(EVM)编译生成字节码。它们最终会被转换为由以太坊的所有节点/矿工运行的交易。要通过EVM在区块链上运行智能合约,用户应该在以太坊上支付Gas。因此,开发者都趋向于实现低Gas成本的操作,以降低交易付出的开销。智能合约的生命周期有三个部分,即创建、部署和执行[53]。 + +智能合约创建:在这个阶段,参与者开始设计智能合约并为其编写代码。所形成的代码将被验证,并应由参与者达成一致。 + +智能合约部署:在此阶段,智能合约代码将被编译并部署到区块链中。合约的部署实质是向区块链发送一个交易,随后由以太坊中的节点/矿工进行验证和确认,将合约作为区块的一部分打包到链上。 + +智能合约执行:要执行已部署的智能合约所提供的功能,可以向区块链发送一个特殊的交易。在交易中,数据根据智能合约的接口构建,并将激活触发条件。以太坊中的节点/矿工将验证和确认交易,智能合约的状态将更改。 + +随着时间的推移,区块链技术已经在金融科技、供应链管理、产品生命周期,版权保护等领域得到了广泛应用。 + +### 1.3.2 身份认证方案 + +#### 1.3.2.1 Kerberos认证协议 + +Kerberos 是一种基于对称密码实现的身份认证协议。Kerberos名称来源于西方神话中防守地狱之门的“地狱三头犬”。该协议由麻省理工学院研发,可提供域内身份认证和单点登录等,被广泛应用于各类分布式环境中。所谓“三头”,形象地道出了Kerberos 认证协议定义的三个主要角色,分别是:客户端C、服务器V和密钥分发中心KDC。其中,KDC作为可信第三方存在,它由三个组件组成,分别是:认证服务器AS、数据库DB和票据授予服务器TGS。 + +三个交换事务,分别是:认证服务交换(AS-EX),票据授予服务交换(TGS-EX),应用交换(AP-EX)。它的目的是分发密钥和凭证,同时提供身份验证。关于每个参与者的信息,如他们的 ID 和密钥,都存储在 KDC 的数据库中。 + +![img](wps1.jpg) + +图1 Kerberos协议认证流程图 + +Kerberos V5[54]的认证过程如图1所示。最初,每个客户端在 KDC 中注册,他们的密钥被派生到 AES 密钥中。然后 KDC 对每个客户端的 AES 密钥进行加密,并将其存储在其数据库中。认证服务交换(AS-EX)通常用于启动登录会话并为票据授予服务器获取凭证。这些凭证随后用于为其他服务器获取凭证,而不需要进一步使用客户端的密钥。票据授予服务交换(TGS-EX)用于获取给定服务器的称为“服务票据”(ST)的身份验证凭证。应用交换(AP-EX)是客户端和服务器相互认证的最后一步,服务器验证ST。如果所有检查,如ID、时间戳和nonces,成功且没有任何错误,则建立客户端和服务器之间的身份验证,并开始客户端和服务器之间的服务会话。如果发生任何错误,客户端将以“KRB-ERR”消息响应服务器。通过AS-EX的单点登录方式,合法用户可以在不显式身份验证的情况下安全地执行TGS-EX和AP-EX。有关消息格式和加密的更多细节,请参见表1[55]。 + +尽管Kerberos在身份认证中扮演着重要角色,其存在的一些问题:如中心化造成的单点故障,重放攻击,DDoS,黄金/白银票据等并没有得到很好的解决。 + +表1 Kerberos协议中的报文 + +| 报文 | 通信方向 | 报文内容 | +| ----------- | --------- | ------------------------------------------------------------ | +| **AS-REQ** | **C→AS** | **{ IDc \|\| IDtgs \|\| Time-exp \|\| Nonce\|\| Kc{TimeStamp}}** | +| **AS-REP** | **AS→C** | **Kc{Kc,tgs\|\|IDtgs\|\|Time-exp \|\|Nonce\|\|TimeStamp\|\| TGT}** | +| **TGS-REQ** | **C→TGS** | **IDv,Time-exp,Nonce\|\| TGT \|\|Authenticator1** | +| **TGS-REP** | **TGS→C** | **Kc,tgs{Kc,v,IDc,IDv,ST, Time-exp,Nonce,TimeStamp}** | +| **AP-REQ** | **C→S** | **IDc,IDv,TimeStamp, ST\|\|Authenticator2** | +| **AP-REP** | **S→C** | **Kc,v{IDc,IDv,TimeStamp}** | + +#### 1.3.2.2 基于PKI的认证 + +PKI,全称公钥基础设施(Public KeyInfrastructure),是一种由认证中心(Certification Authority, CA)支配的基于公钥密码学实现网络安全服务的机制。该安全通信机制提供了一系列的标准安全组件,由数字证书、认证中心(CA)、注册中心(RA)、证书数据库等组成,支持身份认证、消息的完整性、机密性和不可否认性,为网络应用提供可靠的安全保障。 + +数字证书:认证中心或称证书授权中心,为设备颁发一个强绑定的数字证书。证书标准一般依据X.509 v3,其中包含了公钥和被验证过的数字签名。接收方收到数据发送方发送的数字签名和证书时,可在证书中获取公钥从而验证发送方身份的有效性。一个证书的全生命周期包括:证书的申请、审批、生成/签发、发布,再到证书更新、查询和撤销、归档。 + +注册审核机构(RA):实现 PKI体制中的数字证书申请、注册和审核。 + +认证中心(CA):作为权威机构,实现对数字证书的申请、审批、发放,再到证书的更新、查询和撤销等环节管理。 + +证书数据库:存储已签发的证书及公钥,用户从数字证书库查询证书。 + +总体上看,用户预先存储有自己所信任的根CA自签名证书,用来验证与之通信的其他PKI 用户的证书链,从而可信地获得其他用户的公钥,用于各种安全服务。 + +## 1.4 应用前景分析 + +去中心化Kerberos安全服务管理方案(DKSM)在多个领域具有广泛的应用前景: + +* 物联网(IoT)安全:随着物联网设备数量的急剧增长,确保这些设备之间的安全通信变得至关重要。DKSM提供了一种去中心化的身份认证和访问控制机制,能够有效防止未授权设备访问网络资源,确保物联网环境的安全性。 +* 智能家居:智能家居系统中,各类设备和应用程序需要进行身份认证和授权。DKSM可以提供一种安全、可靠的认证机制,确保只有经过授权的用户才能访问和控制智能家居设备,提高家庭安全性。 +* 智慧城市:在智慧城市建设中,涉及到大量的分布式数据和服务管理。DKSM可以为智慧城市中的各种应用提供安全认证和访问控制,防止数据泄露和非法访问,保障城市管理系统的安全运行。 +* 云计算和边缘计算:在云计算和边缘计算环境中,数据和服务的安全性至关重要。DKSM通过去中心化的方式,实现了对用户身份的认证和对数据的细粒度访问控制,能够有效防止数据泄露和篡改,提升云计算和边缘计算环境的安全性。 + +⚫ 金融科技:在金融科技领域,用户身份认证和数据安全是关键问题。DKSM可以为金融科技应用提供高效、安全的身份认证机制,确保金融交易的安全性,防止欺诈和数据泄露。 + +⚫ 医疗健康:在医疗健康领域,患者数据的隐私保护和访问控制至关重要。DKSM通过基于属性的加密机制,实现了对患者数据的细粒度访问控制,确保只有经 + +过授权的医疗人员才能访问敏感数据,保障患者隐私安全。 + +综上所述,去中心化Kerberos安全服务管理方案(DKSM)通过结合区块链技术和密文策略属性基加密(CP-ABE)方法,为各类分布式环境提供了一种安全、高效的身份认证和访问控制解决方案,具有广泛的应用前景和重要的实际意义。 + +# 2. 项目简介 + +本作品针对Kerberos身份认证方案存在的中心化问题,链上信息隐私保护问题,提出了基于区块链的去中心化Kerberos身份认证方案(DKSM)。设计智能合约实现更高程度的去中心化,免除 KDC 的中心化存储;尝试寻找细粒度访问控制方案,对链上信息,如KDC密钥进行隐私保护和细粒度访问控制;基于密文策略的属性基密码(CP-ABE) 与对称密码AES进行结合,实现链上信息隐私保护及细粒度访问控制;设计基于区块链的时间同步应答响应机制,实现对重放攻击的抵御。基于Python实现了协议,并设计了Solidity智能合约。 + +其设计逻辑包括以下三方面: + +(1)与区块链结合紧密。**设计智能合约**实现更高程度的去中心化,免除KDC的中心化存储;基于区块链账户地址实现去中心化身份,消除了重复生成公钥对的需要。 + +(2)**采用AES和CP-ABE**作为隐私保护的密码机制。采用FABEO属性基加密算法,密文短,效率高,实现对KDC密钥的细粒度访问控制; + +(3)实现对多数传统攻击的抵御。为了抵抗重放攻击,**设计**一种基于区块链的时间同步解决**方案BCTs-Nc**;同时,区块链技术使DKSM实现对中间人攻击及白银票据,黄金票据的抵御。 + +## 2.1 系统模型 + +本作品取名DKSM(Decentralized Kerberos Secure Service-Management),即去中心化Kerberos安全服务管理协议,保留了原始Kerberos方案中的客户端,服务器以及密钥分发中心KDC三个角色,及三个交换过程。传统的KDC存在中心化问题,在KDC数据库中存储着协议参与者的私钥,一旦私钥泄露,会危及服务安全管理。因此,我们借助区块链技术引入智能合约进行存储、逻辑判断,实现去中心化的KDC。所有的交流消息都会被存进区块链智能合约中。 + +此外,DKSM融合基于密文策略的属性基加密以实现数据细粒度访问控制,对链上数据进行隐私保护。与传统的安全服务管理相比,新的方案具有以下特点:首先,去中心化,这意味着不再依赖于单一的中心机构来管理安全服务。其次,可追溯性,可以追踪到每一次操作的来源和过程。再者,隐私保护,用户信息不被泄露。最重要的是,DKSM实现了3As原则,即提供了访问控制、授权和审计三大功能。确保安全服务的全面性和可靠性。由于传统Kerberos不提供授权功能,DKSM将授权简化为包含用户ID和权限ID,操作权限的权限列表来表示权限范围。最后,通过在以太坊测试网络和FISCO的实验表明DKSM方案的可行性。 + +![img](wps2.jpg) + +图3 去中心化Kerberos身份认证设计总览图 + +DKSM的总览图如图3,整体协议流程如下: + +① 要加入Kerberos的域中,必须首先通过将其公共信息上传到智能合约注册。 + +② 授权机构根据制定的访问策略**S**生成ABE密钥对**PK、MSK**。验证者如果没有正确的属性,将无法获取**Kkdc**正确地解密任何用户的秘密密钥。 + +③ 接下来,KDC调用相应的初始化函数并上传用户数据。 + +④ 为了登录,客户端在发起认证事务的同时,必须发送AS-REQ消息,触发相应的函数如**get_nonce()、check_nonce()**等以抵御重放攻击。由智能合约验证客户端的合法性。 + +⑤ 如果客户端是合法的,则存储AS-REQ并等待票据授予服务器TGS检索它。当收到AS-REQ消息时,TGS执行相同的身份验证和重放防御。智能合约提供身份验证并实现对重放攻击的抵御。 + +⑥ 在解密和验证AS-REQ后,认证服务器(AS)通过AS- REP响应向客户端发出**TGT**票据。**TGT票据**允许客户端访问TGS以获得**ST**票据。 + +⑦ 客户端将使用**TGT**票据置入TGS-REQ消息来访问TGS。TGS解密身份验证码和TGT票据,以验证客户端名称是否一致,以及时间戳是否在有效范围内等。如果满足,TGS通过区块链向客户端在TGS-REP响应中发出ST票据。 + +⑧ 在接收到TGS-REP后,客户端将使用AP-REQ消息启动AP-EX。其中,AP-REQ中的身份验证码用于消息校验和和会话密钥传输。 + +⑨ 如果验证成功,服务器将在AP-REP消息中包含一个临时会话密钥**K****session**进行响应。最后,服务会话顺利进行。 + +表2 DKSM符号表 + +| 名称 | 描述 | +| ------- | ------------- | +| KDC | 密钥分发中心 | +| C | 客户 | +| V | 服务器 | +| AS | 认证服务器 | +| TGS | 票据服务器 | +| TGT | 票据授予票据 | +| ST | 服务票据 | +| REP/REQ | 请求/响应报文 | + +## 2.2 详细设计 + +DKSM可以分为“初始化”,“认证服务交换”,“票据授予服务交换”,“双向认证交换”四部分。方案的符号表如表2所示,方案使用的所有密钥及其作用如表3所示。 + +表3 DKSM密钥表 + +| 名称 | 密钥种类 | 描述 | +| ---------------- | -------- | ------------------------ | +| **K****C** | AES-256 | 客户端AES密钥 | +| **K****TGS** | AES-256 | TGS AES密钥 | +| **K****V** | AES-256 | 服务端AES密钥 | +| **K****C,TGS** | AES-256 | 客户端及TGS的会话密钥 | +| **K****C,V** | AES-256 | 客户端及服务端的会话密钥 | +| **K****session** | AES-256 | 服务会话密钥 | +| **PK** | CP-ABE | 系统属性基公钥 | +| **MSK** | CP-ABE | 系统属性基主密钥 | +| **SK** | CP-ABE | 用户属性基私钥 | + +### 2.2.1 初始化 + +l AES密钥生成:首先,每个用户(包括客户端和服务器)提供其ID和密码进行注册。用户的密钥是一个AES-256密钥,使用PBKDF2算法从密码和ID生成。 + +l 属性基密码创建:接下来,权威机构将生成一个基于密文属性的加密密钥对(**PK,MSK**),并从消息空间**M**中随机选择一条消息**m**。然后根据KDC设置的访问策略“**S**”对**KDC**进行加密。更多细节详见2.2.3节。验证者如果不具备必要的属性,那么他将无法获得正确的**KDC**来解密任何用户的密钥。 + +l 数据加密:与客户端和服务器不同,KDC负责管理所有用户的密钥,并需要将密钥公开存储在区块链上。与传统方案一致,DKSM使用**KDC**对所有用户的AES密钥和权限列表进行加密。不同之处在于,我们使用了一种基于密文策略属性的加密(CP-ABE)方案来实现对**KDC**的细粒度访问控制,这也同时在一定程度实现了去中心化。当提供了正确的属性时,将运行**KeyGen(MSK,S)**以获得用于解密的**SK**。 + +l 智能合约初始化:所设计的智能合约包括两个结构体:“User”和“Packet”,分别代表用户和其对应的报文,如表4,表4-4,表6所示。DKSM定义了一个用户id到Packet的映射,每个用户都有他对应发送的Packet(交换报文)。User用户结构被用于存储与用户的字符串ID相关联的公共信息。在DKSM中,ID相当于Kerberos中的“主体”。例如,在DKSM域中的Alice的ID是Alice@dksm.com。此外,User存储每个用户对应的随机数,用于识别消息重放。一旦部署了DKSM智能合同,KDC就可以调用算法1来上传用户的信息。 + +DKSM将KDC与智能合约结合,从而产生了一个包含区块链特征的增强Kerberos方案,不仅提供了分布式存储和消息可跟踪等好处,同时保护了数据隐私。 + +``` +算法1 Initialization + +Require: (ID, Address, EncKey, EncPL, lifetime**) +Output: True or False +1: if users[ID].id == null then +2: users[ID].id = ID; +3: users[ID].user =Address; +4: users[ID].Key = EncKey; +5: users[ID].PL = EncPL; +6: users[ID].lifetime = lifetime; +7: users[ID].nonce = uint256(keccak256(block.timestamp, block.number)); +8: users[ID].timestamp = block.timestamp; +9: users[ID].islogin = False; +10: else +11: return False;//User already exist +12: end if +13: return True; +``` + + 表4 DKSM智能合约中的主要数据结构 + +| 数据类型 | 变量名 | 内容 | +| ----------------------- | ------ | ---------------------------- | +| struct | User | The User structure | +| struct | Packet | The Packet structure | +| mapping(string => User) | users | ID to User structure mapping | + +表5 DKSM智能合约中的User数据结构 + +| 数据类型 | 变量名 | 内容 | +| ------------------------- | ------------- | --------------------------------- | +| address | **user** | The User’s address | +| string | **id** | principal | +| string | **Key** | Encrypted AES secret key | +| string | **PL** | Encrypted Permission List | +| string | **lifetime** | lifetime | +| uint256 | nonce | nonce for replay defense | +| uint256 | **timestamp** | user’s setup time | +| bool | islogin | login state | +| mapping(string => Packet) | RepOrReq | ID to Request or response mapping | + +表6 DKSM智能合约中的Packet数据结构 + +| 数据类型 | 变量名 | 内容 | +| -------- | ------------- | ------------------------ | +| address | user | The Originator’s address | +| string | **IDfrom** | principal | +| string | **IDto** | principal | +| uint | **timestamp** | block.timestamp | +| string | REQorREP | Exchange Message | + +接着,我们提出了一种基于区块链的时间同步方案,基于时间戳及随机数的概念抵御重放攻击,称为**BCTs-Nc。**该方案在每个报文上传/获取或交易的过程中运行。具体来说,我们基于区块链修改了传统Kerberos机制,结合了块数、块时间戳等特性。 + +时间戳检查:当消息上传到区块链进行存储时,智能合约将消息的时间戳设置为块时间戳**block.timestamp**(如算法3-2的第3行所示)。其核心思想在于存储时设置时间戳,并在用户检索报文时检查它。 + +随机数检查:在初始化过程中,在智能合约中设置随机数nonce,如算法4-2的第3行所示,并绑定到用户的地址。在发送消息时,每个用户必须获得一次nonce,并将其包含到报文中。接着,智能合约验证nonce是否与用户地址匹配。如果是,消息被成功接受,nonce自动增加1。如不匹配,则会拒绝该用户的上传操作。 + +``` +算法2 BCTs-Nc for Time Synchronization and Nonce-check + +Require: (IDfrom, IDto) +Output: True or False +1: while User set a message do +2: nonce_from = getnonce(IDfrom); +3: users[IDfrom].ReqOrRep[IDto].timestamp = block.timestamp; +4: if users[IDfrom].nonce == nonce_from +5: Nonce_Check = True; +6: else +7: Nonce_Check = False; +8: end if +9: users[IDfrom].nonce += 1; +10: end while +11: while User get a message do +12: nonce_to = getnonce(IDto); +13: if users[IDto].nonce == nonce_to and localtime - message_time < 300 +14: Nonce_Check = True; +15: Time_Check = True; +16: else +17: Nonce_Check = False; +18: Time_Check = False; +19: end if +20: users[IDto].nonce += 1 +21: end while +``` + +在所有用户成功注册之后,协议分别执行认证服务交换(AS-EX)、票证授予服务交换(TGS-EX)和双向认证交换(AP-EX)。 + +### 2.2.2 认证服务交换 + +当一个客户端想要访问一个特定的应用程序服务器时,它必须首先通过向KDC的认证服务器(AS)证明其身份,以获取凭据TGT。拿到TGT票据的客户端才能请求一个特定的服务。认证服务交换包含以下两个报文: + +**1)** **AS-REQ** :={ ID_C || ID, TGS || Time-exp || Nonce|| Kc{TimeStamp}}; + +**AS-REQ**报文中包含了一个加密的时间戳以及客户端和TGS的标识等。客户端通过区块链帐户发送签名交易,保证交易是无法伪造的。智能合约会首先检查报文中的两个id是否存在于用户列表中,验证id到地址绑定以防止非法登录,并执行**BCTs-Nc**算法。 + +**2)** **AS-REP**:=Kc{KC,TGS || ID, TGS ||Time-exp ||Nonce || TimeStamp || TGT}; + +其中**TGT**登录验证成功后,身份验证服务器(AS)将包含**TGT**票据的**AS-REP**发送到客户端。变量**Kc,tgs**表示一个随机生成的AES密钥,它作为客户端和票证授予服务器(TGS)之间的会话密钥。AS通过向发送事务,在智能合约中存储**AS-REQ**消息。智能合约在存储**AS-REP**并将用户的登录状态设置为“True”之前,会验证报文的各个方面,如发送者地址、消息ID等。一旦客户端接收到**AS-REP**消息,解密成功后检查,如果消息中的时间戳在可接受的范围内,则认为身份验证成功。然后,客户端保存**TGT**和会话密钥,以便将来进行通信。否则,客户端将向AS发送一个错误消息。 + +### 2.2.3 票据授予服务交换 + +成功登录后,客户端可以申请访问特定的服务器。客户端和服务器之间的消息交换包括一个请求和响应。票据授予服务交换包含以下两个报文: + +**1)** TGS-REQ := {ID_V, Time-exp, Nonce|| TGT || Authenticator1}; + +其中**Authenticator1**:= K_C, TGS{ID_C, CheckSum, TimeStamp}。 + +认证码“**Authenticator1**”向TGS证明客户端持有会话密钥,并提供(**ID_C, ID_V, TGT**)的校验和,以确保消息的完整性。同样地,当客户端发送事务时,智能合约会自动执行一系列检查。在从区块链获得**TGS-REQ**后,TGS解密了**Authenticator1**和**TGT**。如果**TGT**的生命周期在指定的范围内,并且认证码正确,则票证请求成功。最后,TGS将查找客户端的权限列表,以查看它是否有权访问该服务器。否则,交换失败,TGS将用“**KRB-ERR**”响应客户端。(如算法4所示) + +``` +算法3 TGS-EX + +Require: (ID_C, ID_V, ID_KDC, TGT) +Output: SUCCESS or ERROR +1: Authenticator1 ← Enc_K_C,TGS(ID_C|| CheckSum || Timestamp +2: TGS-REQ ← ID_C || ID_V || TimeStamp || TGT || Authenticator1; +3: Await DKSM.CSetTGS-REQ(ID_C, ID_V, ID_KDC, Nonce_C, TGS-REQ); +4: TGS-REQ, CK_KDC ← Await DKSM.TGSGetTGS-REQ(ID_C, ID_V, ID_KDC); +5: if users[ID_C].TGSREQ[ID_TGS].content != null and ContentCheck() and CheckTGT() +6: K_C,V ← GenRandKey(); +7: Decrypt TGT and get K_C,TGS +8: K_V ← Dec(DKSM.TGSGet-CKv(ID_KDC, ID_V)); +9: K_C,V ← GenRandKey(); +10: ST_V ← EncKv(ID_C, ID_V, K_C,V lifetime); +11: TGS-REP ← EncKc,tgs(K_C,V, ID_C ID_V ST_V , Nonce, TimeStamp); +12: Await DKSM.SetTGS-REP(IDc, IDv, Nonce_TGS, TGS-REP); +13: TGS-REP, TS-tgsrep ← Await DKSM.GetTGS-REP(IDc, IDv); +14: if users[ID_C].TGSREP[ID_V].content ≠ null and ContentCheck() +15: Decrypt and Get ST_V; +16: return ST_V, K_C,V; +17: else +18: return ERROR; +19: end if +20: else +21: return ERROR; +22: end if +``` + +**2)** **TGS-REP**:= {Kc,tgs{K_c, v, ID_C, ID_V, ST, Time-exp, Nonce, TimeStamp}}; + +其中**ST**:=K_V{ID_C, ID_V, K_C,V, lifetime} + +作为对**TGT**票据请求的响应,**TGS-REP**基于会话密钥**Kc,tgs**进行加密。服务票不仅包含由TGS随机生成的会话密钥**K_C,V**,还包含票的有效期。任何逾期门票均需重新申请签发。类似于**AS-REP**的接收,客户端解密消息并确认**TGS-REP**中的信息是可接受的(如算法3所示)。然后保存服务票证和会话密钥**K_C,V**,以便进行后续通信。如果对TGS-EX进程的任何验证出错,客户端将用“KRB-ERR”响应TGS。 + +### 2.2.4 双向认证交换 + +双向认证交换包含以下两个报文: + +**1)** **AP-REQ**:={IDc, IDv, TimeStamp, ST || Authenticator2}; + +与**TGS-REQ**类似,客户端需要在**AP-REQ**中发送一个身份验证码**Authenticator2**。但是,在这种情况下,身份验证器包含由客户端生成的服务会话密钥**K_session**。如果服务票据在有效期内,并且身份验证码核验正确,则服务请求成功。TGS将保存**K_C,V**和**K_session**供进一步使用。如果发生任何错误,返回“KRB-ERR”。 + +**2)**AP-REP:={Kc,v{IDc,IDv,TimeStamp}; + +服务器发送一个带有id和时间戳的响应,客户端在解密后进行检查。此外,智能合约不仅通过地址绑定ID来确保身份验证,而且还可以通过我们设计的**BCTs-Nc**算法实现重放检测。如果上述所有验证都通过,客户端和服务器之间的相互验证成功。然后,客户端和服务器可以使用临时会话密钥启动服务会话。如果任何步骤出现错误,服务器将使用“**KRB-ERR**”消息响应客户端。 + +``` +算法4 AP-EX + +Require: (ID_C, ID_V ST_V)Output: SUCCESS or ERROR +1: K_session ← GenRandKey(); +2: Authenticator2 ← EncK_C,V(IDc || CheckSum || K_session || TimeStamp1); +3: AP_REQ = ID_C || ID_V || TimeStamp2 || ST_V || Authenticator2; +4: Await DKSM.CSetAP_REQ(ID_C, ID_V. Nonce_C, AP_REQ); +5: AP_REQ ← Await DKSM.VGetAP-REQ(ID_C, ID_V); +6: if users[ID_C].APREQ[ID_V].content != null and ContentCheck() and CheckST(); +7: AP-REP ← EncKsession(ID_C || ID_V || TimeStamp); +8: Await DKSM.VSetAP-REP(ID_C , ID_V , Nonce_V, AP_-REP); +9: AP_REP ← Await DKSM.CGetAP-REP(ID_C , ID_V); +10:if users[ID_C].APREP[ID_V].content != null and ContentCheck() == True ; +11:Decrypt and Get K_session; +12:return K_session; +13: else +14: return ERROR; +15:end if +16: else +17: return ERROR; +18:end if +``` + + + +## 2.3 安全性分析 + +DKSM解决了Kerberos协议所面临的大部分安全挑战,以下是细节: + +**1. 隐私性**。数据包在被加密后存储在智能合约中。因此,没有对称密钥的用户无法访问明文数据。其次,为了防止对称密钥在传输过程中被泄露,我们使用CP-ABE算法。客户端只有经过智能合约的认证和授权后才能获得TGT票据,每个用户的权限列表由服务所有者设置。并且,DID作为其身份验证解决方案。 + +**2. 细粒度访问控制**。为了防止在交易过程中被泄露,DKSM实现了CP-ABE算法,在多个属性之间共享**KDC**。只有具有正确属性,才能解密**密文信息。 + +**3. 重放攻击抵御**。重放攻击指攻击者拦截一条消息,并恶意将这条消息重新发送给消息接收方,以通过身份验证或在网络中实施欺诈行为。常见的抵御方式有加入时间因素或者一次性验证码等,加大重放成功的难度。我们提出了一个基于区块链的时间同步解决方案,称为**BCTs-Nc**。具体来说,我们利用区块链的各种特性,如区块链账户地址作为DID,块高度,时间戳等,智能合约根据块数和块时间戳随机生成一个变化因子,变化因子阻碍了重放攻击的成功进行。 + +**4. 中间人攻击抵御**。我们的方案通过使用签名机制和证书,有效地抵抗了中间人的攻击。用户进行的每笔交易都被链接到他们的帐户地址。即使攻击者窃取了消息,他们也将无法伪造交易,因为私钥是保密的。 + +**5. 白银票据和黄金票据攻击抵御**。白银票据,黄金票据分别指代服务票据ST和认证票据TGT。白银票据攻击:攻击者获取目标服务器的NTLM哈希值,以便伪造有效的ST票据,访问特定的服务;黄金票据攻击:攻击者获取域控krbtgt的密码哈希值,用于伪造TGT票据。我们的方案建立在区块链技术之上,为用户提供身份验证,有效地禁止凭证伪造。攻击者将无法伪造或窃取DKSM协议的票据。 + + + +# 3. 创新性说明 + +本文提出的去中心化 Kerberos 安全服务管理方案(DKSM)在多个方面具有显著的创新性,主要体现在以下几个方面: + +1. 去中心化身份认证: + +DKSM 引入了基于区块链账户地址的去中心化身份(DID)认证机制,替代了传统 Kerberos 中的集中化密钥分发中心(KDC)。这种去中心化的设计消除了单点故障问题,提高了系统的可用性和可靠性。 + +2. 高级加密标准(AES)和密文策略属性基加密(CP-ABE)结合: + +DKSM 结合了 AES 和 CP-ABE 两种加密技术,既保证了数据传输的高效性,又提供了细粒度的访问控制。特别是采用了快速属性加密(FABEO)方案,该方案相比传统的 CP-ABE 方案,具有更短的密文和更高的加密解密效率。 + +3. 基于区块链的时间同步和随机数校验机制: + +DKSM 设计了一种基于区块链的时间同步和随机数校验解决方案(BCTs-Nc),有效防止了重放攻击。通过利用区块链的不可篡改性和可追溯性,确保了时间戳和随机数的安全性,进一步提升了系统的防护能力。 + +4. 智能合约实现身份认证: + +DKSM 通过智能合约实现身份认证和访问控制。智能合约的自动执行特性不仅提高了认证过程的效率,还减少了人为干预的可能性,确保了认证过程的公正性和透明性。 + +5. 跨平台的可移植性和成本效益: + +DKSM 方案在两个区块链网络(Sepolia 和 FISCO)上的实验表明,该方案具有良好的可移植性和成本效益。特别是在 FISCO BCOS 平台上,各阶段的时间成本分析表明,DKSM 在性能和成本上具有显著优势,适用于实际应用场景。 + +6. 全面的安全防护: + +DKSM 不仅解决了传统 Kerberos 协议中的密钥暴露和时间同步问题,还通过区块链和 CP-ABE 技术,提供了全面的安全防护。本文详细分析了 DKSM 在防止重放攻击、中间人攻击和票据伪造攻击等方面的优势,展示了其在安全性上的创新。 + +综上所述,本文提出的 DKSM 方案在去中心化身份认证、加密技术结合、时间同步和随机数校验、智能合约应用、跨平台可移植性以及全面安全防护等多个方面进行了创新,提供了一种高效、安全、可靠的分布式身份认证和访问控制解决方案,具有重要的理论意义和应用价值。 From 5bcf2959422a6f64977a838114b325e284bc5c9a Mon Sep 17 00:00:00 2001 From: LiuZhuJunYa Date: Sun, 8 Dec 2024 10:41:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=87=8D=E7=94=9F=E4=B9=8B=E6=88=91?= =?UTF-8?q?=E5=81=9A=E5=AE=89=E5=85=A8=E4=BD=9C=E5=93=81=E7=AB=9E=E8=B5=9B?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=8F=90=E4=BA=A4=E5=AE=8C=E6=95=B4=E4=BD=9C?= =?UTF-8?q?=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Rebirth/Contracts/DKSM.sol | 202 +++++++ .../Rebirth/Contracts/README.md | 203 +++++++ 2024-shenzhen-FinTechathon/Rebirth/README.md | 6 +- .../Rebirth/img/wps1.jpg | Bin 0 -> 290089 bytes .../Rebirth/img/wps2.jpg | Bin 0 -> 433143 bytes .../Rebirth/src/abi/DKSM.abi | 533 ++++++++++++++++++ .../Rebirth/src/bin/DKSM.bin | 1 + .../Rebirth/src/contracts/DKSM.sol | 202 +++++++ .../Rebirth/src/deploy/DSKM.go | 93 +++ .../Rebirth/src/deploy/EthereumUtils.go | 78 +++ 2024-shenzhen-FinTechathon/Rebirth/src/go.mod | 39 ++ 2024-shenzhen-FinTechathon/Rebirth/src/go.sum | 182 ++++++ .../Rebirth/src/main.go | 263 +++++++++ .../Rebirth/src/test/setup_KRB.go | 225 ++++++++ .../Rebirth/src/user/Client.go | 10 + .../Rebirth/src/user/KDC.go | 10 + .../Rebirth/src/user/Server.go | 8 + .../Rebirth/src/user/user.go | 27 + .../Rebirth/src/utils/AES.go | 103 ++++ .../Rebirth/src/utils/AP-EX.go | 247 ++++++++ .../Rebirth/src/utils/AS-EX.go | 261 +++++++++ .../Rebirth/src/utils/Setup.go | 134 +++++ .../Rebirth/src/utils/TGS-EX.go | 262 +++++++++ .../Rebirth/src/utils/fame_ABE.go | 251 +++++++++ 24 files changed, 3337 insertions(+), 3 deletions(-) create mode 100644 2024-shenzhen-FinTechathon/Rebirth/Contracts/DKSM.sol create mode 100644 2024-shenzhen-FinTechathon/Rebirth/Contracts/README.md create mode 100644 2024-shenzhen-FinTechathon/Rebirth/img/wps1.jpg create mode 100644 2024-shenzhen-FinTechathon/Rebirth/img/wps2.jpg create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/abi/DKSM.abi create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/bin/DKSM.bin create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/contracts/DKSM.sol create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/deploy/DSKM.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/deploy/EthereumUtils.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/go.mod create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/go.sum create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/main.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/test/setup_KRB.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/user/Client.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/user/KDC.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/user/Server.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/user/user.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/utils/AES.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/utils/AP-EX.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/utils/AS-EX.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/utils/Setup.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/utils/TGS-EX.go create mode 100644 2024-shenzhen-FinTechathon/Rebirth/src/utils/fame_ABE.go diff --git a/2024-shenzhen-FinTechathon/Rebirth/Contracts/DKSM.sol b/2024-shenzhen-FinTechathon/Rebirth/Contracts/DKSM.sol new file mode 100644 index 000000000..8d2cc003e --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/Contracts/DKSM.sol @@ -0,0 +1,202 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.16; + +contract DKSM { + // 用户结构体定义 + struct User { + address user; // 用户的以太坊地址 + string ID; // 用户的唯一标识符 + string Key; // 加密密钥 + string PL; // 权限列表 + string lifetime; // 生命周期 + bool login; // 登录状态 + uint256 nonce; // 随机数,用于防止重放攻击 + uint256 timestamp; // 时间戳,用于记录注册或操作时间 + mapping(string => Packet) asreq; // 存储 AS-EX 请求的映射 + mapping(string => Packet) asrep; // 存储 AS-EX 响应的映射 + mapping(string => Packet) tgsreq; // 存储 TGS-EX 请求的映射 + mapping(string => Packet) tgsrep; // 存储 TGS-EX 响应的映射 + mapping(string => Packet) apreq; // 存储 AP-EX 请求的映射 + mapping(string => Packet) aprep; // 存储 AP-EX 响应的映射 + } + + // 数据包结构体定义,用于存储消息内容和时间戳 + struct Packet { + string content; // 消息内容 + uint256 timestamp; // 消息的时间戳 + } + + address public owner; // 合约的所有者地址 + mapping(string => User) users; // 用户ID到用户信息的映射 + + // 构造函数,设置合约所有者 + constructor() { + owner = msg.sender; + } + + // 初始化用户信息的函数,仅合约所有者可以调用 + function setup(address iUser, string calldata iID, string calldata iKey, string calldata iPL, string calldata ilifetime) external { + require(msg.sender == owner); // 检查调用者是否为合约所有者 + users[iID].user = iUser; // 设置用户地址 + users[iID].ID = iID; // 设置用户ID + users[iID].Key = iKey; // 设置用户密钥 + users[iID].PL = iPL; // 设置权限列表 + users[iID].lifetime = ilifetime;// 设置生命周期 + users[iID].nonce = uint256(keccak256(abi.encodePacked(block.timestamp, block.difficulty, block.number))); // 生成随机数nonce + users[iID].timestamp = block.timestamp; // 设置时间戳 + users[iID].login = false; // 初始化登录状态为false + } + + // 获取特定用户的nonce值,用于防止重放攻击 + function get_nonce(string calldata iID) external view returns (uint256){ + require(msg.sender == users[iID].user); // 检查调用者是否为用户本人 + return users[iID].nonce; // 返回用户的nonce + } + + // 内部函数,检查提供的nonce是否与存储的nonce匹配,并递增nonce + function check_nonce(string calldata iID, uint256 _nonce) internal returns (bool) { + require(msg.sender == users[iID].user); // 检查调用者是否为用户本人 + bool Check; + if (users[iID].nonce == _nonce) { + Check = true; // nonce匹配 + } else { + Check = false; // nonce不匹配 + } + users[iID].nonce += 1; // 匹配后递增nonce + return Check; // 返回检查结果 + } + + // 返回用户的关键信息,用于验证设置的有效性 + function getInfo(string calldata iID) external view returns (address, string memory, string memory, string memory, string memory) { + return (users[iID].user, users[iID].ID, users[iID].Key, users[iID].PL, users[iID].lifetime); + } + + // 客户端设置AS-EX请求 + function C_Set_AS_REQ(string calldata IDc, string calldata IDas, string calldata AS_REQ, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + bool Check; + if (check_nonce(IDc, _nonce)) { // 检查nonce + users[IDc].asreq[IDas].content = AS_REQ; // 存储AS-EX请求内容 + users[IDc].asreq[IDas].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 认证服务器获取AS-EX请求 + function AS_Get_AS_REQ(string calldata IDc, string calldata IDas) external view returns (string memory, uint256, string memory, string memory) { + require(msg.sender == users[IDas].user); // 检查调用者是否为认证服务器用户 + return (users[IDc].asreq[IDas].content, users[IDc].asreq[IDas].timestamp, users[IDc].Key, users[IDas].Key); // 返回AS-EX请求及相关信息 + } + + // 认证服务器设置AS-EX响应 + function AS_Set_AS_REP(string calldata IDc, string calldata IDas, string calldata AS_REP, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDas].user); // 检查调用者是否为认证服务器用户 + bool Check; + if (check_nonce(IDas, _nonce)) { // 检查nonce + users[IDc].asrep[IDas].content = AS_REP; // 存储AS-EX响应内容 + users[IDc].asrep[IDas].timestamp = block.timestamp; // 设置时间戳 + users[IDc].login = true; // 更新用户登录状态为true + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 客户端获取AS-EX响应 + function C_Get_AS_REP(string calldata IDc, string calldata IDas) external view returns (string memory, uint256) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + return (users[IDc].asrep[IDas].content, users[IDc].asrep[IDas].timestamp); // 返回AS-EX响应及时间戳 + } + + //-----------------------------TGS-EX---------------------------- + // 客户端设置TGS-EX请求 + function C_Set_TGS_REQ(string calldata IDc, string calldata IDtgs, string calldata TGS_REQ, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDc].user && users[IDc].login == true); // 检查调用者是否为已登录的客户端用户 + bool Check; + if (check_nonce(IDc, _nonce)) { // 检查nonce + users[IDc].tgsreq[IDtgs].content = TGS_REQ; // 存储TGS-EX请求内容 + users[IDc].tgsreq[IDtgs].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // TGS服务器获取TGS-EX请求 + function TGS_Get_TGS_REQ(string calldata IDc, string calldata IDtgs) external view returns (string memory, uint256, string memory) { + require(msg.sender == users[IDtgs].user); // 检查调用者是否为TGS服务器用户 + return (users[IDc].tgsreq[IDtgs].content, users[IDc].tgsreq[IDtgs].timestamp, users[IDtgs].Key); // 返回TGS-EX请求及相关信息 + } + + // TGS服务器获取服务密钥 + function TGS_Get_CKv(string calldata IDtgs, string calldata IDv) external view returns (string memory) { + require(msg.sender == users[IDtgs].user); // 检查调用者是否为TGS服务器用户 + return users[IDv].Key; // 返回服务密钥 + } + + // TGS服务器设置TGS-EX响应 + function TGS_Set_TGS_REP(string calldata IDc, string calldata IDtgs, string calldata IDv, string calldata TGS_REP, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDtgs].user); // 检查调用者是否为TGS服务器用户 + bool Check; + if (check_nonce(IDtgs, _nonce)) { // 检查nonce + users[IDc].tgsrep[IDv].content = TGS_REP; // 存储TGS-EX响应内容 + users[IDc].tgsrep[IDv].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 客户端获取TGS-EX响应 + function C_Get_TGS_REP(string calldata IDc, string calldata IDv) external view returns (string memory, uint256) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + return (users[IDc].tgsrep[IDv].content, users[IDc].tgsrep[IDv].timestamp); // 返回TGS-EX响应及时间戳 + } + + //-----------------------------AP-EX---------------------------- + // 客户端设置AP-EX请求 + function C_Set_AP_REQ(string calldata IDc, string calldata IDv, string calldata AP_REQ, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + bool Check; + if (check_nonce(IDc, _nonce)) { // 检查nonce + users[IDc].apreq[IDv].content = AP_REQ; // 存储AP-EX请求内容 + users[IDc].apreq[IDv].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 服务端获取AP-EX请求 + function S_Get_AP_REQ(string calldata IDc, string calldata IDv) external view returns (string memory, uint256) { + require(msg.sender == users[IDv].user); // 检查调用者是否为服务端用户 + return (users[IDc].apreq[IDv].content, users[IDc].apreq[IDv].timestamp); // 返回AP-EX请求及时间戳 + } + + // 服务端设置AP-EX响应 + function S_Set_AP_REP(string calldata IDc, string calldata IDv, string calldata AP_REP, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDv].user); // 检查调用者是否为服务端用户 + bool Check; + if (check_nonce(IDv, _nonce)) { // 检查nonce + users[IDc].aprep[IDv].content = AP_REP; // 存储AP-EX响应内容 + users[IDc].aprep[IDv].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 客户端获取AP-EX响应 + function C_Get_AP_REP(string calldata IDc, string calldata IDv) external view returns (string memory, uint256) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + return (users[IDc].aprep[IDv].content, users[IDc].aprep[IDv].timestamp); // 返回AP-EX响应及时间戳 + } +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/Contracts/README.md b/2024-shenzhen-FinTechathon/Rebirth/Contracts/README.md new file mode 100644 index 000000000..b51585a2a --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/Contracts/README.md @@ -0,0 +1,203 @@ +## DKSM 合约接口文档 + +### 概述 + +DKSM 是一个智能合约,旨在通过去中心化的方式管理 Kerberos 服务。该合约定义了用户注册、身份验证及权限管理相关的功能,包括 AS-EX、TGS-EX 和 AP-EX 的请求与响应操作。 + +**合约版本**:Solidity 版本:^0.8.16 + +**许可证**:SPDX-License-Identifier: GPL-3.0 + +**合约所有者** + +合约所有者在部署时自动设定为合约部署者,拥有以下权限: + +* 初始化用户 (setup) +* 维护用户信息 + +**数据结构** + +**User (用户结构体)** + +| 字段 | 类型 | 描述 | +| --------- | ------- | ------------------------ | +| user | address | 用户公钥地址信息 | +| ID | string | 用户唯一标识符 | +| Key | string | 用户加密密钥 | +| PL | string | 权限列表 | +| lifetime | string | 用户生命周期 | +| login | bool | 用户登录状态 | +| nonce | uint256 | 随机数,用于防止重放攻击 | +| Timestamp | uint256 | 用户注册或者操作时间戳 | + +**Packet (数据包结构体)** + +| 字段 | 类型 | 描述 | +| --------- | ------- | ---------- | +| content | string | 消息内容 | +| timestamp | uint256 | 消息时间戳 | + +### 主要接口 + +#### 用户管理 + +**1. setup** + +初始化用户信息。 + +* **权限**: 仅合约所有者可调用 +* **输入参数**: + * iUser (address): 用户以太坊地址 + * iID (string): 用户唯一标识符 + * iKey (string): 用户加密密钥 + * iPL (string): 权限列表 + * ilifetime (string): 用户生命周期 + +* **返回值**: 无 + +**2. get_nonce** + +获取指定用户的随机数 (nonce)。 + +* **权限**: 仅用户本人可调用 +* **输入参数**: + * iID (string): 用户唯一标识符 + +* **返回值:uint256: 用户的 nonce + +**3. getInfo** + +获取用户的关键信息。 + +* **权限**: 无限制 +* **输入参数**: + * iID (string): 用户唯一标识符 +* **返回值**: + * address: 用户地址 + * string: 用户 ID + * string: 用户密钥 + * string: 权限列表 + * string: 生命周期 + +#### AS-EX (认证服务器交互) + +**1. C_Set_AS_REQ** + +设置客户端的 AS-EX 请求。 + +* **权限**: 仅用户本人可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDas (string): 认证服务器 ID + * AS_REQ (string): 请求内容 + * _nonce (uint256): 客户端当前随机数 +* **返回值**: + * bool: 操作是否成功 + +**2. AS_Get_AS_REQ** + +认证服务器获取指定客户端的 AS-EX 请求。 + +* **权限**: 仅认证服务器用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDas (string): 认证服务器 ID +* **返回值**: + * string: 请求内容 + * uint256: 请求时间戳 + * string: 客户端密钥 + * string: 认证服务器密钥 + +**3. AS_Set_AS_REP** + +设置认证服务器的 AS-EX 响应。 + +* **权限**: 仅认证服务器用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDas (string): 认证服务器 ID + * AS_REP (string): 响应内容 + * _nonce (uint256): 认证服务器当前随机数 +* **返回值**: + * bool: 操作是否成功 + +**4. C_Get_AS_REP** + +客户端获取 AS-EX 响应。 + +* **权限**: 仅客户端用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDas (string): 认证服务器 ID +* **返回值**: + * string: 响应内容 + * uint256: 响应时间戳 + +#### TGS-EX (票据授权服务器交互) + +**1. C_Set_TGS_REQ** + +设置客户端的 TGS-EX 请求。 + +* **权限**: 仅已登录用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDtgs (string): TGS 服务器 ID + * TGS_REQ (string): 请求内容 + * _nonce (uint256): 客户端当前随机数 +* **返回值**: + * bool: 操作是否成功 + +**2. TGS_Get_TGS_REQ** + +TGS 服务器获取指定客户端的 TGS-EX 请求。 + +* **权限**: 仅 TGS 服务器用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDtgs (string): TGS 服务器 ID +* **返回值**: + * string: 请求内容 + * uint256: 请求时间戳 + * string: TGS 服务器密钥 + +**3. TGS_Set_TGS_REP** + +设置 TGS-EX 响应。 + +* **权限**: 仅 TGS 服务器用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDtgs (string): TGS 服务器 ID + * IDv (string): 服务端 ID + * TGS_REP (string): 响应内容 + * _nonce (uint256): TGS 服务器当前随机数 +* **返回值**: + * bool: 操作是否成功 + +#### AP-EX (服务端交互) + +**1. C_Set_AP_REQ** + +设置客户端的 AP-EX 请求。 + +* **权限**: 仅客户端用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDv (string): 服务端 ID + * AP_REQ (string): 请求内容 + * _nonce (uint256): 客户端当前随机数 +* **返回值**: + * bool: 操作是否成功 + +**2. S_Get_AP_REQ** + +服务端获取 AP-EX 请求。 + +* **权限**: 仅服务端用户可调用 +* **输入参数**: + * IDc (string): 客户端 ID + * IDv (string): 服务端 ID +* **返回值**: + * string: 请求内容 + * uint256: 请求时间戳 \ No newline at end of file diff --git a/2024-shenzhen-FinTechathon/Rebirth/README.md b/2024-shenzhen-FinTechathon/Rebirth/README.md index 65d1f61dd..ea8620857 100644 --- a/2024-shenzhen-FinTechathon/Rebirth/README.md +++ b/2024-shenzhen-FinTechathon/Rebirth/README.md @@ -94,7 +94,7 @@ Kerberos 是一种基于对称密码实现的身份认证协议。Kerberos名称 三个交换事务,分别是:认证服务交换(AS-EX),票据授予服务交换(TGS-EX),应用交换(AP-EX)。它的目的是分发密钥和凭证,同时提供身份验证。关于每个参与者的信息,如他们的 ID 和密钥,都存储在 KDC 的数据库中。 -![img](wps1.jpg) +![img](img/wps1.jpg) 图1 Kerberos协议认证流程图 @@ -162,7 +162,7 @@ PKI,全称公钥基础设施(Public KeyInfrastructure),是一种由认证中 此外,DKSM融合基于密文策略的属性基加密以实现数据细粒度访问控制,对链上数据进行隐私保护。与传统的安全服务管理相比,新的方案具有以下特点:首先,去中心化,这意味着不再依赖于单一的中心机构来管理安全服务。其次,可追溯性,可以追踪到每一次操作的来源和过程。再者,隐私保护,用户信息不被泄露。最重要的是,DKSM实现了3As原则,即提供了访问控制、授权和审计三大功能。确保安全服务的全面性和可靠性。由于传统Kerberos不提供授权功能,DKSM将授权简化为包含用户ID和权限ID,操作权限的权限列表来表示权限范围。最后,通过在以太坊测试网络和FISCO的实验表明DKSM方案的可行性。 -![img](wps2.jpg) +![img](img/wps2.jpg) 图3 去中心化Kerberos身份认证设计总览图 @@ -456,4 +456,4 @@ DKSM 方案在两个区块链网络(Sepolia 和 FISCO)上的实验表明, DKSM 不仅解决了传统 Kerberos 协议中的密钥暴露和时间同步问题,还通过区块链和 CP-ABE 技术,提供了全面的安全防护。本文详细分析了 DKSM 在防止重放攻击、中间人攻击和票据伪造攻击等方面的优势,展示了其在安全性上的创新。 -综上所述,本文提出的 DKSM 方案在去中心化身份认证、加密技术结合、时间同步和随机数校验、智能合约应用、跨平台可移植性以及全面安全防护等多个方面进行了创新,提供了一种高效、安全、可靠的分布式身份认证和访问控制解决方案,具有重要的理论意义和应用价值。 +综上所述,本文提出的 DKSM 方案在去中心化身份认证、加密技术结合、时间同步和随机数校验、智能合约应用、跨平台可移植性以及全面安全防护等多个方面进行了创新,提供了一种高效、安全、可靠的分布式身份认证和访问控制解决方案,具有重要的理论意义和应用价值。 \ No newline at end of file diff --git a/2024-shenzhen-FinTechathon/Rebirth/img/wps1.jpg b/2024-shenzhen-FinTechathon/Rebirth/img/wps1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96c14dcf15317f7326e3759db9868c602eb51309 GIT binary patch literal 290089 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�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

v$asrAjP@#^%-MfPECnQJx0k7j+j5$ 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 bXA1hYM_oprer#be<3D84|34l_f2a62T%&_g literal 0 HcmV?d00001 diff --git a/2024-shenzhen-FinTechathon/Rebirth/img/wps2.jpg b/2024-shenzhen-FinTechathon/Rebirth/img/wps2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1e7e3eb9b1d610f4bc456c54dd30cb0435ca32e GIT binary patch literal 433143 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�-|#B?7MX;-Yr%l?Z+so? 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
H!*HtzXQ}KX+LoG1p-Uu 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 n(7 zlU%_K>bh;*Y}qCxXVlSlbIUQ)8fgMz**%lbA@k&}a0rs%Eq`v_ouDM_kFa*lk3 z^k?Sg+}Y`*p@yBj-aptVjH>;`-^*B!5s%@S92cSR3a*Xmt}ZqpWRjHRwNl}R;+EVhTz<>HCL9a_l zh$u+plzvO{^=MINOS3UAIy<53i>lUHdiC51!Il;l7Bl{okRJrSPh%&sYpire<{{Fb zMUNB4qo$Bl`Zs|FXPyh0KZ+GXkpKN!1%-y!kT6e5x?*KA)o0=e_8B@B+N6}w&$r8n;d>lAAoj5 z$z(=Gbl!)3g2=+!9*U+W;*J{dC*1W|%=Jibc6!s&Hn|NH_h}k8hhpYWas^po?33rc zkvD%@#i;&&Iu-n+5ojvnZsVGpYSRW;LoYGv*(CM_8ETTUb~rsHudyYA;?XYZEP(<$ zC7A%>bUvo-z!6MFFFMC1ehP?rIVML2AH;=gppR8gfJn@`bDOiOp57%Kj)5&^AX69@=)eHA*rZ$J@zxT* zs$8{ss;MWJUy=7^*RAc@^7wvG0I|tVTj5!qC5>z2rmIbr^$R8~U~aR6EsHFAta2f^RS{f2fz5u3L12@M^}D^bq}$N%q>U{au6{J^>U!o5lz8tp+Y{dus!d9DgM)|=oHF7$UU-AD z^Zqt5@V*9#H2pyy!_DTd^&o79flTFp%&tO<}0h9L*k0YNKXx} zlQ%I(WuOF$%&DbZ15b~S*xBsze8ADx3Jz}gPO1M+xhfOr-k)nJZ=zfkMl1DH@_zaR zNQJj}C>aKY7}OAmn6Hg^AdvA9us*uc|1k0 zErZBpQ{3a=v+8b3c4Uuf!%?oDcU`>fWL@w{ubG5eANt;cZQ2fhk#mazIfZ89i5yI?99|!T84k#Z{b|v!W759P ztG@K!Vo8mDch5Ah%2gfBjlCO0c~82quzasH`U$-X#QO?=n15tu?+WHuJ{%i`cVy^l z=y6VsN3}c10jJgYQs(;mr=WwEzr=2 zxR>CKtV<251!v%Bs8(qiS`8(+7+Bs9#o@CGm;&DET{HOp1{aF=m|902crBOPC0FBRCv7NhCJ&*$eqTVWp7?8a6S4V9IZu5InA41 z`fZ-o7{5{28!@_dcb$6t)^9l~96+j(R%8gZmVFU8f=PkC_c4_4aA7oPRxUm1y#)ku zTiZcx?}TOZ*H#s@#Q3u_iF>A?#V;;(x`hppu z3BB^JD<;ptRb}=a_;sDXdk4$}Im(VEJvA36J>Xl_;F+}NZw#)VkA*%rigCkC|8=#u z(PwTk%f6P!^s27C#DO?lbUqWA1;p84ieON@l)g0^TGHDvHiILbY6&%2Gr$XJ4>SkU zV`DXI@ALFM%rE@maMG33ZBd6=o42+%>!TkW&Zi>N*pa#TYe+DdNFtk@XzT=NfW~YB7 zAHDJVQRc`w*WV>wUqF`|4Ru?x`co@F3ok-6cahGYv3ei219o7OTI+^_t1-%pdyS-u zJ@St9q@g(>`FZvH8mr_zR_6()wH05*_2wpRh_KGpRk<)tPoi@TF>n3cE&334cptR~ z@SqWcD6dHWmfpkN0&>MndKr^P;GhaacET122pFak0yov|NsII;lA=VfY1<2cPP=#T zD+p;O{>vw)-?hKNRcY*qIt{lWmB=UEC})4M7wl!P&c2LGZp5}EvSVNa)eS?%r4@oP0KAr~6K?l*Fy##o6TdiwXp%RCvuez= zQK+&aa_%Nl%d~Y00r?GLI`k-GrWhkvHR>CVlB$J3(E&+Y0f3yYMUM9w>In6 zPHtg#7+_86t*bXT`&Epxg1@nJOSdW!T6^(sMFxGr7Ckj0xvT;z!~)-8+bHCCPP9MP zZCE;$=h9{T`0hQX+vjyu^Xll|5JVcF05 zl|)SV`W!$ER%e{F-c;DW@nfua9WUukpCEtvetzO&ZW)($ba`*#(g^x04id#N=(~$# z?;q52|JddF^Ph|S{++L(9`#?@mH(OT?oTBY|GnaK9Q`f0NDabHUtDvR+bhQVPf4oW z80-(~D64JgBk*kwe~mVELedLU0uY15433hZhRKvypRj%M8j5g#2_EYFIdhrd>c!lH5HrQUVF0($oTx=JnQCgL z^0d7A%u#5Hp2W?$${m$ouEU0}2)u$3A%6YIY|8CO!NT3OL*CgPQu2v-&)MS-e-w;nUxeV;lAr*S2bs!xiiPdosgT&sP zSMH-GiTw@_>6)C#j#_l$ zp0B553OT#+&Hisb`o`s_xu-t-X{f{tExNq}JP9bepK$v#Z~9ZOt=zub>g>__FW!ER zuI&EOs!uPez;Zu_vZzr>#53kH`;qtnxre!;!=KM>lZ#xK;9*XGP%Tek&x4#C< zIx8tfi#(85l@bWHnjkOr;%3W98sy{O%R5fBH2eJgTt*0YT=EF4F5t}@yu)CtpK)@fyojN z*VMV&-BEUz>t|EEoet2x+^$vX4d&ir^%gvi9Rp$4%0f@(-q5ZsuKAgT<8t^MJvQ^%JTPyhH-APX&w!X>$s~QAs=OX}2+YC7 z?U*fEa-l`%a*%clCor4Hk!uikN@r6PA60>_`GlS9uPhhDsvSWrwVVc#;(PJ5`%Dr% zR8)NkUsPWh0yYs%ga<&~Mz`((i=7e9S(6 zdx-;hl}m)afjSVX9=}hd@+a!eam4;>dkBu63x>)hr5y^`hn-^A7Lmm}%)C)NrEW_e zPQ?`R$JXIB^Ttu2r1S;i{CB=_y|@3hE6kDv(T?4Vzn%=&+MuTH;LMkZV>`8YAkzjt zP>|e)$1n0nJHW~BSxk$d1L`lQV+6~itpG$gNFRX4E$~!tKPdc_Q-jM{O zJ$X|tsl|V)2e2%cAd&0K`R?ROo$^ERd@~oAn%p3&zJq6omoR6pw5uW6@SS;n!i}AX zd3xRLuzAU{oRIlRgs?4QbRRc_TJ6}e<)~v{*fTT)n(=)!pI;&8v=bX4{(4OW$h`py z(MH1jyAPp0yJAWjkN#rPQ#Yy0Bep(ZZfm{>hVK~Cq-ik(1a_h}}D3LrP!*yd>{% z;kqn6I!3bKT_r3K*OJ6a9fEe(c&+;_AUwjE-|)(&&aQV4oVX?Y$tD)lrQ7u`c@flg zi^o>Bmdhi1W6pJ0Ka@v@7~Xtzp?QAal+`UZ_pB%F2JP3nMk^pE;syiHV7yMxsg*b} z$%JRDA-Ql9+*nj}KI08N{+`(aREkY%X@+@utL}LG8Xesd(Kyn}!@+@NVX%p@vGrGzK|Ea@$c*ZrMzCea*J*&W5`Y0A_+&g*wXnwM^dR`&vbP?97&z6Mxeh3 zK5z_(jAwg)xq=6baPIUx-v`M`Jsh`2E-65^bB~}P!NHleUQ43bM6*i?*S0VS(w!gC zYt0kXI4+z-aVp~XC*9n*ER{`TOZao(az*0rnVZl~L=mab9XO41NIniUs*)X}w1hqq z0EGdPIU=RPwd(kJ0oLqvQQU@nL43DVFST#uJJ%vQ|KL5$WhR}$qF%M_w|`c_jDfX! z>_Xf76Bf)3U?fvT6FbdGMcg=;HAn^*18|Sm0QV4%cv0|>V^WUjW-v~}2S@O#!e?8ag51fvoIG_lD$Y6K?8U|&4k}6-x z0$44by694=?xH*8UOL<5=)jD+0%@*@RpoVNzn&l0)A5InM3R-{!c^i^on#cN_=%or z3Q#t%AJgB1SPc8IbJuG%0D(2S-Uouwq3TY%r#*{C?|*yYVjX>?$Hv7If6A)&Pde<0 z+`;HkF!ZbMGFvGb9NQw)_knx|m$-u$+aemvScN5wO^>#|wV0CeiDBAPA zg?KFJ-<42P>mjxwarYyvt>hUHz`{?4+tPqC9qFRBBL?)t5H9#nN7~nuLp4sGt>!7W zhnB0x?wrY}2zrE0_;0!J>iUzBTs1w^7Tca{}jV{i^vcLY)$~+X3xL?-r!ca{XmTRs2 zpj66^r=q$hh82L+3r-eAuKeiNb54WGqRMPy;AU14s?A`hix#*I&67THCDteoOqpv| z6FVmvGh=^Duc>+I3n$w`@&WwLGGxolP%wtDikq=mX9wrt6SFdyv!Th$Dep7XGSam) zLXAK75^5@j6{c}M*u0WW{QWk)D{k)C+%LVo-`TSe}@zbwaL7U$l%gu+X?M;Xh_!_uY@ITuAZU}n0ds)@&>6P z?i0{U+MbeCa`Y#Z(#tQ>cWYfiv_!yxA@0=Rnr^H+Eg-9rT!*}X0OSqEH#AS+0n}f zwuc?#FG37_A^nNaQNCbG0@aS%M#irW>kmGDC6S%nzAaDED9e87`Vk)ise3Ld7v_lQ zu|7l=bOi;sbK?9#sMBFxAWs@NA1+v+&4+d$K+GlM$T|gXUQ?+>1p-cUxO`2 zSXkH%Fq^n`g|j1KgDD}Dj2|fBX6#K7mX@(fRvCtU$W1*h=iXOy$2ED)1;_t!;1~ad{LLGnfd8wH@^7J#|8KV= z{|V6iGr0MuudU1|Y;+s?*aza&bi8*9+J8ynUPl}fmclvzPx?duveEz0^7%&#DQgK{ z)dR^Qv{%7O^(-AaGqtgFlcT54mn0<^82q_v^pi-Rf2E z;T~=yFs7&CcG-|)kc-eEvB)P)n`d<k^9^fm*SV<^22h`t5HGV=$iR1|5++VP5(Ls4Q4pg+^eds?nL6u2LqPoU;` zq?;&QSJI%Xz^nq%D`gQear#a$u(_>YZ?j-rN!zQDK}*PQv|+AA`Kd(RF(4d9vi9*Z z0RK{nfv~yV-W_{;;8vDU@k(8}Pek=OKIts1&#*4LQs??mV%Zcqy-VwTbhpH*9^D@4 zAuuTQ(cGM!b@CO;F`=X1aoap}*KhKYf1li~Zd)}!DrNKdyf0Svy!)@u|Feu8`KYFY z15W7__v1_7ltWF33faBuQX`Z8o1|*~e0&UYlq}gYZ7ilOfTTi7LUARMvOW5n77Uo0^}2(^0q<@{KVm$ zA$c#LWa@c>&#a8Ki8q&|wGsUZ8BI3j$#=A6;`6T$-Ti3+W-L+sEZlX<_KI+T+8k?? zDulV1K1QP+?bj4sdI5;q5z|i%eeNw#c1B({e^tH$s*4kg1IN{D>)NXxk&V9{wI-`0 zAS&XcXlecQzcAuV{To}@KYi|NCvMiw6fZP!%l%5*cjdsbJQ7^F>x+8I`&6N4D0h^? z3u|{-(pl0Z2}?W2twLyrX}>kKaZPLM6P_8|J&Ew~%0zPoan^>ty$Nmoy{FNTvd0KB zr3Hr4Fi5}6GuuB93>FYrg4z+!M75mU&Z}{Hp($NHU2JW}jw3O*NS{rnvq}|I{WOC= zX}cz9W#@i7KATY;*PK&$Z(*&+U1a!LA<)ZA&zAyvd`j%D3x99n ze4*-~;a>N!{CE4wayn;d`Wtp5u2Cb6OYm*NaU@`Y!===kP^^Lf85s<&r3^ZOW%?qN zxd$#~N-~6zhs+Tjd@ku<;um4lqLzg|}oW;}GxaU2OQ*ie8f4_}D% zCME-a>k=*3<{chNwzcr|GICj=8)V5j2s_&7EdJyE8GUJtK4$ zox1Y*KoN(RzbCs#6yr|ay zaSa^<+n^+(4Z#2-49lZ!f3R^dzRqzt)t(!(Vj@L(dbQ4uxoo)#Q!PR#p{5^r`qmbi zMP!l&ylJ7P5v(&iRK;a&;R`N1nQv9g zS6|EnV7evAn`MH->&OuN~N=zAJR-HJ;8+vbvG>1aV*fH*}!MKCV~={;o}hPbTFpz;mj{H z5P&nZR+*$L^o)7;BBQ*fT?+BQh?K-jp=Pjn@#U(B`ojAvOw|!s@p*Fp8Rkbc_`W0Y zEorTh#j3oVSMxstWhRa4+I>~c!O}d>E?r7cYUzA$BykVJA8SAn;PjzIc2n zbWcMMttk=4CGE&Xwly;G?y7x3L=N*zR?H!%Rx0(L)JS^!GejgfAp{>HmtD{<6e$x> z?YH8|HEQpg%Qc)?43(+@G>&tCwP@foId3%ueUVYOw>`o2t2l$5Z=m2J=lnc>`h@PD6bO42a|{NhX4WA~=#Lg4D98ccb9i&I9PXI6dfSt0`RUPi`b8`r}84cyQYtXjqXnA3-{Ga)ED=7BaoMBfB4w~*mk zZ~uM0f3M$v`~C6_9Gi|?+=pKW zj5B(l|HOvz`u2X(YO76foVUT3%1TzhiY`L)?>;f;@-Tg*^sk92=8e{p`)otsl|MIC z{`SSQ^)_P}4<;RS4&`|*#>~sK)5rkvSYzEKn7oWId;6&$bZfC_gPcpIIQ}A*eZM(M zhWz}-75&t5s2z^;b}+B=_@2@xdBJa7d<(E;JfZwf?<>=hU$V}f<@eA%O!i}Rl5&hV zi(Q~PDx5s9XmP(OJt(0gE(*FDW6^vQTi;yt@{-UmgPQX%QZd&dh|!Lf!`Doq=TmXo zcU*hr^$+W0c^mu zwEGzqt&J#4+54j1&^iK=47^*7N{C0;)UeLDu$?%Q`iIp2F}#)`|>y z!Zs#vF@KGj*Gi^E&pNrI*tJs5&t9y$kA~mkvpV){Hd}8R^>m_$XC+%zhj@yF&9YPUG`-xhb>gyWhY;fW$!DKZ zd#>z$5gr~-)qC_bfwsVfUN)cIZldnKZ?}x5rm|0=k=KGw^i(^}5J4a8(|JGNjz39n zOCH?fWm$Ci+y<+TT6$d}_zqZ|s}K=gh&IiDfxR}bfBC7fRE}4o_gk1LP+xnboQ3uW zc+sEhjBtUkvA->NqLXs^MT3=|`!9d{-`D)FtNicv{O`V(w$wrJw+}5}q~4^Kd`0<` zQ@^4WF4Wg+vC($SD=h!#b(*8P%+f<=HYnOTUT5?S(_m8lKF1Cz)JdsIJ9!`aOljhu&{S=su9~s{Sukkwdu@eiXGPiHed}|XLjv; zr7IS|I6)PPU!nuj;Qo&b%TcxSG@uHar}~)Gbr8jX8sZu$^Pb8|k2E6f#6C~U9JH#o zVzvx_3GKcI{g{lVX2>07gtGKzS7@nail492@}uGI%iQi5 z>a1~~#NtGIyWiwOVT%wZeVbD#^2_wF|5IHZMDR#NrkplK)32D{Z*G5oLHEuh@O6Sw8fZ$mqbn(qp=qz5C|%CE z8$$v5;@!!E=@6m|JcTD6ViuZQ;rXkdWBP^UT7%4p0FTkMxcCk>fw{ya>3w*QJ*;TI z5hfc>QoBnT6_Nx)GgK97Uf2);4DKRhtj=AKv99diu%%u_J9*)C73nd}(6PdfL9%<5 z-XfBDXjwb=lYEz$_5*{>wN&p3B)|UIC2m^w4sx&HycQ*tHC4lLq_DfF%(sS{uP9e> z1KqlkJ-JNoFRg7Z^c?5;dCz7So|L3V7Kco)I&`S60new=s8Rl2NkJHo#vy4MGA7Rh?y#<^RZABd*VIQhTPK`i#7`Y2uDAXj@WQ04^D8W z7NLy*BCOLIV86H(j3T|DtQ~=tyP|Ke0d3ADYCSsOzU5zh=GW8pfAIm0|GwhC*YW>{ zyN4G8HZKe9=cxkP$7zOZo29W{6ltOW(ib*X)07D~W zr`2O4Q-4;oC>KJJaFD|hV}sa)g&(jacc^8j=90Uij~Sa?|2jDG;_J6A-)8bO!&PSc z#O0!C@7z6{u@Hh;-2a5~QD_#MB&z(EoD-Qn1N#a8# zsN4(PBRnn7Ka)!NhPE%GcojauCMdsxKIv?1l8cH!&wLOh`l400yB}+WN!Y7BO|S1W zU5QsIU0C3-IN;st?iwyMi5{yg-mz1jdj@pMj2WCyfV>K=ScK5CgFeUDzhF=7i4BO0 z8uSlI?46fKO=!9B1bP6|P5kCJk@?hDb51KcW|%U0NX=&(fJeU8c*|_5A0*PsGi0u4 z0+f9hlClssr}nU*>LApc+LJnS9jnnkHz+sBoM#C?pu1K!`v=Sr^JH9nBigDWQgBr{ zXPo3)QpA*AWmR$8Bof=88#H$C)Ls5_Chc1FT_IXk z(Xv+V9sfsD*Qsu19sv#7vz&`R=Z=+TP-|(Y=QMf{FWqcT)ObekeifJV6|4waJvl}g z*0{?&6)`W9f1T_VH|!~hp&qRvOw=k<$t=r0-AH%R-gwcxj5vn#Ov?DQ9B!dE73jFF;>a!&-|=42NOkVS(YRMe$|qZ`(0I4x z=^=9y8nZeujmV$L9pG6oX`P!fh!(O8q7m6qK^JHaBM-@t5E!lrS2?$dze9KxX}-{Y zd4RuMH5hkWxa>P?>1FN)F+yA*T{_hg0p~a!&g8npqj{))j*#^73prg|sPEeY&)U1Z5gz5@o8+y71V|!RqBy2+A)HjT zpzNu`@9l#1Ej63~ZD%-9&ldf}9WPPNB$Mur@Lq=0-rZ{r&-Qf_|9Mx)cT}v`sKj6K zG2r8Sr@6r79)17TbvnPeSJa%PW+V>&n6o z5-MX#kkbeYZqh+{;$pV|z?c_Lf-QRehw?YQK=%=G{!O50D$r(pESYxut-niBSr~Ki z7MVf$Qd6|-WSw15TruUKY481xA>>yAwc5D!_MUdZz{3c-ciC<%{q1{fk_2q-u`k$4 zY@~1?OqAd6N>SRQVe~9g2(L#(&l*uOJgzl-NF$=@dCHZ|?5uF8xvXfCy1dJr2ZPv2 z1$ExNo^4RH^Aw1+JBmc91p|o~c{ld%KfE{cDGB%e# zvmC$OS=}y_MS7}S)&Tf_Rd3$`H}fZQ^KzeQ1zWXO@3%{aPjw+7JKEwu_QNsL3_QF> z%6mau=@sCz!a#5dQ)5~WKYDii0+6XBlxh3#ywkmF8Fspx0TSUWUc|}=0-n$c-V^zs z4|XLfqn@K38N&O|@~Q9MLHA|a;89OqiY7$EJ~5!=Ms`;1Yo=KL61DDvm$Z=YkzB#U zDwY7(w{F75Vs5xk`bCeUb>vD2z{{C)%8w-n$wX?M#FLC;WM;&G0>BQx&cWbkomc{aH5QCV5!3rIZTF3fV7W~bpfwlF1b@bRc{pX2gzBf6Z}qd4hM9VA1)0jRagy>}g|jLLHQ&bq zCGY#yFyGu!`dHS5QJXyI$rLO9a$r zi47ikQC}ZYmFW&OHAw)I2iEX|3fv8^jBQ}c9~2ip$D(##4itnD-pMz?n{Ga(RrR|E z#Qbr$F1CtWAS}nM#n^h>xwMmek5p7~HHg~bpZlf+LXyoFZSrrT+1uYnJ49gW0qx01 zv`I0uKYHl%q12qOF=t5-94jAb4fcsA7teaEo5Xj7;VW@0)TCU5_(-L2#Loy=aB>OB zx5LtFPa#dq1t*7nJ`4i1G6RyEsOZ~F+Mnud=7jx)`5wF^P@Uwdd4{f9p#|F*gTe1qf;E$oH@L1QkExmS;@NrmZ_kFxu&+;f z>)PH6ibZO9gxc+*4&NA#}CJLU_~B^pOB&^dAt?*it`)3yY*jJ2>|x2O(F_#|lQ^QQ);M z(!EB-i56r$^k)oSv7OzRmDg+1qbFk3ptD_~w71Cn&E8Y#r(Q`_D85Ojwj_c}$q%u3 z22lRY?q{30cn+!$L+H7f?FXT$m-IDvZxPRaZRS<2j$4iy3tB!vXKCvDP+>%WehwIi z-#b1(61V6E`+{rXCOeUyR^zm)Ru@V}U5k@ZYpXzJSq!wH3?@viAmrxHMx4(5p%SAY zm`YhHJr|w{Gvmc2?<^FzEKH;_UpYTJ)M6ay7w4{#ysv=!I}W??x7f0fXEo&xl~Nr61he-HT>-fq7A_#?w1n z3mZ8*d@ysHDnB4Dv;5lqpE(8eR?1sqi~B&YYd~cSf$~zS8qr{_-=Y;O4O(3>`qNs` z{@c<)K|`dzkXq<|sF%Gs7rXQ(qPTy%(>55tDd3e;qNEkVu_0!u>SVf1BdrA(G-s;& zC1Ukxab_nw@5$8_iQKd+_moV}jf{R`S6fWR;UULPgr1@Rs-b>^=mdWunT&T+A=^oK zkZ}rnrXPZ*Nxp5y058FB9>{gCl0R%v&I%=pv53M(V=z2dVbOI$tm0M|Y9=>=b#@I07{(PMig@H2B@AL91ou`7!MiQx50` z@o*t1*po2~?E)h#naeZ;0hW=oJBB_nV6l z&`$JTm*3PQZN9F48Hird?TFzE&+dP{!}I52H$7KV*?#BMHy{rQ*NyukSr4~^-Cs#O{17WKCU*EK_+d*N4wYHd60 zE9z}4+h>}iQ>5kB$Q&ww8V~$2Du+Ozptb3#sr{a*xu{QB|3+(U@kl5@-~Adeq#e`_ zHQqTRpW_Yd6waKu!TdJR+u8`k5gmKd2<*N%U?h&~tfNF#`_12VvM%w4Bj)&C^AQJG zuVl+S9Xa5WE~LG48kO_W^2L8!>=K+7PV}_I<+VZ^tgwuWYhmY*>y`ru&0Fd60}3H> zMX=%>JEsM08bD7v?70<9Jo5F62ye-d#2!C!)wujv30lmSs|g)m`+ zFqCT+5;6@t2d&skpgY+La_4n=TRi*O2RtCCE$;S*6Y&%_RSSEF$Qo)~(wul1g02<7 z_E$$)itVe~9UqdZFp|UDYW5@CwQd4(tt?)uViNC&-?KVqJmNt9sS$Z-YrI9&EfbC1 zi&1rLJn&u1fTIr{l2}lD|3XtGOh|@N3$eXQ5zqA1x{O!n-hUnUZZ@yi()7$XtlY`x zpO9m8`oH9sI8X0{`}zM^LH+*$xcq+wfd1d%Xa2XBmitdI__R;%*N%=@m|JM?m@%RC zWx3b*aVzK8jOtFUw%E8%`V-p>95XV~rPi2olYi8l--$tnI6ng0-GJ$TkVL#-n@=vc zRznOCqUW99&uzZacc6F5J9l|m#-Kcu@{qEwzs0{oMoJxj3h_;s0=Aq{`I8iwpMfbN zbu{FM`NWy$`S-`Y7QOVBj7zC;{^IKE+F_=1){4=VgPK!j=rHTJd|QbGe=a}Gp91_S zQ&cv4xuMj&EGEGaX#I?ucjeZ*Xztt0xs3(kZ|PE#<9G3cMYk|x``*YCp>xt&fkHXG zC+}AD7h7vKkE_{Wd1Tysuf23Ha|`RpLGGm)Lp*+vHpm?@{g~(3Z3K|vPAjhA*~Vr4 zDd6}Z!@^^HC-DspZ-KVjV@Gw~=Nh zd8f-o4BTIWkXrwqAJjVcEZSgFj-I1Z?mA;LJ)&RI{M&k~4}%@C0HtD2lrNU6(MCz2-t^IjL+x)J3b?E9_fRgsKRgi|HqT=Cqf_(8 zjUVS?fex2``%$BCy!0<2{vFl|L}B+S)Z}DNW2e2c>T#!Cv1I2(ZAlWudVhyt6nVXd zTkSFZ^-3zz%dX{wuKz+EYZD00+OHm+>XBHB7~9;6hcwx=D^CMetg6MZ{+G+~Pj+m4 zvtxAekl@LinEJl?Q%5oIm5bSDkhLWmn<>B0{o>RP4iJh64s0(TipKCnF;$^0E3J<# z2LuourWe@+o(?3VwkN+i5@MA8_%zy1f&BG79CXP+%A3_;_q~j9*Ds9}d-7pR^!hkO zqWaO~MMHbB!^G@i`A4LCRSVZ_HbmGUAB24j))Nrq_Q0yOz^@<2@L!x) zbso^Ond)C)d$5OQRlH=$&r$pJDG^^J%JL$Sx%F8uE#g4<9rU#&rPO+U$EiIRnDcfCWyIn}-ZOcFqtWydHe|x5ZY`AzbPM&bqt~ zetJ`DufrFkSLaveK~80jso$T#CE0q3+*c_QR}@{cRM(U zMgMan>|fMS|D#cMZO>TiC6Appk9)sg>vHSz$5-<^pYNNy-$C$DwdVCV9v`)R^W%Zh zA9DXst=DUFKAZE8Q81xm+TOXXSxx8dPg`Afi*Y}=q%(VUsO9?q9N~E8QIvT%*nRqb z?Vs}I=q=73Q7;NcO;~EP23QrM;amR6%%Do$dN1jzh~MJmb$-cv%Y&28HpIU;vi!4a z+iWc7|FN>X+{tED$A_r}|BL=%&Hkv5Z^xu6t3GHo$pv}W^0bPT+Imx3JC07 z(HE1kqGxE%H<4|{y|=qo1>D$wX8+lY<^OT@EdtMNjRpDqKUy3!!dJL|zNKPJ@P!}0 zaO!WKccmCBC|y|8HLI#P+oedQYM2qByQdnC`EwuPAXUIA(q z2h6Xc>J)6E8)B4^8>9~6SVLDlVmMCrcW}o93K?a0d8P-9i2AY%ODNtYChzvpLYH=P$gj&1wbq@cAP>CyAK0QQ_euY#-2ds2UJ~M3c&r4F zf?PZ_?Zkk|j|d~P&C2(y+n140svHaHtbJ@YHx%-0`&wOr;`jlUUP;$hz*%Q8`kSQdz zH_KMq(_1xNDQ=Y0D$1i)sBGc;cnFG6$ei}9cv3hvByo5h^BaGuxY^M47@Hslf0~^D zCeWOqBU%U|fq8gcEH?^6%!wxl0(tB_=_gGCZHv219zhw|LFg5=B9(wvL*#?v%O<)*t*CxFnWE>;*nw8vr~L5`xhhSB zWc6x!@4;lm#l#I26l|R0|7_HU74qAyd+%B2jH5}8SKp1~tTOaaXeWv}%1Y^#Z`UAC zTTB$SRSG#uQMSnm9(pv*B)cJ`S8xL@BX^)v*y@frArMcRkdMUfox(~TnI&~4qbqX3 z_C^#ZNVZ-^s~2@{#PXqaWeSX{n;fRuTC0}hn}w~t)hO;QY~4fYd(V{lL4K8)rB~#~ zq{|4q41JqU%eANX=VlMjlNr#H-%eO#9^b^dKuDOhdcLn};kF>KOJlmkqZHV#TIOom zCaJcwH)R!Cd~l()Xc;?ARi!xNJO&cJ0qU(4FFB1w}-cxG9zlWchxK1ZN3%SEu6`` zhxU{5CsA40nGA%s1?oT{^*LJZFP%$j^@}rbpd*4#HwlFcj4vepu}OuZVz^qUv%7h@ za1Lupif#g;4B98N==Afo@~+)wH)jXL_P+J15q``%!0y=IELmgdors3-9rgkNhP$x* zZWIT0WT?MJ4gNgqU3%{MJM9N^&ld=>6GC2{&hCk`7y2rh9ZN$s=~yG%_T_=UEl$J! zd$EPg_>#L$+M>g~v6H%cky*Fc=NRs@j(z;sfDZIey>QIK?iO$+{^7X{*KL3Tp|-QD ziaR|3^yrJ&&&|4%XoF;>i`KK(n31b+PKgVrvMEccnm?K;LH6{HrepDCF?Q`xTsfX< zIvnJdgyf@nl9*237+CV`aA$k`beeo$YK40=x1=!_xFj>O7L?dUvl@ap1 zkGC^r=pNL@B^6KaWM{;(lYM4KJz?ap*k{g5&1@-T|JJX~f}}{c#UPxjf-aTqq8Q2P zA-kA+<90`m>gM9#3$kP7!o+~-2dflY8*U+r5l_9OHZbf%@VyG0--1z9S zMZ9X>7&?r3Ala+a2q$A;fk;0@glURK%J>P$ZF(QME}Tui_A+dEYWtytY|UCqJ}xv! znD%BPlPzxAEBX*k+xfEN?GI9)O6E4PTzZ*|3h0CrRE$=XHbmF%BoyQti8qe{mzJ*~K}Oi|b<{+$3sKt$0t>DDDQHD~ zOQFofAvb&wk^(7@TsA^@ua8VHr^2RKgC^P^0%qOZOX?!{m-)DGCuMc%pfcdf^}F__ z3@{AwVE#jrDU~LJ9ari?yULOeBWhNs_qj0Q)sCl8UvaG^9#FAM>aCR}rRz={5E(@i zx}_d}VNv>bXaT>CSh-@aUCHVJ;j^?FPOBTXQ>PWM;}kc@bDflzAx(zq0et$?UiRAp z7Vi1DpPqjaIgS~GJ3Bdc6?IdFOTr^z+K1uE!}@+liJYdw&@r(w6P+Y;%DhG`k7MioLwbs68_M;&043054{i!QgBl~PA-GzsP*5WvH(>d%D8Ca07`YzN2ZeEMq)Xdq z`Ba+gUU?~;3fDhv|4gVOE4|rgeNpz>gX-m`g%T6x`4x7bN84L=D#}5mj^p|mE8x(s z+y#~M1o>#iE#_F9R|j9$@`ghacT)WN7woS3xdTU> zb8vTd+-}O5eJr>BfN8vl`;TC8TWU01(14o@Crw&!URyaLnPaw5bgZ^yKU1B+CY9~J z=F=6%UyADz!I^Ep;`5qGrM3;$JTn9g2ks2dxM>@iI5iieV1|Fdg zy+C;)shp0O=bF1JU{-e<8f>;ZfA<~TW#X!J;f9(%)lN?T5gUs#{zjfUBD@r2W7v^sm`hlXe8_ z(4)s-cKC?I13#qT*iYlFq=x{*vO_$^W(D(8+FA>p_el8EUqvIv>XPT?7Qq5c^}?^Y3l z@#x04hP+GfA2?6N&e@V-Yfa6v{5-1 z%mSVyi6i3(l-%xY&o;<{C>MHe<{UElAOJwfOK+XWGL7=1c)sk@mI66KIaWESPKeM3dSljG z{{m@H?v=eOfL6v~pCc_>!Cj%*uy`ITDT}=>SIb#zQAe(zBHlA$59G{*RbxA5SUyd6N69nxYZx5)*cav_l^hc->el^}QK9|aI8(H}9F zmO}#^3qzCTS~-3^RHyM+pZFTes7NL1AWmcF@jdWu4?C=MpoF^vVz?w_{tXj_oZU&( z?+y3<0sTbzskDBC>AB-~2de~jCFH}Fh&~?)9eIlp@FLfMldPyWTNzD^95%*tQ`+(6 za`J-2vqge-#3~BKT!U4j5kSlZ$pRQ96BXkAU2q3_fpG%sF}U7+@PC4rVYN}ToD{3ZVh|}&Lc^gaXZHG&<}A*GkWH+mu^~; ze?Y@ikDe&uC;SWrLl=&Ez#DZ{fg8qJZm7G0yk4WVSoy|C?ZKCMOnqxx|4*N`#sjhY z5bnp0|9~rYFyP>W1;;V`PoaGQ$EYIL7s^P1=XP^5J4Ij;PVPp=9|X-s`ui732XU|$ zTZ`9L3a0vxh!psXMhtfuCFFhEwA{2F$Sq*Md{IZ-Hd|G4)E878E|sZWv=dGGCH6ch~jwzvcfQbOaq5HL@4n#kFcLMgZx6hwf-+>ugYBO zub~;2WRssWq(oD113k*wK#k8^F1}4hem1w(xDn5<^hb^k^pYF+?vm{+RH+gI_42|S zsUyIIvD}kN$2Kw0mV02w=Stsa|mTwm3I zI}w@KdoWyzmG*F;i!j)nIDwUNgK?4!j?Oui2|gK7n>ci4kkG%)DCGOY;Fm%{EZq z#2$3?;lts>0~@%^nF{*i9FByTl-(4GaGtg=Ql?&uBE zZ(cVmMlmZJ|7Wh4QA4AsAhbMC%4MH$3*{9YwO0^%5T4Ju*c{H>d`JKsxf|dF{n_1DQnc`*3{XDW8_JQBkksvWWn4Z5XF#pZ>vvxIz0#wbTQ7 zB-2|s?P9Fxl!FSeU0;ZZXK8xw@c;@ToXLs#tZkg1!y+9qNH5|h_@hZ>ZfyLmYTVb* zlg6Z(qdTtG7t@>E76qHMbT<$MLISt&(C|&G0dQuc`{91hX{9>u#~%b|4hdl-*0{oM66gBnXtj!ht zD4EpBu^_F8FComr$yFn{V)0%K$36(GhvfLLq5H$P>E3#@82kJ70at{!$?{8XC_N6Yn1$?;IgxK#9%D`t@Tn8b zHv?m+-Efb|hLGx9<$BqjaI05%w2=xK_0;b0SN-A#toDz(cg0)W2kI`vy8Ois$(&D6hK(SM^ZIVO0>5U6!u{A%|epj;Whjv7TzV@mm>$n3|$ zDP^mOw!I=FVswJR^y&*bwX^UvZG8tQUl%rb?$(d6&=hOLUsb4>rFdLgh-Oj$Y@cZ= zV5M|0Q=7>*-5s@6JT+=a(Ooi#j*Wy-Mv!vsq}*ZjVH(?jOv)HkIyKk}GM+WJ2&9rV zw}-?Ue&x!{KaU_1G*U*+_cB8KJ(|Mfij$P9#VX3C|NDOI9#9l}fm|f2(d~ThIXfHf zW(gj0)H7^aV(TpP4cS5VqKK<0>z$>G^*TUcCrA3W@i&!|+S*&+OP4bln0_o7b~7#; z_R=KqaX*vts#0a$R0584_1tSP5v@2K-W`60Hs6r8FxN`&Tt1uA4E;Iui{Mjxd%q%}D@c|mNW=3GTUa$RpvP9T2cs3Gv9?uy~IMC}1r-E7keWbdP*erbKI%@xkD&-JJFN%#B4 z-eB4)BGs>zZ!exb;@R0@Wg3MS1AcZVgw3acFLK26366RSfPM4q9T+7{UP}oG-pPY< z>-RwJVBVa3IsEe>k7q}3LqKvp>;fC2rb$oj_S~L%#3?cn)Cc>4-f|K--|&dnVV@wa zy#oGvC(zymQ&E8r`jm}^y6$8hc}d(HU{2`lEi<10kkGXa+UU4*i}DuT*09lNIRqXZ zHxLJ;;~K`{FD0`(xhGJ)Qz>o*Z4hG=aLV}zO@Igsm)j4R*2=8K){pZ7;?j8^y$fa* zv=2UmQ@o!zbV}cAfvmwq9Bpq0W}Jv$?S}mwC-}4N6}l@7`NDW3=(CQxn$3csYx)#fgGX>>*1-xjMV$8r=; zX6yg9a8foB+d~@Mxa7@&@V_lSB2V#LtAakxe~vZXv3&|}Rc4$Nnb-I_y-#8M&`}TG z>^i*ljbxX(rRHat*`}?SG|<^VD{`94o*1RDU_h@N{i2N9DI2I?(5>$}4fT{xUg8DV zA=O^j#PRigbna}*byLh@#YknL;|lk_Uo}@#tdEmdVhJN+P+K9#(m2TIna)n;+Do!Y zr0Wg{(7!g@CwZ=XJp@t3-bqpe)x|dU!_k**nE4OOzVRY*4p(-7iQR~U1x6xd_vkNQ zfND@8R3W6vQ4mpfFNwWHYZ9w!8)x+ucs)SgrLKD;s#a2kUr&c^To_GHwPwe0Z-?cx zt?{gVwh`M;s7!)n%)EPqG@@eeEA7?oXtgC?S}C6*of)pv>Lw}YkinG*pe)s>nyd8< zS&RKOG4VBzwyh;L=P}7hN7o{+4jZ{aNO~`#xr9%Nj_}lQMncI?!B$Jf+8T&Br>JQ! zLw5Wh=(N?@9`!95gs6Zs=bJ?l(C1T~lyiV2-mBuU{8(9VHoWt<4j8EYgb}&x>*}d7 z*LUXxpx45pOXA+|d(>>&%{+e@Q1=YL3Xf5tw2;kJ5wFJr%>dHJRF2yaW1=nBJ}UPUXG@|KR9nJ(lqc>rodAmYvA zmJ26?e1_^S2r&2p#*!PF2E3~d7ocE@+KGh~OC*_7@!Dj!x!POe{7u5tjq>P>3w@W* zym_O=YuRyvs9S6$QXE~YBIms+-j9`Mv(rN8`E&YmTM%=IbQUcpQ~UjS$%R`|{Hhzd zWRB$Evn7`ye2Hu{J#>XbtwGB{P$DODW}{@ET!ZGTj3G>_oYQkbMa8lXE`-P%Zq+t$ zR+nCN2C!e)Cz6!~kN&m@FvyEzMs``!ykGlr@iE(E1}-_jm!8_WS#Z)!X0tPRgt(-Q zIr+Cmt31D}7Ub7w#T;1V{W{dsvNL5BwW`*6)NE#PwG_6)hQG<|uBH9N<7auYj8vIf*erJvFpnhvPQ3!04p8b3;C>r3X{idrNa zh=X2xqi#I5SCpW!ss=x!oH^nZ%7f;x&)NFFu=^6PtQf47oz>#GB!*2iT;fz}?(chE zw)!^Mvuk0$M)rBOmTAKxdR)jXcHFW~1y|aj!v%u)b{A4_MVxpDC+P=76E#$_C>x@$ zJf%DB)eMg7px$xylxHo*qQmpf$=?zLE3I!Dx?fmVHxx)YheGI5zI?J7ZUEgWu0N`{y_zXYd!gVIqusY;Vw$*Hxs82=)5bL+nna}0YT!Yh6 z&dab=Q$MYiW`{3#nTAWYHW-zmriZD80Y@h9le$|ce|Kc$eK?Yxw7e=JBr@Uu+% z#sh)j?EKzoVTcVN-C&QxQRX}CE%BqjSqN%7&}4s+QLuV}Ccp%zd-fU`NIijV{v7Wz zp3RjPNu0>pBUz@k^~OqAVEFxtC#0nwP0F)SKb3k;)nG3RfGxXFlHU(6&nnnE1`iB|A@0b*97w-g?Co(>Q{LhyZ*=OMWdW@c{ zYi$&@G($ehokVXjbGHnA=(QE+?3mu-xmBWj7c@)xY>Ab6-_sQ+@lIe=q9{*skyGaVR3gsK)Md#1=e|k>y zrmI!Cm=44NeQg=eoy?yF7NIrMz5xU8S-|_J;r4#QHosWjX4A~ruWfdVST9(%<@ueR zO!aB4r*5fm@z^)%$eT0G6^G>bCJwov3xs7yyAaXF4-}ZeeUT0B-Z9Kk2%Sxodtn0@ z#=D9rvt!M$f>5Nevjf}ByaXlamDN(B4L@9{g?iPo+?VgsVxFl52L|lo%P(W391-a+ z$4k?m6i1XwIT8=DA8&b6CLH@d(Ifl#9>lzXd>i})7|h0s(7{hXNs*a$!ltxD9#iml=-Y14Jq16V(XzjXNlI_d`>65!JMg2TXpT7JZty>jsB1^y5%hhpMS!s(JVI0%WlC$d~P7zmRQ(berBgDifWuv#%b zG)=C2)Fe3=>vA!+^A_CohWn4SZ;Z*thO6Eo^b@okK|6lq+8~h%ONA*Gp3e>xgyv=< zWT~9=8c;xr@YP6gb==C&EU$F(V^(#9REfrh7R&cFN@jK>%LjB5-pNBK_tXfY?qOlv zSFbFM<(JWN0s3Q`jVO6!`gk5%`J;qe0C9Ms1mfngA;uvJ8RExv(X$A|jF`V}|J?j_ zCWsO4y!9S^s|nr*-xgx@jc6{+iA@%^VXdnOhU8HadVV39hG%`(KYmE38TM+Wx5?EP z%`T^xTXO~=`VhO9UmY}Mm6xQbhTRf}`JNX`%H5tLtwI*^E!>-!g4wVT2|Ja~|GHOrGfSiv5~wx+R&Z{#6KgLP;wHU$ZljS15MW}94qJl4sa zCni&_9Rd>qwrCk^clVMqwin!W#d#)kxnKP{u9UX*?*yBTL`xO7J~c6K`Bp$_m=ByJvZXnter4XvJu`UhX9L$ z|D#Rp4(u7mxF|hwG?>bPJDkGE`5s2piEX6w{~3#^CBxaJLs;q%|nmG?Y1$M zX7$fnQs;71`VuMZJ%;X7sq1Rd0>PO(Xwh={Xjrc$rC(Fqa!2Aov|?i?HcmVpt*Z0F zRmqY2*xD$A)?2yU8!Lzj^6Hr#6KTR6(GGAJnp}3Zw4CpRugF2@&8$5dK7=>LXR_n`ie8)H{4&1vB22_7^JEKhJ8qZo!^MclK(2AE|og zi;f_n4gjNbp@krbps1Cf1-lL)?1&{|hAlod})mHw(|U^1>xKrc0SwYj*i1RE)8OZs?$b(wZU4LFKSdicY5}> z1=4xu68;1=?7S}a`tE*Uk^lMJ7H5Zjy?r+Gw(~kIhWgp@PH@@-{^DCn*4+af_HM;^ zv_i|=c2gAY1J;69&L6Qg?6Zb4Tk|x`fSPUfFBEv!7PgU$$`L2}c2zBjO9i3gwbIg< z;9&dO7Z6ISwB4PzeL97j9HI!$a8UmbeY9@mbtjO#TtFa$KTK=#Wfuq%`Ky~|VU)z* zEAgP{LKD!QWf`qv*Tv1jzCp_;fKAhpTd|LFvAw+HFeabcB>ANu(|fiIq9HMWN27zy zQTna~@QYjZ@@adWKZ;{N`fItCN2ZF=4O%ExZK0(12kmdY;o@6+$+_|>RMS!;v}G5- z$;>7=6>uNNfumm!)iGBmtM4gildE2p2t9<`M(IqksH&J7YUZ8jcmd_{1D&s9bR#X; zx0B2IkHk17(oQcn<_1X1O)vFvHs^?K9O@ZP&*`D zi7NoaV)cSHtpjl?q}VeWf8SfBGcQW6&a`X%z%fnaR@A{Ev5kr3*U1aQSf2*hpGOTJ zJ9GESZ?8B1{Il0rYdVe`j@MvLXvZ~pgsl^;i1m*eq~qyX;F|a5vSTKjjz4W!j zrQT!F0HLuz>bV_ay6T+F~@c=s;baxhCA9Kh87hK8_>Y<=p1Lx+zy>BZ6Pxbx-{#JCR} zbrb_%#sE$`2!cl3)HS4(?tN_!`Z@}&!pfKo7c_Vvx){>o#h#@4a9@o~sknb`NR)()qk!j+RL6we( z#qvXQ7GFd=P<)$!oQEC5I#N>UB}_3EyjsXks`siy@N}@v*O~ZjW_vAKA87s@Ge%uMy1fOD1DOya~he=>6vCYJWkGWZC6+>?cK(d*X6tDKg;XyS2Zl z_aQaW{GjM(PTQvcTO8J#;JmKJ|m~T>aHr=ZA9C{ zqO19w&Tw`@-QO0en@Dgp2jHQ$2~A$Y7MB{;&^-P;7(jPtuQ~Ww#K?@rRH(EbDN0Ll z<2bTUA(BP)yT!qqC>Jg0F0U<%>*$?r(xja{kSrYF0jE$!$#G@m6@B1g-QbFI`zWi7 zd4DXvbN#{aDeN3dF3(_n{0uG3AHrdXOT!!(UlKOO$0tbyT>4-WV2|RwDxh)U`G^u} z-E=11RDTp?V>_N*G-vAAxxY%5{524c6~5J^Z)dw}=D*rUt?elZzFsqm8q;(0`tSPn zOMe!8XVLM|;j5&UH4$F;@ zhK(MAXYG*d?kgYaMe)NSTICWl9unm#K2fG(I~~+q)WXSSem9|{XkKXcO7RQl6DRUJIMOrP10<%56aCNvojb0!l*OzT!&USFd#pSTJ0!xWM`TPzH z!=>u8Pi$-A%xjdmXQSC9M3+w~dyPq2H@BWW|0TE4-gt`&lGrkNtm6-o&Cql}$qfUJ zs=}BQCfU$78&))=rEHykptD*z1Ak;xM)W3p*wXi|`}NR_RaY-){*U&)J}joZ|3BLj zl0hm$vqV|c>~7RjI;QFw)t^ z-{O{rX307m8$9lXl~kUSl0^Vv2BLm8`ov18Y0(Sc=@ng`B z{8BAit8=JSv^%f9L-7-OxEf(h5=s3Ovg8RLSPqDeUvAE$&xoc&S0Ij!HWb-*hmy|#A%bx|Xq$yG7=6gi@>g)xo&MWDp!pwD?bd=9T=#r=srOF_Pn!zj zCL%|??He5Hlj@2t_+8UUqL4z_Lv4&ePe3FU>VQXAaqt9_UIhULuLM$W^FtQn;@Cwq zLUvSE-3?7!bjP2Yu+~x3kYBiLrWc~(RiNaGB;sd0DfW1(pu4CFA@`(NJcqW!B$bf- zzRVIvlk$kP)SJ5%XqC1S&0kbM#D;x*mU;t_-t`Vp%_cUA?g@Q;7!|3ZENC0DgR%|D zCfpK1M^YP=X3bW1`Vo@phZNpyH5r{wZx$$IF+-{19*sGBX;Dwr3D#YDXQXf|6TW6j zwlGdH0Sl0}cX+lsPas=aV`M^zgtAj7L!)@w5?p(Qk@O@&Pv)XDUZc~Of8FkMuShPH zYUf7;w~L>r1>_U;$40h8KAGAkS`>`I6N8dK51Yhi>bL&hBvbr%%77jx7v@wUsYDIt&(%u7< z2|Psv97MvGwv`&90i;Xi*nqgR0#$3Ic&cb6Ab5%kE5O4gqDWO4((;i@UZ>~#z6ncE zCu`-)tn-_fokspLXP2W&iQ+>tzayK~0KT-#r8^+(qfVj}(2zp0h9k;`Ng>&r$Q0&U z8kg;=kEZ8K&2yX|GueOjpM-bbe7~7B0)U1a@e}w7i@{J2C#*Bdz1eveRPZAbYhR`JdE;YepSwXx1J@Y2ux%TpZ!4=-M*hk9(M?*T7tH`@#! zw^PwE+^vmVI9SFd1?+4OXrOOjh#q30$C-9hr8Eo~Z6uHFj(F5kvhr8}#n|`M*QT0X zKInZ20-EfB5EV4r^t205LG zz{7^4Kgu*Rjv|Due61T&v}3G|srHmq&FP6?8Tl+;TPI(DBHd!Xg_ zENtQ`r21u6;>V*TWd_xM1v?EabN;J>h6D%{h1H+*=9VpdtLRVM(Yk73+JTs3Mzypn z?UJKbyzvAge`j_ZuToF|`7_`SM|xlyaMn5WurylyHTBcZe?kKlhQ8p@hSdy*aFB~9 zkjGTMF`x8au4p)C8V#s}zbg<9j;MkutIlNc^Sw1dIA)YB_Qt-ZqsGfK(3h`_AhWp*Fo_5qXtyO83P4MRgd@d63!MXbO z$R$_rTjis9)Ks*5Gj>4RkzW2B>Wqf;u0HZw$5U2;*Ag7b0=9OrfNv`A7wA^$IA?&P za0sfq!DoYv)-jW-!S?JbD2>r3*IH1rKXVnD87XP)_6&K1m`OIr1n zE94U3JImyjwWHEDdL53ird--m7Zz9TFb8sTAJVZh&7fHvW>)LP&Gjtw;@%YwbsFz@ zruGO6_ep#&JOhE$H4NYB#@W==4YBmTbXXVx@ux2M3NddEWA_kileU?%6Uq2v;FY;? z+$kC4Dd?{ktxl+R7nJEt#s(?pm7JqBfrDtzcb2JvS7%8IC zqr!UI7j(kIy@_v|j-L_?g>5=+wD!o2gJxfgdmDE@>->QFuJKL`kdX^aOF5O8+>j_? zQa)lsLSxdJoymFc>{kNm(k3V4F+ul%fca&O-5>I)w^DXp(W&78rb>0IambOKCEd&n~<0v0t z-Q_Dd&ZC>g7gb~Uc451Ik4q)*eAiU?m`iN!ZXwZHgGFKZZxFF=RmuuOw*3eOu8uY4 zPNp46!)s`@i_WzQtU9ixEz68Coio5<5F~%50F}y6!7s&>ZHATf))xl7ee}E)c!Jwq zGLo_u{i^dy7=ssf3uvB@bbBvW9PuZRqJz>r#aWR9mFngUAk{E8@QxxYTG2*29WCI0*LYs?dWJ4*(|vKkVJIW&F4WA4+!q zB4Jl2h#hFTU+B_4UIbbQbX_>d38a2EzkQ&4GwSCRl1_11*XL!KQV?axLa*pSdOGZG5O-3KrU<ond&zraG9y^$7Dz1Xj0Q^1H=LK}b1hJ1 z5qDxf#}K_PD@RB^rm{xUxIp`V#9TUF+-dfvY2S;dT}NKLH=td6n@dXXgEGU`MFiU6 z!cH#6mlAe(*%gW>ew2*R@Ff=3l#u=cGsNmQxg6gyWl7qj}d-@9|Sh!Btq`Lr=rgWOew18L8{rwq=(B(BCpcWP{18CSKr z*TvUxfW~EuHsh_4KpvmhgG?jM`F0Px=D$$F%G#!69{%9e>7sd1RkZElIOst!uH6!$ z^c|y&D#(>Ghl@N3-0WmbWs<_-5z+JlkQ#|E*>+p}{_%>Sd}_fvJd6Gz$d!jU-eRAx z>!@Z{wkk2&q>h+F=JwPJ%DDx7>O2l4`?Lk@QW7<1HxjH*#-r5IP+W*37b@kFaynloYVmh;;H*Ru%OOtHq$!@L91 z%ZYuJiaZeULJm=%r%h^Ifs)xPkSMVg{RxE$ux}OT9GPpcUM&7wG^Rl0#1DwpGR%wJ9>-3f$0PhQND<_3qfL{ZW=se#Y zy5Ld!Ka$nZJDKEF6vtX8iRV%qw01wRty^@JL(r5p2xsCduKfwL+I-mN8B8&8h4~ZS z#t>fQLTerV5w-xuZz{P>w+1hZW2AXLt;B`=R(b46 zNb=_pMml%RHl;LLVaiUeClI;5(u`gN$o_j#>8c(CFIa&_InUNf-;1{OaHf)rz01Ak zHG@fsjc{u@R(#?zlbUT)TBWp@1h(sI(QzQw+p&}Kbe6kt(;Vi^u^VUwm*_mEUIkEt zl;BGQ<8o}U?p?R~%}at&e~EiZ9`kh5>rlnPgkvto>-$jXJ)051PO1mI-P$XD>P;n2 zQ)*p<$bq;(Ca^Q47m|f?_+kr4yE9)v)W8?&%)5Fy3wpa8IYavXy(5A{4+eWKMg&Xm zLV_Mm9EUwSBU;^x?iY6Oet>ma*W(Hy5L&SfZ`72nf?dfk91t%cQ@|hi;IfBZQ*dAr z)7Huc!vVMpwz|cXiyXas8-A3})bzbU%42AGw&3pa2lbV2y%6>>8HBzbVaLIP-Ma%m z>7@`JTNc3LWDXM1=I;)-elKr*WE^~j`J?03i-Y?0P&(7j4GDh&DL-kJ5dyt4+_M7M zJ(U|;p&!It^np!!q%o^)m=%&eY-TU%7LLqL+Xz29DEl4vokPE3f8!gEty%@{(Yc!w z4>eq0HJ7r4PTZx{X<);nuCk5MeGzK34VenU5hYakRG0FCtiR>6^xaQCjgY-Ga}tzKyA2IG@7l4 zuK(95V(8~w{0O%~FolL65`LR~!Zj-K6cX{ADlT3sZb=KgYDR}c%ox6Vh--i4rk?}I z6kPA%b_yzoe`WV?*tma4Kw7)hNX+0~8=(Q9%kUX<)rUgVgE|Mwfi>a9I+cDS7#l4H zf*d_Pd+C_}PTE4OWWqat%ek&tbJ9Vce%Cc47N?azT%P zHrYmOB_HFhAbY(~Fx3hClOZ&*2&SVIo=PKNC{m}0qvR1)z#MjwIZWSPo^z7Y$cf9S zH+v=nK<-D>_SOX7WezjM1@P2;5bynA0e>(2Jo|K5Y;cK}2XctAb~rMgA<^Qi4g{Cz zld!W6v9SFyo5{Y1qf@h(tUt-Qu*6lw`yRDNSz~6XL&TF}J;s*2yzCfhxI5A6RXmeY zaHlTyL4A1Itk1q$JNHbZWh@IWTG=WbvBe4jvh8qZ0YA()65mA2=LPXQ#9G2bhm`X= z^i?u?L7FWn$;C0za4#ynafv6KniO^hc1~(s;sN%tN~RL|XC73v$@h^58W_7BrR)oe zFSlXqk4(K9AZRdCuT?>GxCE+x#_M{LG=?`q^og&4#~*i91lKdtjR@eg=1YkHP&JEz z*;M#nC6bQL!0t`x^o#+_D*@Wb(*D)^T-e{-V`7qoVebbvV(*C6oN^Ss1fn;iE|P z&e-ICiUIt&9KrTVqPce*9O$=8Nkv@AegZn* zXM2@X@w;fI>~PB3Sb3BF$X1BO_LXePB8`bm=BD#Re~{Om-7mneiyQq4Lvsmjw16w} z1hrme$;%7Jvmf~|T{%_`hXa!4Ym%tTve&`vWN^=)M=|NF1>3SiQH0UP9Y3>A$Sa|J zXoZJLksC6DqI_XljYNjH?^-x(SdBI&xQyEf=>(0O>haK$i6JY+t-WE%!$I%-R$X)P z28X8)2luV$`xh#Fkxab}EP%r~t*8O1L2$6$x$u;-YQjIO#S$#$N&fh@wmnQ{MRmUH zlFmt5z}zo#3taFkXCOJ2mN6Fqw&ck9gpf&cTIT~@Ced(0OW{1O$>_jM97g2B)ml)j<)7J7on_m(il;B5e+>4W-I%+w`NKFBf*-yefcT*1 zZ<9Xh73-`n!e=Rnk1_>?bg-79Q^f#whfN)rBh|sqR@_e8Oi146pUWxh@`L z4r?K_5HCHHJPNNXexfL7rN8LfkRdHXe?coEn6$D6-srr`MO6*wh_pO;?DJfU*L~9aqG9P3?eURmFnb2?qapIqS+Wq}GAE{dWTfsR+BW)YSe$xD z6U%=rP>^3f5I^oH`@$b<7YCn3RHwvG((Bl#j8s5~VG3m5mayr=Z!ZKP2@k*0z?HNb z1T)lq9J$Ro!!2~E8f!YO-XYCLG%6L3+-C80qX<@c^AJa)<%rg^&nVyOc<+a!X0)5w zi1gCBLg#T(u#!@ciEl53Nhx=AYl`i%AlCvtT1oc6&HA>Mn9bHPZ$Y3b6H_f_IS|1f z5?74!32Rz(c#vi;p^qG&eaK~#-n==AmQOxYK!O+RZ^f)+{!q(R5s$>fNqsQSKn>As zNnB7~VBvnW(=p&#Yt`x4V0yaZVVOO16ErF%2>uhC$x&fj9|^lWxtKNC!#(^m5Xpn1 zW`uL9w5PqkWwcRRC#NLTpU?4Y7#jd_TJ03yaa>YhBHbmeM-GO0z%#-j4J_aE9`P%V z6Ic^_m>VJ(QMWrwDzv68F+9Whv$voIZorVj|AL;n8a)gbUXmxZ`7LjN0L9|1|PLnY%OkaffOj*d9k>>5W!Ow zm5@9^1uveEMU|Pcor6wWl^6$ndR1-DqUeMSIPYVBBT_NyoF?udkOg~I*CeeLbLb$l z4~#`QQ{+6?AIrNX%`>3C^x&C{#cBQ_1FV@q9jD`}v9{gB#hw%nnd!a}|08eY1Np;2 zAcM#|i;|dZ=BmRVg~!=SYdFP6z ztzlZ2TbM6@D%&D}vo67WwI=Vl?Yj*maPUp2FaVEvvJwfoUIaS(<`9Wr>wnM}rS%yU ziW~ws?}M^!(tNL2%NK02v1Y}nGW}QR51-UX{YtKb8~1#<)=?D<;M-WELS*$3qIeeD zz(nF>^DoDXE!cNMq@rqDXx9Q=$zy2VFN&}!DG6+$2WBMaWT|;kZaqlw?F8-?YVK!{%{W&nW{Y3rR-_Kg7br}<=1FIutv7L&5(&RD@5 zq{5SGGT=YDJyn8uGLyliTmOEz zMJ|-Xa1&pMuHZLJ?R||jtAS0Dm#p();QARFRHNo<>Lnem!45YSKHVStNM8jh{<8sTJeup3>NEJR6&iyT`=TQiuSvdY$}m!r z5^z^j=q~Jf@V=&P&}uxde9D;Ps6mR%h^+Tf#b9*7(NDy5z#rieX3b-fWsd^A_*y7o zzjNlNNQd}#Mv@gw+Q)cTc5)A_z~X!+Lz7dYZ5I-IC>MH3*tTck$XM0!1pRqS$+#YD z=*tCUfX*0Nz{wcAIS1A@KOGf{Ml37j$H$tfs06F^{h}d;n zKM{hff(`e8nTySY3dR{1dOo*9q3cr+zcDFri9YGIqVV8aV5E~Dpjl7S*gXYJjTS8&32&{hXgAfXqz~r zr6_<0@Nz&9d(`zg1T!UTZ;CdxAlLOD=yzQE_fh>P8=`@9y#-!lLs zQJ$xmCth6HgUSbqrMeb?G$&bIqs-*z^3bFFLL2 z(tU+&YPW0}v}be()i>TG{U}Svl)ZNYF(3Yfx5=p1X;U^@v7U(tr~pPHlq5g%d?ziF z2AuWU9$q5tzf|4p?Nc^#Zuc-kT3XY_(rWZh@EO)h%`+n18RK&HTU~VIGZC-HXaR@3)Grrw4hHdx4jBclmQ`!IVG~b5zqh_>$5qu3 z+ss^s9YDz+MGQZ<4K0G@31b_?-wWQl7b>Q(mVN@DE|kr#7k;pg5qG{B$zkHJu9|~$ z-o5`%#NuqP-L{_SJhPAc@#(FjPv8a& zo)@)!?hdO}ek4dhE_MdEufG)r%=bIVVzV@8V3_oCDOcwO66C_9p7TdTe(kHg6w)Ss z6Y^|7bhenUD0A zJmXmNSfL~eS>+(cfVB?s6y66OcdYQZ@L{=KvV*@Cx5LBt*&Bz|d(?i(|5 zg<*wUTO${C28Z130FfxWvO_%hP;4rFxSJ0u;91Y5!(I+8&YiuQ1Pa;ZT0j2;qP)T7 zV#*ul4pj|vMGKhUA=Z+SI~5aUh{~LOrbB641Taqvw0(#Z&02#Yk1?p4XD%?VeiM@B ziT=Q_nZ;}+(N^R)Y`;UP-=`&4xUz1RwTj^-u+UGLYfDFyu;iD9n|#Uw5^v_!AKuv3 zxnRkWiGEY}@8>RFeN?ZMu}5#Hjkk#(vmcDS@4(*S!I@)Bu8)fCaAO z+(q{*Agi-UqFvux>C!R~>CKR5u27KL%vt(m@Xer2=Pv~e1?!OqLdf6`d>Yy*SA4~# z5iH-Vdd%TeOj6BjfZCGkGo7q5-n*KsLz2qHU*K+#k{fp$G=U2_7MwZKMwv>9`km+g z)MHV0oL_RwRS3df!E;Y{9>hZ*h{429$zm?B0oTRBZLHJ4*YCJCO)*a5J^hQJkiB!b z=c~Z)t^>17io3?u+YUnGy^Ymn>nqdX*2dpc-}@0W6MylS?&x2N(EW3#zQWxRXK^{8 z-*Mct=pEB5lv9YDYqwix0Pks)@brq4LM@GV{#sWP_rcG3c~g$DPiDqJOvh_cb)N4W zximY#lC)zd_E4MMC|lY^2L_PW!!!`wD$eHsCc{S;Bs})y0~?pzw44_MK#swAv0(f` zuP>j&u8n;BxL^hu)m;;%((lPVKYZ~S!`uL*lWPY1BJ=b2y$McKJ? zqY!*goQ(VutyZ+BuhB(o65!n?*Hsb%Io2lDqxcWG=4b$uRjZh^yp+!_kwwO3dV%^{ z(F5PekFudUcgnW|?pzL0>3`#~^+yk|Wiy%UnDRP0PQ0|;lYOEXhp3Lxj`sjv(qJk- zkpUS5V(pdUiLr`d#q@j|?>#BcT31M>Z=x~;JZhJb+u4=k)k0gv0r{N+4X zbQJda+*<`MV+}=iW0r`rRPhK&d4owGYm7uYq)h|27CWc}&2VnW9q(!>2ab+lD0KmF z`vcgTX!V1DLfNsC;}~1Eyo^&qhEa>?C3u?bLuWr1|AR?qw$^sAi^$5K;@H)QkHH)<5euomJ1Y0poK>;6S&!R68eMxU=be@rD+Hzov8l)b6v(Z?SQT`P>&n#d&82qs~wS?yWqRXzcs6TKHERk;X< z>Ww#eE)h6v_V{u{XPS{0{14~aql2GziI`iT`if^cXv`aWWiCfX2*7ZmvTs+VPUL&S!lCHIq z4{}@kwcuYW%$O_C-TOnyoU1*QVfo1}*(pf811uVQBvlF07-a6@A!reaD?S`1)ocxw zPkC8=J!~uW3q%MHwbXIZqE^&b(&nJbq8CZ0iTs%>sq0wd`B%p}zhPtr)HjvrHPL?Z zYt_6NFp$~$tZ1)+c_%DReJ{(t53qgtTK_GVTz)ZveIhlz^5a@KCLDv$kCPH=V??XL z4cXh)YS3C#H}uHj&4n7HZdnv2$7U^;6r#Q)20R6B8za@QGYj$c3VP#mt;sIZOW;sJ zoEQ~ohc<~Yo+kHjlb35D*~3mOr3?=tcU;tNI1I9j-9K0&Mpet;=amKg=F;ok-CB*z zAkpEI!Es;#Zr7XD*h5AzqtvyxW6TqCv z+s2v@S#IHASvj@xAT~=vZ#+Qy-+Y%la`JZOs4pF_6Sfl#Y3)%-vkWeaJEyyJ!wt0& zs^_bi0C96Bd5krWpls*W8(d^$loh#w7#>cHl81`gHP_Ign5_1q!_GgMZeWxBM{?nZ zza#lof{FAo%AV~^n^Qz>7C%$q_pn0c;H|xba7hB;z)vij+K-iD_nXdp?P|(Ghxily zPZ64XZ2kBZ8$ao75j(T5b|c}aclXTkqSjv86+4HU&22kcH{~1++(>FqusR9Fy)7tJY%Q|(2HC|A+ z)f$GL1ldq9nwDLQ$xxr}1~P3Y$*CE&0t(`_kS>VDtbdg=#lG#!70#Me4dR3<&!BfC z)to5(?pDne>ig<9qP@&jOr@{L3{A5@)m-vt48QMe!W$KyDG}TV5&R6Ksj{or_CTe` zSiSOtgh;$*`*9}gfk2bpVnM_TuDrNfQ5dYD@M6|fQq3h{jIJS&$^!l(ttm6s28(qz z36U}m%A)Xe{CzsGz?<-ZT3|rfurZAEjUOoAwVu3v4TaSptx?)k07HRh&gr%-!Urn2 zMyP6P$qOV;R5vD1rJXi{$#Jos);oVv0d117XE(Uh%lp*$my#)Xc_eu5^d!? zeK%+(nK3||D`@(2FkL|YoPvZNv3NBGg-qBl{Am1Lt+ z!ZsEkT)qiQ=SH!Ua>*cN>74Qhe)WkGCjIpvKOnE?|D`x|_sHtbA#6Z+of`fLf{)x2 zHK*rQ&)m9Z{J;F-)^O=L)}QpOAw(G;4Ty3W`Yx3m7PP-XXZ_pJ7XSDk9pb;4IRUd4 z{yPI1c)AdhEfv#?Kk3~c_@w6<82~@>pCdK?wOsmNe>O3yE^*jWVw`nlW=e2o?;ed$ z(8$HhQM1=7&-WO7adF$$HQaNsvcvQ=SHhIJM(+TFo+C1bi^i+kbYi4yDVUOk9!?D1 zz;k=P{9A~a*IU=vaMrmcTSUo)kM}!-W(Z|d;@l5LbLdpdC6mgDhXsP(u1zW zt6=t?g(H4j^8`ehYuA!m6J_=59S$O6Y3>O3-EAv_(QVgGJMUtC$Go}it%NfkRCK0n zT!;ZXE%h_SvuYW=$a$sCO6&M@>&FP{lb(4IwJV*15kOYftv&nu(m-u(QR(;-NP*pY1oSWN+wXzuAOLm>1W(@;K(c6;ENEnyvD_7$L!^@K0;^koD!iLyk?5y(#f z?~zpURaiTv($e#v@6k}l6?h_K^9FJ{1bhP}yj9%J#WzUX5{Q?@!s+yS^2lqF^j7~MN6;M^}a1L$$iO&IRC&Dpf9T$j^F^tMjUpY;3WY}cp5EWJMgDc z-7tI=ri)4;a-h8kVXXeqZ=2ni0ELU&(13W+$ak3&mCD z{vM*q9X66=yhe)9d zZR|+6F!zUU++tVLkeZ*BZo50ys4XOaaJD*#wL_wNA1^6VytSC3)1D20xobkzJo64_ zk@OLTq)u&3e7lF;Dj{Jyk7qIyv7RhvE~`F%(sREC<`UCI4ksn_A@mP{tmBG-z*4_J z)^|kI@P)X4Ca3>UtR9`tTtJk7-SX7CZoxm;i`PN&=3dVhRimH=y_@N^aoU=ZMQ35Ne+9G}; zodDIWhNzQS71DSwFw$pJD&$#hC3OOg)Z}0X^ha|zWIPh4LZ*lKZw-)3qVjJ#dv0(F zlkQb~Ui8%-)LG6|LmD*xM~Ddy{_Zp%)Na#Ra|h+r)G;t|H3(P<+FMl|+7f=uV1b(l zy9BZD?{WgF7?a(@xA1>ZG#XULL{l8KeaG?CAD=lQ@Ad({b`Y|b@JR6PyH*^$a3w=r z&Gl}|s7*Qsj($G1;?>~~ZF`XSfg+Q6#eqc^HnM&bIy-7SxBn;z2ecv)7&m-Pe-Ad5 zc7><>5kgTO51ozKR`@!9C7)iPn0nYrqUp34SknS3v}}W7nrL2*Ywv*9RGf1jZB*Ny zfSzf|?h$)Qj$07(?Ta;YwUJKN5P0anwRfI{mr0qVtNoZCWg?Nwgd%C7*Q~G8VjqkI|o|o$;Gv_vCEb# z=svAETG2&L;wBNuSuTEoHpC5Je%h>8X!S!<)~&DzX#j{?CzUvD@0N7+sip1Gwwv)w zhJU2ECm?kL9^MkB%9kHOEco!zq2@8F%0LdZ*0dNGJz^($97_pWT6f;pvQN)_s9?Pw zYD1u7GvPWw4|rwwYU`b_u;)SsDSc&XbjL6~8J1R{nwrgI5!n+81mt~%e#tSV(6k*W z(`6HI{`qfX*hb(eIG^ah_^v*fSxSFP1}LFvjq_5Zj}Nbhe~wn1mjB&5SCbN!=d*;(hEMWHjXFm=x&$`8eUFS zQeOa7E#~C6FOSM+(+`64xr`{UA^3JGq(+LU*Y_UsOZ@;<$<5;Wo2gHI1s9!WwDg#& z&7xP<@SknGJylBpY8-wZEqDDmF@boY%c7TXPRn}3@>B-2rSvlzWpWG0gGJT->O7My zdMN&;5rQ4s2WG5$|Ay4(wRF^zqiRr?PVQ4M0N+yQ5~Epk1QJfQF_cTn41*rCvpNg5o z+M=5A5WAZPZ&zU*|FVLwdJ3}EuQb9|pt!gG*~Y+#1toYr>- ztUvM2*{XSe-`0d+>7B#jOAp$x7ynI<^S^7VTZk&Jaq-PuFo%WJz41D`??G#K5BuDi z!@huvv#wjvR%7tE@ks6)!I%JSFmbJSm`{ZnM?>jiS)x2~+XUjx|`U82P zVZ+FKMLk==zVOWc%XKEVF=ysD`Z1iVf+A4=@A<=^LNFC*edN!+-*RoNxlFU2+7W`W zW<{D!IZU)#{55=|xJNZc$!;&R(4mzn63}j&EBc{{oi`xukWT%GOzlTYad0%!HYoJ+ z?e;YBWa-S4Yp3<}l9x)Oa0mD0&?RD z-sikHr29f6jVc?A;K6BgaG$a>K!?r^Vy+Mpjhn+`EQW0!Jp$J7tCME&m@*&9J%dgn z6UxDwHe1Zh1G0oMT(-5;mm*F(A#wZ(qM{g^$gJ2PtInGtnMTNPk&Og8>|0WPX-;zt z^V~*2WD#B=`Z+(LBJDHgAJEXzEVTEnM(|S9M{9x}VA6Jew_HN9Nofkmcp4 z(0#ysDWRP8v*`wKDD&iEecX_M>T|fGzbP{NFy@bRq}NLEQsiKOg9gFlJ>iXb{*a4J z=M{n)6*$l!=_?VJ`~wE^Vnrp>*y$1msXRK?SGHeR(2@PlJe6cv4tl^FYP zTPgq3Tp<}4f-wCKPnX_GtIqz?M#p*k1>w01m-hwPy^sGr? z*>lWJn!Mq}N?-5CtAG7g&v5w`y){ne_4zNC56r%v)}nZl=$Ym{l2@jQeS|H$^x*u` zJ0okJ9X-0na&xTS)v(N+?>4>ZD(|z-N?9KE;z9L7-&+Sy62mJqd{w2U6@2@bbx%-j z*tPe3l~4b&_p2PIrVchu3Ea9yPw&^ItK6*li5lVcqR!*@J9sJI*1WB*-X zT>Z#(SdqS7@2G_n&Wi$_M~`i|Fm4Edbw1}EBp6hfME=o`=SU%2^O^(Dm&fbs4BP19 z4nsfeSdi%_Jziach__HkKafG6`eCp+T+y!EkEtbo3cL*UvGJ$uo{&CJLBR|$l_~qI zaWf#3CRtVJG}?{4m;)!6-bki&^QMU^crYOWRc9#vd}oUM!ru0qy)OLLH=M1PR?Q{K z-$4L<^Cjf-y!J-70#kH4Yl2o-c5loha+U(6ex5(;er4g^ayIo(diJIA;kHfQ$EZR_ zapUVUtEgYTm70ysiSXmgf7_%Kw#^|#9e=%>BLYECI4!NXF}k1mt;2shTFui*RkhJM zGFB0w(#}2zwXd)wL~iteufCDR{(f7;QJs1`rD&Dl%KRD+&4bwE+qYH)AHsruKCVf- zo{*b$P#$uF3`7JF>+C7k@`4mLq68I3*e?h z`<{fn%0z&Fs6CI~y^hPkZ%o`mo>2*>fH7LFYB*9d4C7 zHuiBTI~}=mNYFm&mGwHTm=G{&L)o&S)dy;~+)1jx)5QCN`FJbENo&74!DVI)ISH(; zhJu*+#SZANGE>Q51X$BJwr{38=?$UbDRB!jv>p3UP5OgOKoA%2QWQuS6Cs@|h7f9S z-Wu-vBkR#9gmx$z;~%Z}_@uWCnu_S!t$#oF?{)b5Jp6qx{G zIO^|s^6$9%|I7S>VbOn=p^wmL`Nh#LDC*6E6n*o@)B^*W Packet) asreq; // 存储 AS-EX 请求的映射 + mapping(string => Packet) asrep; // 存储 AS-EX 响应的映射 + mapping(string => Packet) tgsreq; // 存储 TGS-EX 请求的映射 + mapping(string => Packet) tgsrep; // 存储 TGS-EX 响应的映射 + mapping(string => Packet) apreq; // 存储 AP-EX 请求的映射 + mapping(string => Packet) aprep; // 存储 AP-EX 响应的映射 + } + + // 数据包结构体定义,用于存储消息内容和时间戳 + struct Packet { + string content; // 消息内容 + uint256 timestamp; // 消息的时间戳 + } + + address public owner; // 合约的所有者地址 + mapping(string => User) users; // 用户ID到用户信息的映射 + + // 构造函数,设置合约所有者 + constructor() { + owner = msg.sender; + } + + // 初始化用户信息的函数,仅合约所有者可以调用 + function setup(address iUser, string calldata iID, string calldata iKey, string calldata iPL, string calldata ilifetime) external { + require(msg.sender == owner); // 检查调用者是否为合约所有者 + users[iID].user = iUser; // 设置用户地址 + users[iID].ID = iID; // 设置用户ID + users[iID].Key = iKey; // 设置用户密钥 + users[iID].PL = iPL; // 设置权限列表 + users[iID].lifetime = ilifetime;// 设置生命周期 + users[iID].nonce = uint256(keccak256(abi.encodePacked(block.timestamp, block.difficulty, block.number))); // 生成随机数nonce + users[iID].timestamp = block.timestamp; // 设置时间戳 + users[iID].login = false; // 初始化登录状态为false + } + + // 获取特定用户的nonce值,用于防止重放攻击 + function get_nonce(string calldata iID) external view returns (uint256){ + require(msg.sender == users[iID].user); // 检查调用者是否为用户本人 + return users[iID].nonce; // 返回用户的nonce + } + + // 内部函数,检查提供的nonce是否与存储的nonce匹配,并递增nonce + function check_nonce(string calldata iID, uint256 _nonce) internal returns (bool) { + require(msg.sender == users[iID].user); // 检查调用者是否为用户本人 + bool Check; + if (users[iID].nonce == _nonce) { + Check = true; // nonce匹配 + } else { + Check = false; // nonce不匹配 + } + users[iID].nonce += 1; // 匹配后递增nonce + return Check; // 返回检查结果 + } + + // 返回用户的关键信息,用于验证设置的有效性 + function getInfo(string calldata iID) external view returns (address, string memory, string memory, string memory, string memory) { + return (users[iID].user, users[iID].ID, users[iID].Key, users[iID].PL, users[iID].lifetime); + } + + // 客户端设置AS-EX请求 + function C_Set_AS_REQ(string calldata IDc, string calldata IDas, string calldata AS_REQ, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + bool Check; + if (check_nonce(IDc, _nonce)) { // 检查nonce + users[IDc].asreq[IDas].content = AS_REQ; // 存储AS-EX请求内容 + users[IDc].asreq[IDas].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 认证服务器获取AS-EX请求 + function AS_Get_AS_REQ(string calldata IDc, string calldata IDas) external view returns (string memory, uint256, string memory, string memory) { + require(msg.sender == users[IDas].user); // 检查调用者是否为认证服务器用户 + return (users[IDc].asreq[IDas].content, users[IDc].asreq[IDas].timestamp, users[IDc].Key, users[IDas].Key); // 返回AS-EX请求及相关信息 + } + + // 认证服务器设置AS-EX响应 + function AS_Set_AS_REP(string calldata IDc, string calldata IDas, string calldata AS_REP, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDas].user); // 检查调用者是否为认证服务器用户 + bool Check; + if (check_nonce(IDas, _nonce)) { // 检查nonce + users[IDc].asrep[IDas].content = AS_REP; // 存储AS-EX响应内容 + users[IDc].asrep[IDas].timestamp = block.timestamp; // 设置时间戳 + users[IDc].login = true; // 更新用户登录状态为true + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 客户端获取AS-EX响应 + function C_Get_AS_REP(string calldata IDc, string calldata IDas) external view returns (string memory, uint256) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + return (users[IDc].asrep[IDas].content, users[IDc].asrep[IDas].timestamp); // 返回AS-EX响应及时间戳 + } + + //-----------------------------TGS-EX---------------------------- + // 客户端设置TGS-EX请求 + function C_Set_TGS_REQ(string calldata IDc, string calldata IDtgs, string calldata TGS_REQ, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDc].user && users[IDc].login == true); // 检查调用者是否为已登录的客户端用户 + bool Check; + if (check_nonce(IDc, _nonce)) { // 检查nonce + users[IDc].tgsreq[IDtgs].content = TGS_REQ; // 存储TGS-EX请求内容 + users[IDc].tgsreq[IDtgs].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // TGS服务器获取TGS-EX请求 + function TGS_Get_TGS_REQ(string calldata IDc, string calldata IDtgs) external view returns (string memory, uint256, string memory) { + require(msg.sender == users[IDtgs].user); // 检查调用者是否为TGS服务器用户 + return (users[IDc].tgsreq[IDtgs].content, users[IDc].tgsreq[IDtgs].timestamp, users[IDtgs].Key); // 返回TGS-EX请求及相关信息 + } + + // TGS服务器获取服务密钥 + function TGS_Get_CKv(string calldata IDtgs, string calldata IDv) external view returns (string memory) { + require(msg.sender == users[IDtgs].user); // 检查调用者是否为TGS服务器用户 + return users[IDv].Key; // 返回服务密钥 + } + + // TGS服务器设置TGS-EX响应 + function TGS_Set_TGS_REP(string calldata IDc, string calldata IDtgs, string calldata IDv, string calldata TGS_REP, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDtgs].user); // 检查调用者是否为TGS服务器用户 + bool Check; + if (check_nonce(IDtgs, _nonce)) { // 检查nonce + users[IDc].tgsrep[IDv].content = TGS_REP; // 存储TGS-EX响应内容 + users[IDc].tgsrep[IDv].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 客户端获取TGS-EX响应 + function C_Get_TGS_REP(string calldata IDc, string calldata IDv) external view returns (string memory, uint256) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + return (users[IDc].tgsrep[IDv].content, users[IDc].tgsrep[IDv].timestamp); // 返回TGS-EX响应及时间戳 + } + + //-----------------------------AP-EX---------------------------- + // 客户端设置AP-EX请求 + function C_Set_AP_REQ(string calldata IDc, string calldata IDv, string calldata AP_REQ, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + bool Check; + if (check_nonce(IDc, _nonce)) { // 检查nonce + users[IDc].apreq[IDv].content = AP_REQ; // 存储AP-EX请求内容 + users[IDc].apreq[IDv].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 服务端获取AP-EX请求 + function S_Get_AP_REQ(string calldata IDc, string calldata IDv) external view returns (string memory, uint256) { + require(msg.sender == users[IDv].user); // 检查调用者是否为服务端用户 + return (users[IDc].apreq[IDv].content, users[IDc].apreq[IDv].timestamp); // 返回AP-EX请求及时间戳 + } + + // 服务端设置AP-EX响应 + function S_Set_AP_REP(string calldata IDc, string calldata IDv, string calldata AP_REP, uint256 _nonce) external returns (bool) { + require(msg.sender == users[IDv].user); // 检查调用者是否为服务端用户 + bool Check; + if (check_nonce(IDv, _nonce)) { // 检查nonce + users[IDc].aprep[IDv].content = AP_REP; // 存储AP-EX响应内容 + users[IDc].aprep[IDv].timestamp = block.timestamp; // 设置时间戳 + Check = true; + } else { + Check = false; + } + return Check; // 返回操作结果 + } + + // 客户端获取AP-EX响应 + function C_Get_AP_REP(string calldata IDc, string calldata IDv) external view returns (string memory, uint256) { + require(msg.sender == users[IDc].user); // 检查调用者是否为客户端用户 + return (users[IDc].aprep[IDv].content, users[IDc].aprep[IDv].timestamp); // 返回AP-EX响应及时间戳 + } +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/deploy/DSKM.go b/2024-shenzhen-FinTechathon/Rebirth/src/deploy/DSKM.go new file mode 100644 index 000000000..37835c4c7 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/deploy/DSKM.go @@ -0,0 +1,93 @@ +package deploy + +import ( + "bytes" + "context" + "crypto/ecdsa" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethclient" + "io/ioutil" + "math/big" +) + +// DeployContract 部署DKSM合约 +func DeployDKSM(client *ethclient.Client, privateKey *ecdsa.PrivateKey) common.Address { + // 加载编译后的合约 + bytecode, err := ioutil.ReadFile("bin/DKSM.bin") + if err != nil { + fmt.Println("加载合约字节码失败:", err) + } + + abiData, err := ioutil.ReadFile("abi/DKSM.abi") + if err != nil { + fmt.Println("加载合约 ABI 失败:", err) + } + + parsedABI, err := abi.JSON(bytes.NewReader(abiData)) + if err != nil { + fmt.Println("解析合约 ABI 失败:", err) + } + + // 获取账户的nonce值 + publicKey := privateKey.Public() + publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey) + if !ok { + fmt.Println("公钥转换为 ECDSA 失败") + } + + fromAddress := crypto.PubkeyToAddress(*publicKeyECDSA) + nonce, err := client.PendingNonceAt(context.Background(), fromAddress) + if err != nil { + fmt.Println("获取 nonce 失败:", err) + } + + // 设置交易选项 + gasPrice, err := client.SuggestGasPrice(context.Background()) + if err != nil { + fmt.Println("建议的 Gas 价格获取失败:", err) + } + + chainID, err := client.NetworkID(context.Background()) + if err != nil { + fmt.Println("获取链 ID 失败:", err) + } + + auth, err := bind.NewKeyedTransactorWithChainID(privateKey, chainID) + if err != nil { + fmt.Println("创建交易签名器失败:", err) + } + + auth.Nonce = big.NewInt(int64(nonce)) + auth.Value = big.NewInt(0) // 不发送以太币 + auth.GasLimit = uint64(3000000) // 设置Gas限制 + auth.GasPrice = gasPrice + + // 部署合约 + address, tx, _, err := bind.DeployContract(auth, parsedABI, common.FromHex(string(bytecode)), client) + if err != nil { + fmt.Println("部署合约失败:", err) + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client, tx) + if err != nil { + fmt.Println("等待交易执行失败:", err) + } + + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Println("DKSM 部署成功") + } else { + fmt.Println("DKSM 部署失败") + } + + fmt.Printf("DKSM 合约已部署到: %s\n", address.Hex()) + fmt.Printf("交易哈希: %s\n", tx.Hash().Hex()) + + // 返回合约地址 + return address +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/deploy/EthereumUtils.go b/2024-shenzhen-FinTechathon/Rebirth/src/deploy/EthereumUtils.go new file mode 100644 index 000000000..8389347c9 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/deploy/EthereumUtils.go @@ -0,0 +1,78 @@ +package deploy + +import ( + "context" + "crypto/ecdsa" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethclient" + "io/ioutil" + "math/big" + "strings" +) + +// Foundry 函数返回智能合约实例和 auth 对象 +func Foundry(client *ethclient.Client, privateKey *ecdsa.PrivateKey, contractAddress common.Address, abiPath string) (*bind.TransactOpts, *bind.BoundContract) { + // 加载ABI文件 + parsedABI, err := LoadABI(abiPath) + if err != nil { + fmt.Println("加载合约 ABI 失败:", err) + return nil, nil + } + + // 获取链ID + chainID, err := client.NetworkID(context.Background()) + if err != nil { + fmt.Println("获取当前链的 ID 失败:", err) + return nil, nil + } + + // 创建交易签名器 + auth, err := bind.NewKeyedTransactorWithChainID(privateKey, chainID) + if err != nil { + fmt.Println("创建交易签名器失败:", err) + return nil, nil + } + + // 获取Nonce值 + fromAddress := crypto.PubkeyToAddress(privateKey.PublicKey) + nonce, err := client.PendingNonceAt(context.Background(), fromAddress) + if err != nil { + fmt.Println("获取当前账户的交易 nonce 失败:", err) + return nil, nil + } + + // 设置交易选项 + auth.Nonce = big.NewInt(int64(nonce)) + auth.Value = big.NewInt(0) // 发送0 ETH + auth.GasLimit = uint64(10000000) // 设置Gas限制 + gasPrice, err := client.SuggestGasPrice(context.Background()) + if err != nil { + fmt.Println("获取当前交易的 gas 费用失败:", err) + return nil, nil + } + auth.GasPrice = gasPrice + + // 创建智能合约实例 + instance := bind.NewBoundContract(contractAddress, parsedABI, client, client, client) + + return auth, instance +} + +// LoadABI 加载ABI文件的辅助函数 +func LoadABI(abiPath string) (abi.ABI, error) { + abiData, err := ioutil.ReadFile(abiPath) + if err != nil { + return abi.ABI{}, err + } + + parsedABI, err := abi.JSON(strings.NewReader(string(abiData))) + if err != nil { + return abi.ABI{}, err + } + + return parsedABI, nil +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/go.mod b/2024-shenzhen-FinTechathon/Rebirth/src/go.mod new file mode 100644 index 000000000..030c59dbd --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/go.mod @@ -0,0 +1,39 @@ +module DKSM + +go 1.23.3 + +require ( + github.com/ethereum/go-ethereum v1.14.12 + github.com/fentec-project/gofe v0.0.0-20220829150550-ccc7482d20ef + golang.org/x/crypto v0.30.0 +) + +require ( + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/StackExchange/wmi v1.2.1 // indirect + github.com/bits-and-blooms/bitset v1.13.0 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c // indirect + github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/ethereum/c-kzg-4844 v1.0.0 // indirect + github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect + github.com/fentec-project/bn256 v0.0.0-20190726093940-0d0fc8bfeed0 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/gorilla/websocket v1.4.2 // indirect + github.com/holiman/uint256 v1.3.1 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect + github.com/supranational/blst v0.3.13 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.28.0 // indirect + rsc.io/tmplfunc v0.0.3 // indirect +) diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/go.sum b/2024-shenzhen-FinTechathon/Rebirth/src/go.sum new file mode 100644 index 000000000..cfb1fd00a --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/go.sum @@ -0,0 +1,182 @@ +github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= +github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= +github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= +github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= +github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= +github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= +github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4= +github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA= +github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c h1:uQYC5Z1mdLRPrZhHjHxufI8+2UG/i25QG92j0Er9p6I= +github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= +github.com/crate-crypto/go-kzg-4844 v1.0.0 h1:TsSgHwrkTKecKJ4kadtHi4b3xHW5dCFUDFnUp1TsawI= +github.com/crate-crypto/go-kzg-4844 v1.0.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= +github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= +github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= +github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= +github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= +github.com/fentec-project/bn256 v0.0.0-20190726093940-0d0fc8bfeed0 h1:mkWVpEiA+MMlWxElUXRqTVSH9eETZvqJ21NZTaDaMiI= +github.com/fentec-project/bn256 v0.0.0-20190726093940-0d0fc8bfeed0/go.mod h1:llEBqR6SDQxLj2lH10BjIYPrcoqDAFv6mhsqvHfIzlI= +github.com/fentec-project/gofe v0.0.0-20220829150550-ccc7482d20ef h1:9p5/l5zk8UkCKpK1JHna7oWjWl2xi1o0lfWw7YAmrio= +github.com/fentec-project/gofe v0.0.0-20220829150550-ccc7482d20ef/go.mod h1:L8BwMRmIIEVQK1Un7rpnuOhex40gk4Quu50C8v34QFc= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs= +github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg= +github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/supranational/blst v0.3.13 h1:AYeSxdOMacwu7FBmpfloBz5pbFXDmJL33RuwnKtmTjk= +github.com/supranational/blst v0.3.13/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= +github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= +golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/main.go b/2024-shenzhen-FinTechathon/Rebirth/src/main.go new file mode 100644 index 000000000..bf10b522a --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/main.go @@ -0,0 +1,263 @@ +package main + +import ( + "DKSM/user" + "DKSM/utils" + "fmt" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethclient" + "log" +) + +const ( + node = "http://127.0.0.1:8545/" + KDC_id = "KDC - 3D printer" + Client_id = "Teacher-01" + Server_id = "3D printer" + + SetUP = 0 // 当您选择为 0 时,说明您准备初始化 DKSM + KDC = 1 // 当您选择为 1 时, 您的身份就是 KDC + Client = 2 // 当您选择为 2 时,您的身份就是客户端 + Server = 3 // 当您选择为 3 时,您的身份就是服务器 + + C_Set_AS_REQ = 1 // 第一步为客户端向 KDC 发送 AS_REQ + KDC_Set_AS_REP = 2 // 第二步为 KDC 接收 AS_REQ 后处理请求,向客户端发送 AS_REP + C_Set_TGS_REQ = 3 // 第三步为客户端接收 AS_REP 后处理回复信息,向 KDC 发送 TGS_REQ + KDC_Set_TGS_REP = 4 // 第四步为 KDC 接收 TGS_REQ 后处理回复信息,向客户端发送 TGS_REP + C_Set_AP_REQ = 5 // 第五步为客户端接收 TGS_REP 后处理回复信息,向服务器发送 AP_REQ + S_Set_AP_REP = 6 // 第六步为服务器接收 AP_REQ 后处理回复信息,向客户端发送 AP_REP + C_Receipt_AP_REP = 7 // 第七步为客户端接收 AP_REP 后处理回复信息,验证成功后,即可安全通讯 + + Client_Send_Message = 8 + Server_Send_Message = 9 +) + +func main() { + var choice int + var KDC_Client_TGS_ForKDC string + var KDC_Client_TGS_ForClient string + var Ksession_ForClient string + var Ksession_ForServer string + + var ctxt string + flag := true + + client_ETH, err := ethclient.Dial(node) + if err != nil { + log.Fatalf("连接到以太坊客户端失败: %v", err) + } + + for flag { + // 打印提示信息 + fmt.Println("欢迎使用 DKSM 服务协议:") + fmt.Println("0. 初始化 DSKM 服务协议并部署智能合约") + fmt.Println("1. 选择您的身份为 KDC") + fmt.Println("2. 选择您的身份为 客户端") + fmt.Println("3. 选择您的身份为 服务器") + fmt.Printf("请您输入您的选择:") + + // 等待用户输入,并将输入存储到 choice 变量中 + _, err := fmt.Scanf("%d", &choice) + if err != nil { + log.Fatalf("输入无效,请输入一个整数: %v", err) + } + + switch choice { + case SetUP: + fmt.Println("-------------------------------------") + fmt.Println("当前正在为您初始化 DKSM") + + KDC_ETH_PrivateKey, err := crypto.HexToECDSA(user.KDC_True.BlockChain_PrivateKey) // 因为做的是分布式的 KDC,所以部署合约应该是 KDC 身份才对 + if err != nil { + log.Fatalf("加载私钥失败: %v", err) + } + + DKSM := utils.Setup(user.KDC_True, user.Client_True, user.Server_True, client_ETH, KDC_ETH_PrivateKey) // 初始化并获取公钥、秘密密钥和合约地址 + utils.VerifySetup(user.KDC_True, user.Client_True, user.Server_True, DKSM, client_ETH, KDC_ETH_PrivateKey) + + fmt.Println("合约部署完成,用户信息初始化成功") + fmt.Println("-------------------------------------") + + case KDC: + fmt.Println("-------------------------------------") + fmt.Println("您当前的身份为 KDC") + KDC_ETH_PrivateKey, err := crypto.HexToECDSA(user.KDC_True.BlockChain_PrivateKey) + if err != nil { + log.Fatalf("加载私钥失败: %v", err) + } + + // 打印提示信息 + fmt.Println("KDC 工作选项:") + fmt.Println("2. KDC 对客户端发送 AS_REP") + fmt.Println("4. KDC 对客户端发送 TGS_REP") + fmt.Printf("请您输入您的选择:") + + // 等待用户输入,并将输入存储到 choice 变量中 + _, err = fmt.Scanf("%d", &choice) + if err != nil { + log.Fatalf("输入无效,请输入一个整数: %v", err) + } + + fmt.Printf("请您输入 DKSM 的合约地址:") + var address string + fmt.Scanln(&address) + // 将输入字符串转换为 common.Address 类型 + DKSM := common.HexToAddress(address) + + switch choice { + case KDC_Set_AS_REP: + utils.Receipt_AS_REQ(user.KDC_True, Client_id, DKSM, client_ETH, KDC_ETH_PrivateKey) + KDC_Client_TGS_ForKDC = utils.AS_Set_AS_REP(user.KDC_True, Client_id, DKSM, client_ETH, KDC_ETH_PrivateKey) + fmt.Println("系统已自动为 KDC 存储 KDC_Client_TGS 通行凭证到 KDC_Client_TGS_ForKDC") + + case KDC_Set_TGS_REP: + utils.Receipt_TGS_REQ(user.KDC_True, KDC_Client_TGS_ForKDC, Client_id, DKSM, client_ETH, KDC_ETH_PrivateKey) + utils.TGS_Set_TGS_REP(user.KDC_True, KDC_Client_TGS_ForKDC, Client_id, Server_id, DKSM, client_ETH, KDC_ETH_PrivateKey) + + default: + continue + } + fmt.Println("-------------------------------------") + + case Client: + fmt.Println("-------------------------------------") + fmt.Println("您当前的身份为客户端") + Client_ETH_PrivateKey, err := crypto.HexToECDSA(user.Client_True.BlockChain_PrivateKey) + if err != nil { + log.Fatalf("加载私钥失败: %v", err) + } + + // 打印提示信息 + fmt.Println("客户端工作选项:") + fmt.Println("1. 客户端对 KDC 发送 AS_REQ") + fmt.Println("3. 客户端对 KDC 发送 TGS_REQ") + fmt.Println("5. 客户端对服务器发送 AP_REQ") + fmt.Println("7. 客户端确认服务器的回复信息") + fmt.Println("8. 客户端查看或给服务器留言") + fmt.Printf("请您输入您的选择:") + + // 等待用户输入,并将输入存储到 choice 变量中 + _, err = fmt.Scanf("%d", &choice) + if err != nil { + log.Fatalf("输入无效,请输入一个整数: %v", err) + } + + switch choice { + case C_Set_AS_REQ: + fmt.Printf("请您输入 DKSM 的合约地址:") + var address string + fmt.Scanln(&address) + // 将输入字符串转换为 common.Address 类型 + DKSM := common.HexToAddress(address) + // 客户端向 KDC 发送注册信息 + utils.C_Set_AS_REQ(user.Client_True, KDC_id, DKSM, client_ETH, Client_ETH_PrivateKey) + + case C_Set_TGS_REQ: + fmt.Printf("请您输入 DKSM 的合约地址:") + var address string + fmt.Scanln(&address) + // 将输入字符串转换为 common.Address 类型 + DKSM := common.HexToAddress(address) + // 客户端接收 AS_REP信息:KDC_Client_TGS, KDC.ID, TimeStamp, TGT + ASRepContent, KDC_Client_TGS_Receieve := utils.Receipt_AS_REP(user.Client_True, KDC_id, DKSM, client_ETH, Client_ETH_PrivateKey) + KDC_Client_TGS_ForClient = KDC_Client_TGS_Receieve + fmt.Println("系统已自动为客户端存储 KDC_Client_TGS 通行凭证到 KDC_Client_TGS_ForClient") + utils.C_Set_TGS_REQ(user.Client_True, ASRepContent, KDC_id, Server_id, DKSM, client_ETH, Client_ETH_PrivateKey) + + case C_Set_AP_REQ: + fmt.Printf("请您输入 DKSM 的合约地址:") + var address string + fmt.Scanln(&address) + // 将输入字符串转换为 common.Address 类型 + DKSM := common.HexToAddress(address) + Client_Server_AESKey, ST := utils.Receipt_TGS_REP(user.Client_True, KDC_Client_TGS_ForClient, Server_id, DKSM, client_ETH, Client_ETH_PrivateKey) + Ksession := utils.C_Set_AP_REQ(user.Client_True, Server_id, Client_Server_AESKey, ST, DKSM, client_ETH, Client_ETH_PrivateKey) + Ksession_ForClient = Ksession + fmt.Println("客户端持有与服务器交互的对称密钥:", Ksession_ForClient) + + case C_Receipt_AP_REP: + fmt.Printf("请您输入 DKSM 的合约地址:") + var address string + fmt.Scanln(&address) + // 将输入字符串转换为 common.Address 类型 + DKSM := common.HexToAddress(address) + utils.Receipt_AP_REP(user.Client_True, Server_id, Ksession_ForClient, DKSM, client_ETH, Client_ETH_PrivateKey) + + case Client_Send_Message: + if ctxt == "" { + fmt.Println("当前没有信息,请您发送") + fmt.Printf("请您输入您想要发送的信息:") + _, err = fmt.Scanf("%s", &ctxt) + ctxt = utils.AES_Encrypt(Ksession_ForClient, ctxt) + fmt.Println("此时留言的信息为:", ctxt) + } else { + fmt.Println("此时留言的信息为:", ctxt) + ctxt = utils.AES_Decrypt(Ksession_ForClient, ctxt) + fmt.Println("解密后查看:", ctxt) + ctxt = "" + } + + default: + continue + } + + fmt.Println("-------------------------------------") + + case Server: + fmt.Println("-------------------------------------") + fmt.Println("您当前的身份为服务器") + Server_ETH_PrivateKey, err := crypto.HexToECDSA(user.Server_True.BlockChain_PrivateKey) + if err != nil { + log.Fatalf("加载私钥失败: %v", err) + } + + // 打印提示信息 + fmt.Println("服务器工作选项:") + fmt.Println("6. 服务器对客户端发送 AP_REP") + fmt.Println("9. 服务器查看或给客户端留言") + fmt.Printf("请您输入您的选择:") + + // 等待用户输入,并将输入存储到 choice 变量中 + _, err = fmt.Scanf("%d", &choice) + if err != nil { + log.Fatalf("输入无效,请输入一个整数: %v", err) + } + + switch choice { + case S_Set_AP_REP: + fmt.Printf("请您输入 DKSM 的合约地址:") + var address string + fmt.Scanln(&address) + // 将输入字符串转换为 common.Address 类型 + DKSM := common.HexToAddress(address) + Ksession_ForServer = utils.Receipt_AP_REQ(user.Server_True, Client_id, DKSM, client_ETH, Server_ETH_PrivateKey) + fmt.Println("服务器持有与客户端交互的对称密钥:", Ksession_ForServer) + utils.S_Set_AP_REP(user.Server_True, Client_id, Ksession_ForServer, DKSM, client_ETH, Server_ETH_PrivateKey) + + case Server_Send_Message: + if ctxt == "" { + fmt.Println("当前没有信息,请您发送") + fmt.Printf("请您输入您想要发送的信息:") + _, err = fmt.Scanf("%s", &ctxt) + ctxt = utils.AES_Encrypt(Ksession_ForClient, ctxt) + fmt.Println("此时留言的信息为:", ctxt) + } else { + fmt.Println("此时留言的信息为:", ctxt) + ctxt = utils.AES_Decrypt(Ksession_ForClient, ctxt) + fmt.Println("解密后查看:", ctxt) + ctxt = "" + } + + default: + continue + } + + fmt.Println("-------------------------------------") + + default: + fmt.Println("欢迎您再次使用 DKCM 服务协议!") + flag = false + } + } +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/test/setup_KRB.go b/2024-shenzhen-FinTechathon/Rebirth/src/test/setup_KRB.go new file mode 100644 index 000000000..4641a9274 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/test/setup_KRB.go @@ -0,0 +1,225 @@ +package test + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "fmt" + "golang.org/x/crypto/pbkdf2" + "math/big" + "time" + + "github.com/fentec-project/gofe/abe" +) + +type User struct { + Addr string + ID string + Key string + PL string + Lifetime string +} + +func Setup() { + //fmt.Println("--------------------初始化开始!---------------------") + ////startTime := time.Now() + // + //KDC := User{Addr: "", ID: "KRB_KDC@GDUT", Key: "King0fDiandongche_@2022", Lifetime: "2022-12-31"} + //Clients := []User{ + // {Addr: "", ID: "Alice_2112105116@GDUT", Key: "Shuaige_isM3@2022", Lifetime: "2022-12-31"}, + //} + //Servers := []User{ + // {Addr: "", ID: "Printer_CS_No.22@GDUT", Key: "Im_notDay1ngji@2022", Lifetime: "2022-12-31"}, + //} + // + //fmt.Println("Key Generation Begin!") + // + //_, _, _, _, kdc_key, ctxt := abe_keygen(KDC.Key) + //KDC.Key = kdc_key.String() + ////fmt.Println(KDC) + //Clients[0].Key = AESkey_gen(Clients[0].Key) + //Servers[0].Key = AESkey_gen(Servers[0].Key) + //fmt.Println("当前的所有密钥:") + //fmt.Println("KDC 密钥:", KDC.Key) + //fmt.Println("Clients[0] 密钥:", Clients[0].Key) + //fmt.Println("Servers[0] 密钥:", Servers[0].Key) + // + //fmt.Println("Key Generation End!") + //fmt.Println("--------------------------------------------------") + // + //fmt.Println("Contents Encrypt Begin!") + //Clients[0].PL, _ = encrypt_AES(Clients[0].Key, "KRB_KDC@GDUT,Printer_CS_No.22@GDUT") + //Clients[0].Key, _ = encrypt_AES(KDC.Key, Clients[0].Key) + //Servers[0].Key, _ = encrypt_AES(KDC.Key, Servers[0].Key) + //KDC.Key = string(ctxt.SymEnc) + //fmt.Println("KDC 密钥:", KDC.Key) + //fmt.Println("Contents Encrypt Over!") + + // 示例使用 + key := "0123456789abcdef0123456789abcdef" // 示例密钥,32字符十六进制 + content := "GoFE 是一个加密库,提供不同的最先进的功能加密方案实现,特别是针对线性(例如内积)和二次多项式的 FE 方案。" + + encrypted, err := encrypt_AES(key, content) + if err != nil { + fmt.Println("Error encrypting:", err) + return + } + + fmt.Println("Encrypted:", encrypted) + + decrypted, err := decryptAES(key, encrypted) + + if err != nil { + fmt.Println("Error decrypting:", err) + return + } + + fmt.Println("Decrypted:", decrypted) +} + +// decryptAES 执行AES解密 +func decryptAES(key string, ciphertext string) (string, error) { + // 将十六进制字符串密钥转换为字节数组 + keyBytes, err := hex.DecodeString(key) + if err != nil { + return "", err + } + + // 获取初始化向量(IV),使用密钥的前16字节 + iv := keyBytes[:aes.BlockSize] + + // 创建AES解密器 + block, err := aes.NewCipher(keyBytes) + if err != nil { + return "", err + } + + // Base64解码密文 + encryptBytes, err := base64.StdEncoding.DecodeString(ciphertext) + if err != nil { + return "", err + } + + // 解密 + decryptBytes := make([]byte, len(encryptBytes)) + mode := cipher.NewCBCDecrypter(block, iv) + mode.CryptBlocks(decryptBytes, encryptBytes) + + // 去除PKCS7填充 + decryptedText := PKCS7Unpadding(decryptBytes) + + return string(decryptedText), nil +} + +// encryptAES 执行AES加密 +func encrypt_AES(key string, content string) (string, error) { + // 将十六进制字符串密钥转换为字节数组 + keyBytes, err := hex.DecodeString(key) + if err != nil { + return "", err + } + + // 获取初始化向量(IV),使用密钥的前16字节 + iv := keyBytes[:aes.BlockSize] + + // 创建AES加密器 + block, err := aes.NewCipher(keyBytes) + if err != nil { + return "", err + } + + // 使用CBC模式 + ciphertext := make([]byte, len(PKCS7Padding(content))) + mode := cipher.NewCBCEncrypter(block, iv) + + // 对明文进行PKCS7填充后加密 + mode.CryptBlocks(ciphertext, []byte(PKCS7Padding(content))) + + // 返回Base64编码的加密结果 + return base64.StdEncoding.EncodeToString(ciphertext), nil +} + +// PKCS7Unpadding 去除PKCS7填充 +func PKCS7Unpadding(text []byte) []byte { + padding := int(text[len(text)-1]) + return text[:len(text)-padding] +} + +// PKCS7Padding 添加填充 +func PKCS7Padding(text string) string { + bs := 16 + padding := bs - len(text)%bs + padtext := bytes.Repeat([]byte{byte(padding)}, padding) + return text + string(padtext) +} + +// AESkey_gen 生成 AES 加密密钥 +func AESkey_gen(seed string) string { + // 固定的盐值 + salt := []byte{0x75, 0xea, 0x96, 0x05, 0xbc, 0x0f, 0x2e, 0x27} + // 使用 PBKDF2 生成 256 位(32 字节)的密钥 + key := pbkdf2.Key([]byte(seed), salt, 1000, 32, sha256.New) + // 将密钥转换为十六进制字符串 + return hex.EncodeToString(key) +} + +/* +ABEKeygen 的返回结果: +公钥 (pk):公钥结合特定的访问策略(如 (GDUT AND COMPUTER) AND (TEACHER OR STUDENT))来加密消息。只有属性集合满足该策略的用户才能解密密文。 +主密钥 (sk):在生成属性密钥时,主密钥与用户的属性集合一起使用,生成特定用户的解密密钥。 +属性密钥 (attribKeys):当用户尝试解密密文时,属性密钥会与密文中的加密策略进行匹配。如果匹配成功,用户就能解密数据。 +KDC 密钥 (kdcKey):kdcKey 可以作为对称加密的密钥,用于对敏感数据进行额外的加密。 +密文 (cipher):只有符合条件的用户才能解密和读取原始消息。 +*/ +func abe_keygen(seed string) (*abe.FAME, *abe.FAMEPubKey, *abe.FAMESecKey, *abe.FAMEAttribKeys, *big.Int, *abe.FAMECipher) { + // 初始化 FAME 方案 + fame := abe.NewFAME() + + // 生成主密钥对 + pk, sk, err := fame.GenerateMasterKeys() + if err != nil { + panic(fmt.Sprintf("error generating master keys: %v", err)) + } + + // 定义用户的属性集合 + attributes := []string{"COMPUTER", "STUDENT", "TEACHER", "GDUT"} + + // 为用户生成属性密钥 + attribKeys, err := fame.GenerateAttribKeys(attributes, sk) + if err != nil { + panic(fmt.Sprintf("error generating attribute keys: %v", err)) + } + + // 生成随机消息作为加密内容 + // 在 Go 中,我们使用大整数 (big.Int) 来表示消息 + // 使用字符串 seed 生成一个大整数消息 + hash := sha256.Sum256([]byte(seed)) + msg := new(big.Int).SetBytes(hash[:]) // 使用 seed 的 SHA-256 哈希值作为消息 + + fmt.Println("msg:", msg) + + // 直接使用消息作为 KDC 密钥 + kdcKey := msg + + // 定义访问策略 + msp, err := abe.BooleanToMSP("((GDUT AND COMPUTER) AND (TEACHER OR STUDENT))", false) + if err != nil { + panic(fmt.Sprintf("error converting boolean to MSP: %v", err)) + } + + // 开始加密 + startTime := time.Now() + cipher, err := fame.Encrypt(msg.String(), msp, pk) + if err != nil { + panic(fmt.Sprintf("error encrypting message: %v", err)) + } + endTime := time.Now() + + fmt.Printf("Encryption completed in %v\n", endTime.Sub(startTime)) + + // 返回公钥、主密钥、属性密钥、KDC 密钥和密文 + return fame, pk, sk, attribKeys, kdcKey, cipher +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/user/Client.go b/2024-shenzhen-FinTechathon/Rebirth/src/user/Client.go new file mode 100644 index 000000000..76a00245f --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/user/Client.go @@ -0,0 +1,10 @@ +package user + +var Client_Attribute = []string{PROFESSION_1, OFFICE_1, RESEARCHIN_1} + +var Client_True = User_True{ + ID: "Teacher-01", + Password: "Teacher's Password", + BlockChain_PrivateKey: "5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a", + Addr: "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/user/KDC.go b/2024-shenzhen-FinTechathon/Rebirth/src/user/KDC.go new file mode 100644 index 000000000..e0db036c8 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/user/KDC.go @@ -0,0 +1,10 @@ +package user + +const KDC_PL = "((Teacher OR Student) AND 310 AND (Block-Chain OR Federated-Learning))" + +var KDC_True = User_True{ + ID: "KDC - 3D printer", + Password: "KDC's Password", + BlockChain_PrivateKey: "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", + Addr: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/user/Server.go b/2024-shenzhen-FinTechathon/Rebirth/src/user/Server.go new file mode 100644 index 000000000..5979c5a97 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/user/Server.go @@ -0,0 +1,8 @@ +package user + +var Server_True = User_True{ + ID: "3D printer", + Password: "Server's Password", + BlockChain_PrivateKey: "59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", + Addr: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/user/user.go b/2024-shenzhen-FinTechathon/Rebirth/src/user/user.go new file mode 100644 index 000000000..17f01b9dd --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/user/user.go @@ -0,0 +1,27 @@ +package user + +type User_True struct { + ID string // 用户 ID + Password string // 用户自己的密码 + BlockChain_PrivateKey string // 设置以太坊私钥 + Addr string // 以太坊公钥地址 +} + +type User struct { + ID string // 用户 ID + Key string // 加密的 AES 密钥 + Addr string // 以太坊公钥地址 + PL string // 加密的权限列表(给 KDC 设置有什么身份的客户端能使用) + Attribute []string // 属性列表(赋予客户端对应的属性身份) +} + +const ( + PROFESSION_1 = "Teacher" + PROFESSION_2 = "Student" + + OFFICE_1 = "310" + OFFICE_2 = "223" + + RESEARCHIN_1 = "Block-Chain" + RESEARCHIN_2 = "Federated-Learning" +) diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/utils/AES.go b/2024-shenzhen-FinTechathon/Rebirth/src/utils/AES.go new file mode 100644 index 000000000..f8f1a21b7 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/utils/AES.go @@ -0,0 +1,103 @@ +package utils + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "fmt" + "golang.org/x/crypto/pbkdf2" +) + +// AES_Key_Generate 通过用户的密码生成 AES 加密密钥 +func AES_Key_Generate(Password string) string { + // 固定的盐值 + salt := []byte{0x75, 0xea, 0x96, 0x05, 0xbc, 0x0f, 0x2e, 0x27} + // 使用 PBKDF2 生成 256 位(32 字节)的密钥 + key := pbkdf2.Key([]byte(Password), salt, 1000, 32, sha256.New) + // 将密钥转换为十六进制字符串 + return hex.EncodeToString(key) +} + +// AES_Decrypt 执行AES解密 +func AES_Decrypt(key string, ciphertext string) string { + // 将十六进制字符串密钥转换为字节数组 + keyBytes, err := hex.DecodeString(key) + if err != nil { + fmt.Println("AES 密钥转换失败:", err) + return "" + } + + // 获取初始化向量(IV),使用密钥的前16字节 + iv := keyBytes[:aes.BlockSize] + + // 创建AES解密器 + block, err := aes.NewCipher(keyBytes) + if err != nil { + fmt.Println("AES 解密器创建失败:", err) + return "" + } + + // Base64解码密文 + encryptBytes, err := base64.StdEncoding.DecodeString(ciphertext) + if err != nil { + fmt.Println("Base 64 解密失败:", err) + return "" + } + + // 解密 + decryptBytes := make([]byte, len(encryptBytes)) + mode := cipher.NewCBCDecrypter(block, iv) + mode.CryptBlocks(decryptBytes, encryptBytes) + + // 去除PKCS7填充 + decryptedText := PKCS7Unpadding(decryptBytes) + + return string(decryptedText) +} + +// AES_Encrypt 执行AES加密 +func AES_Encrypt(key string, content string) string { + // 将十六进制字符串密钥转换为字节数组 + keyBytes, err := hex.DecodeString(key) + if err != nil { + fmt.Println("AES 密钥转换失败!") + return "" + } + + // 获取初始化向量(IV),使用密钥的前16字节 + iv := keyBytes[:aes.BlockSize] + + // 创建AES加密器 + block, err := aes.NewCipher(keyBytes) + if err != nil { + fmt.Println("AES 加密器创建失败!") + return "" + } + + // 使用CBC模式 + ciphertext := make([]byte, len(PKCS7Padding(content))) + mode := cipher.NewCBCEncrypter(block, iv) + + // 对明文进行PKCS7填充后加密 + mode.CryptBlocks(ciphertext, []byte(PKCS7Padding(content))) + + // 返回Base64编码的加密结果 + return base64.StdEncoding.EncodeToString(ciphertext) +} + +// PKCS7Unpadding 去除PKCS7填充 +func PKCS7Unpadding(text []byte) []byte { + padding := int(text[len(text)-1]) + return text[:len(text)-padding] +} + +// PKCS7Padding 添加填充 +func PKCS7Padding(text string) string { + bs := 16 + padding := bs - len(text)%bs + padtext := bytes.Repeat([]byte{byte(padding)}, padding) + return text + string(padtext) +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/utils/AP-EX.go b/2024-shenzhen-FinTechathon/Rebirth/src/utils/AP-EX.go new file mode 100644 index 000000000..677a441cd --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/utils/AP-EX.go @@ -0,0 +1,247 @@ +package utils + +import ( + "DKSM/deploy" + "DKSM/user" + "context" + "crypto/ecdsa" + "crypto/rand" + "crypto/sha256" + "encoding/hex" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/ethclient" + "log" + "math/big" + "strconv" + "strings" + "time" +) + +func Receipt_AP_REP(Client user.User_True, Server_ID string, Ksession string, DKSM common.Address, + client_ETH *ethclient.Client, Client_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------15. 客户端接收回复信息 AP_REP!---------------------------") + ClientAuth, instance := deploy.Foundry(client_ETH, Client_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 调用合约的 C_Get_AP_REP 方法获取 AP_REP 和时间戳 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result, "C_Get_AP_REP", Client.ID, Server_ID) + if err != nil { + log.Fatalf("Failed to get AP_REP: %v", err) + } + AP_REP := result[0].(string) + fmt.Println("客户端获取服务器发送的 AP_REP 信息:", AP_REP) + TS_aprep := result[1].(*big.Int).Int64() + + // 解密 AP_REP + packet_APREP := AES_Decrypt(Ksession, AP_REP) + fmt.Println("客户端使用自己之前生成的对称密钥解密 AP_REP 信息:", packet_APREP) + + packet_APREP_parts := strings.Split(packet_APREP, ",") + fmt.Println("客户端服务请求 AP_REP 解析成功,时间戳解析结果:", packet_APREP_parts[2]) + // 获取当前时间戳 + localtime := time.Now().Unix() + fmt.Println("区块时间戳:", TS_aprep) + fmt.Println("当前系统时间:", localtime) + // 将字符串转换为 int64 + intValue, _ := strconv.ParseInt(packet_APREP_parts[2], 10, 64) + + // 检查时间戳是否在300秒内 + if localtime-intValue < 300 { + fmt.Println("服务器发送 AP_REP 跟客户端处理时间相差 300 秒内,允许通过!") + fmt.Println("客户端与服务器成功建立连接!") + } else { + fmt.Println("发送 AP_REP 跟处理时间超过 300 秒,不允许通过!") + return + } + + // 检查 AP_REP 的内容 + if packet_APREP_parts[0] == Client.ID && packet_APREP_parts[1] == Server_ID { + fmt.Println("AP_REP 检查正确,客户端与服务器已经完成密钥交换,可以安全进行通讯了!") + } else { + fmt.Println("APREP Check False") + } +} + +func S_Set_AP_REP(Server user.User_True, Client_ID string, Ksession string, DKSM common.Address, + client_ETH *ethclient.Client, Server_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------14. 服务器设置回复信息 AP_REP!---------------------------") + ServerAuth, instance := deploy.Foundry(client_ETH, Server_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 调用合约的 get_nonce 方法获取 Nonce 值 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ServerAuth.From}, &result, "get_nonce", Server.ID) + if err != nil { + log.Fatalf("Failed to get nonce for server %s: %v", Server.ID, err) + } + nonce := result[0].(*big.Int) // 将结果转换为*big.Int + + // 获取当前时间戳 + TimeStamp := time.Now().Unix() + fmt.Printf("服务器截取当前系统的时间戳:%d\n", TimeStamp) + + // 构建 AP_REP 数据包 + packet_APREP := fmt.Sprintf("%s,%s,%d", Client_ID, Server.ID, TimeStamp) + fmt.Println("服务器打包 AP_REP 信息(Client_ID,Server_ID,TimeStamp):", packet_APREP) + AP_REP := AES_Encrypt(Ksession, packet_APREP) + fmt.Println("服务器用获取到的对称密钥加密 AP_REP 后发送:", AP_REP) + + // 使用 Transact 方法调用合约的 S_Set_AP_REP 函数 + tx, err := instance.Transact(ServerAuth, "S_Set_AP_REP", Client_ID, Server.ID, AP_REP, nonce) + if err != nil { + log.Fatalf("Failed to set AP_REP: %v", err) + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + log.Fatalf("Failed to wait for transaction mining: %v", err) + } + + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Println("AP-REP 发送成功") + } else { + fmt.Println("AP-REP 发送失败") + } + + // 打印交易哈希 + fmt.Printf("AP-REP 已发送: %s\n", tx.Hash().Hex()) +} + +func Receipt_AP_REQ(Server user.User_True, Client_ID string, DKSM common.Address, + client_ETH *ethclient.Client, Server_ETH_PrivateKey *ecdsa.PrivateKey) string { + fmt.Println("--------------------13. 服务器接收客户端请求 AP_REQ!---------------------------") + ServerAuth, instance := deploy.Foundry(client_ETH, Server_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + // 调用合约的 S_Get_AP_REQ 方法获取 AP_REQ 和时间戳 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ServerAuth.From}, &result, "S_Get_AP_REQ", Client_ID, Server.ID) + if err != nil { + log.Fatalf("Failed to get AP_REQ: %v", err) + } + AP_REQ := result[0].(string) + TS_apreq := result[1].(*big.Int).Int64() + + // 检查时间戳差异 + fmt.Println("服务器接收到客户端发送的 AP_REQ:", AP_REQ) + AP_REQ_Parts := strings.Split(AP_REQ, ",") + fmt.Println("客户端请求信息信息 AP_REQ 解析成功,时间戳解析结果:", AP_REQ_Parts[2]) + // 获取当前时间戳 + localtime := time.Now().Unix() + fmt.Println("区块时间戳:", TS_apreq) + fmt.Println("当前系统时间:", localtime) + intValue, _ := strconv.ParseInt(AP_REQ_Parts[2], 10, 64) + if localtime-intValue < 300 { + fmt.Println("客户端发送 AP_REQ 跟服务器处理时间相差 300 秒内,允许通过!") + + // 解密服务票据 ST + ST := AP_REQ_Parts[3] // IDc +','+ IDv +','+ Kc_v +','+ lifetime + fmt.Println("服务器取 KDC 用服务器密钥加密的 ST 密文:", ST) + packet_ST := AES_Decrypt(AES_Key_Generate(Server.Password), ST) + fmt.Println("服务器用自己的密码生成 AES 密钥解密得到 ST 明文:", packet_ST) + // 检查服务票据中的 Kc_v、IDc、IDv 是否匹配 + packet_ST_parts := strings.Split(packet_ST, ",") + if packet_ST_parts[0] == Client_ID && packet_ST_parts[1] == Server.ID { + fmt.Println("ST 内容检查通过,客户端请求服务的服务器对象正确") + } else { + fmt.Println("ST 检测失败") + return "" + } + + // 解密 Authenticator2 并验证 + KDC_Client_TGS_ForServer := packet_ST_parts[2] + fmt.Println("服务器提取 KDC 放置在 ST 中的 KDC_Client_TGS 通讯凭证:", KDC_Client_TGS_ForServer) + Authenticator2_Encrypt := AP_REQ_Parts[4] + fmt.Println("服务器提取客户端用 KDC_Client_TGS 通讯凭证加密的身份认证信息:", Authenticator2_Encrypt) + packet_Authenticator2 := AES_Decrypt(KDC_Client_TGS_ForServer, Authenticator2_Encrypt) + fmt.Println("服务器用 KDC_Client_TGS 通讯凭证解密身份验证信息:", packet_Authenticator2) + + packet_Authenticator2_parts := strings.Split(packet_Authenticator2, ",") + + // 构建 CheckSum 并验证 + packet_APREQ := strings.Join(packet_ST_parts[:3], ",") // IDc +','+ IDv +','+ ST + CheckSum_get := sha256.Sum256([]byte(packet_APREQ)) + + if packet_Authenticator2_parts[0] == Client_ID && packet_Authenticator2_parts[1] == hex.EncodeToString(CheckSum_get[:]) { + // 提取会话密钥 Ksession + Ksession := packet_Authenticator2_parts[2] + fmt.Println("客户端身份验证通过,服务器获取与客户端交互的对称密钥:", Ksession) + + return Ksession + } else { + fmt.Println("Authenticator2 Check False") + fmt.Println(packet_Authenticator2_parts[0]) + fmt.Println(Client_ID) + fmt.Println(packet_Authenticator2_parts[1]) + fmt.Println(hex.EncodeToString(CheckSum_get[:])) + fmt.Println(packet_APREQ) + return "" + } + } else { + fmt.Println("发送 AP_REQ 跟处理时间超过 300 秒,不允许通过!") + return "" + } +} + +func C_Set_AP_REQ(Client user.User_True, Server_ID string, Client_Server_AESKey string, ST string, DKSM common.Address, + client_ETH *ethclient.Client, Client_ETH_PrivateKey *ecdsa.PrivateKey) string { + fmt.Println("--------------------12. 客户端设置对服务器的请求 AP_REQ!---------------------------") + ClientAuth, instance := deploy.Foundry(client_ETH, Client_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 获取客户端的Nonce值 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result, "get_nonce", Client.ID) + if err != nil { + fmt.Println("获取", Client.ID, "的合约 nonce 失败:", err) + } + nonce := result[0].(*big.Int) // 将结果转换为*big.Int + + // 生成会话密钥 Ksession + KsessionBytes := make([]byte, 16) + _, err = rand.Read(KsessionBytes) + if err != nil { + log.Fatalf("Failed to generate Ksession: %v", err) + } + Ksession := AES_Key_Generate(hex.EncodeToString(KsessionBytes)) + fmt.Println("客户端随机生成与服务器交互的 AES 密钥 Ksession:", Ksession) + + // 获取当前时间戳 + TimeStamp := time.Now().Unix() + fmt.Printf("客户端截取当前系统的时间戳:%d\n", TimeStamp) + //lifetime := "2024-09-01" + + // 构建 AP_REQ 数据包 + packet_APREQ := fmt.Sprintf("%s,%s,%s", Client.ID, Server_ID, Client_Server_AESKey) + fmt.Println("客户端打包 AP_REQ 明文信息(Client_ID,Server_ID,Client_Server_TGS):", packet_APREQ) + CheckSum := sha256.Sum256([]byte(packet_APREQ)) + fmt.Println("客户端对 AP_REQ 明文信息做哈希计算 CheckSum:", hex.EncodeToString(CheckSum[:])) + + Authenticator2 := AES_Encrypt(Client_Server_AESKey, fmt.Sprintf("%s,%x,%s,%d", Client.ID, CheckSum, Ksession, TimeStamp)) + fmt.Println("客户端打包身份认证信息(Client.ID,CheckSum,Ksession,TimeStamp):", fmt.Sprintf("%s,%x,%s,%d", Client.ID, CheckSum, Ksession, TimeStamp)) + fmt.Println("客户端用获取到的 Client_Server_TGS 通讯凭证加密身份认证信息:", Authenticator2) + + AP_REQ := fmt.Sprintf("%s,%s,%d,%s,%s", Client.ID, Server_ID, TimeStamp, ST, Authenticator2) + fmt.Println("客户端最终发送的 AP_REQ 请求信息为:", AP_REQ) + + // 使用 Transact 方法调用合约的 C_Set_AP_REQ 函数 + tx, err := instance.Transact(ClientAuth, "C_Set_AP_REQ", Client.ID, Server_ID, AP_REQ, nonce) + if err != nil { + log.Fatalf("Failed to set AP_REQ: %v", err) + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + log.Fatalf("Failed to wait for transaction mining: %v", err) + } + + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Println("客户端已发送 AP-REQ:", tx.Hash().Hex()) + } else { + fmt.Println("AP-REQ 发送失败") + } + + return Ksession +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/utils/AS-EX.go b/2024-shenzhen-FinTechathon/Rebirth/src/utils/AS-EX.go new file mode 100644 index 000000000..7649e9a49 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/utils/AS-EX.go @@ -0,0 +1,261 @@ +package utils + +import ( + "DKSM/deploy" + "DKSM/user" + "context" + "crypto/ecdsa" + "crypto/rand" + "encoding/hex" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/ethclient" + "log" + "math/big" + "strconv" + "strings" + "time" +) + +// Receipt_AS_REP 客户端接收 AS_REP 信息并处理 +func Receipt_AS_REP(Client user.User_True, KDC_ID string, DKSM common.Address, + client_ETH *ethclient.Client, Client_ETH_PrivateKey *ecdsa.PrivateKey) (string, string) { + fmt.Println("--------------------7. 客户端接收处理 AS_REP!---------------------------") + ClientAuth, instance := deploy.Foundry(client_ETH, Client_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 定义存储结果的切片 + var result_Client_INFO []interface{} + + // 调用合约的getInfo方法 + err := instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result_Client_INFO, "getInfo", Client.ID) + if err != nil { + fmt.Println("获取", Client.ID, "信息失败:", err) + } + + // 获取用户的身份属性 + Client_Attribute_ETH := result_Client_INFO[3].(string) + fmt.Println("客户端从智能合约中获取自身的身份属性(这些属性在初始化系统时被 KDC 用客户端的 AES 密钥加密过):", Client_Attribute_ETH) + + // 切割身份属性字符串,并用自身 AES 密钥解密 + Client_AttributeList := strings.Split(Client_Attribute_ETH, ",") + Client_Key_AES := AES_Key_Generate(Client.Password) + for index, attribute := range Client_AttributeList { + Client_AttributeList[index] = AES_Decrypt(Client_Key_AES, attribute) + } + fmt.Println("客户端使用自己的密码生成 AES 密钥后解密获得自身身份属性:", Client_AttributeList[0]+","+Client_AttributeList[1]+","+Client_AttributeList[2]) + + // 调用合约的 C_Get_AS_REP 方法,获取加密的 AS_REP 和时间戳 + var result []interface{} + err = instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result, "C_Get_AS_REP", Client.ID, KDC_ID) + if err != nil { + fmt.Println("客户端获取 KDC 发送的 AS_REP 失败:", err) + } + + // 解析返回结果 + AS_REP := result[0].(string) + fmt.Println("客户端接收到 KDC 发送的 AS_REP:") + fmt.Println(AS_REP) + TS_asrep := result[1].(*big.Int) + + // 解密 AS_REP + Plain_AS_REP := ABE_Decrypt(AS_REP, Client_AttributeList) + fmt.Println("客户端使用自身身份信息解密得到 AS_REP 明文信息:", Plain_AS_REP) + + Plain_AS_REP_List := strings.Split(Plain_AS_REP, ",") + + fmt.Println("KDC 回复信息 AS_REP 解析成功,客户端使用自身身份属性解密时间戳:", Plain_AS_REP_List[2]) + // 获取当前时间戳 + localtime := time.Now().Unix() + fmt.Println("区块时间戳:", TS_asrep) + fmt.Println("当前客户端处理 AS_REP 系统时间:", localtime) + intValue, _ := strconv.ParseInt(Plain_AS_REP_List[2], 10, 64) + + // 检查时间戳差异 + if localtime-intValue < 300 { + fmt.Println("KDC 发送 AS_REP 跟客户端处理时间相差 300 秒内,允许通过!") + //// 返回解密后的 AS_REP + //fmt.Printf("KDC 发送 AS_EX 回复的信息: %s\n", Plain_AS_REP) + + // 先切割出来 KDC_Client_TGS 凭证和 TGT + AS_REP_List := strings.Split(Plain_AS_REP, ",") + KDC_Client_TGS := AS_REP_List[0] + fmt.Println("客户端已接收到 KDC_Client_TGS 通行凭证(注意保存,客户端在发送 TGS_REQ 时需要使用,本系统使用了一个变量 KDC_Client_TGS_ForClient 存储):", KDC_Client_TGS) + fmt.Println("客户端已经完成跟 KDC 之间的身份认证,并完成密钥交换,之后通讯使用 KDC_Client_TGS 通讯凭证(AES 密钥)") + return Plain_AS_REP, KDC_Client_TGS + } else { + fmt.Println("发送 ASREP 跟处理时间超过 300 秒,不允许通过!") + return "", "" + } +} + +// AS_Set_AS_REP KDC 返回客户端的注册结果 +func AS_Set_AS_REP(KDC user.User_True, Client_ID string, address common.Address, + client_ETH *ethclient.Client, KDC_ETH_PrivateKey *ecdsa.PrivateKey) string { + fmt.Println("--------------------6. KDC 设置客户端注册结果信息 AS_REP!---------------------------") + KdcAuth, instance := deploy.Foundry(client_ETH, KDC_ETH_PrivateKey, address, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 获取客户端的Nonce值 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: KdcAuth.From}, &result, "get_nonce", KDC.ID) + if err != nil { + fmt.Println("获取", KDC.ID, "的合约 nonce 失败:", err) + } + nonce := result[0].(*big.Int) // 将结果转换为*big.Int + + // 生成随机的客户端通行凭证密钥 + KDC_Client_TGS_Bytes := make([]byte, 16) + _, err = rand.Read(KDC_Client_TGS_Bytes) + if err != nil { + fmt.Println("生成 KDC_Client_TGS 通行凭证失败:", err) + } + KDC_Client_TGS_Seed := hex.EncodeToString(KDC_Client_TGS_Bytes) + KDC_Client_TGS := AES_Key_Generate(KDC_Client_TGS_Seed) + fmt.Println("KDC 随机生成 KDC_Client_TGS 通行凭证(注意保存,KDC 在接收处理 TGS_REQ 时需要使用,本系统使用了一个变量 KDC_Client_TGS_ForKDC 存储):", KDC_Client_TGS) + + // 获取当前时间戳 + TimeStamp := time.Now().Unix() + fmt.Printf("KDC 截取当前系统的时间戳:%d\n", TimeStamp) + + // KDC 使用 AES 加密 TGT 信息 + TGTContent := fmt.Sprintf("%s,%s,%s", Client_ID, KDC.ID, KDC_Client_TGS) + fmt.Println("KDC 打包 TGT 明文信息(Client_ID,KDC_ID,KDC_Client_TGS):", TGTContent) + TGT := AES_Encrypt(AES_Key_Generate(KDC.Password), TGTContent) + fmt.Println("KDC 使用自己的密码生成 AES 对称加密密钥后加密 TGT 明文,密文信息:", TGT) + + // 使用 ABE 加密 AS_REP 信息,这样可以自动化验证客户端身份信息 + ASRepContent := fmt.Sprintf("%s,%s,%d,%s", KDC_Client_TGS, KDC.ID, TimeStamp, TGT) + fmt.Println("KDC 打包 AS_REP 信息(KDC_Client_TGS,KDC_ID,TimeStamp,TGT):", ASRepContent) + AS_REP := ABE_Encrypt(ASRepContent, user.KDC_PL) + fmt.Println("KDC 使用 ABE 属性基加密,访问策略为:", user.KDC_PL) + fmt.Println("KDC 最终发送的 AS_REP 回复信息为:") + fmt.Println(AS_REP) + + // 调用合约的 AS_Set_AS_REP 函数 + tx, err := instance.Transact(KdcAuth, "AS_Set_AS_REP", Client_ID, KDC.ID, AS_REP, nonce) + if err != nil { + fmt.Println("合约 AS_Set_AS_REP 无法调用:", err) + } + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + fmt.Println("等待交易执行失败:", err) + } + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Println("KDC 针对客户端的 AS_REP 回复信息已发送:", tx.Hash().Hex()) + } else { + fmt.Println("KDC 的 AS_REP 设置失败") + } + + //fmt.Println(KDC.ID, "已发送注册回复信息:", tx.Hash().Hex()) + return KDC_Client_TGS +} + +/* +Receipt_AS_REQ KDC 获取客户端的注册请求 +验证是否通过后会获取到客户端发送来的 AES 密钥 +*/ +func Receipt_AS_REQ(KDC user.User_True, Client_ID string, address common.Address, + client_ETH *ethclient.Client, KDC_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------5. KDC 获取 AS_REQ!---------------------------") + KdcAuth, instance := deploy.Foundry(client_ETH, KDC_ETH_PrivateKey, address, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 调用合约的 AS_Get_AS_REQ 函数 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: KdcAuth.From}, &result, "AS_Get_AS_REQ", Client_ID, KDC.ID) + if err != nil { + log.Fatalf("Failed to get AS_REQ: %v", err) + } + + // 提取返回的 AS_REQ, TS_asreq, CKc, CKas + AS_REQ := result[0].(string) // 客户端ID、KDC ID、客户端加密时间戳 + fmt.Println("KDC 接收到客户端发送的 AS_REQ:", AS_REQ) + TS_asreq := result[1].(*big.Int).Int64() // 区块时间戳 + Client_Key_AES_EncryptByKDC := result[2].(string) // 客户端被 KDC AES 加密后的密钥 + fmt.Println("KDC 获取在智能合约中存放着被 KDC AES 对称加密后的客户端的 AES 密钥:", Client_Key_AES_EncryptByKDC) + + // 提取 Kkdc 并进行 AES 解密 + KDC_Key_AES := AES_Key_Generate(KDC.Password) + Client_Key_AES := AES_Decrypt(KDC_Key_AES, Client_Key_AES_EncryptByKDC) + fmt.Println("KDC 通过自身密码生成 KDC AES 对称加密密钥后,解密得到客户端的 AES 密钥:", Client_Key_AES) + + // 从 AS_REQ 提取时间戳并解密 + ET := strings.Split(AS_REQ, ",")[2] + msg := AES_Decrypt(Client_Key_AES, ET) + if msg != "" { + fmt.Println("客户端注册请求 AS_REQ 解析成功,KDC 使用客户端的 AES 密钥解密时间戳:", msg) + // 获取当前时间戳 + localtime := time.Now().Unix() + fmt.Println("区块时间戳:", TS_asreq) + fmt.Println("当前 KDC 处理 AS_REQ 系统时间:", localtime) + // 将字符串转换为 int64 + intValue, _ := strconv.ParseInt(msg, 10, 64) + + // 检查时间戳是否在300秒内 + if localtime-intValue < 300 { + fmt.Println("客户端发送 AS_REQ 跟 KDC 处理时间相差 300 秒内,允许通过!") + } else { + fmt.Println("发送 ASREQ 跟处理时间超过 300 秒,不允许通过!") + } + } else { + fmt.Println("客户端注册请求 AS_REQ 解析失败!") + } +} + +/* + C_Set_AS_REQ + +客户端向 AS 发送注册信息,包含三段内容: +1. 客户端的 ID +2. KDC 的ID +3. ET 被客户端加密的时间戳 +*/ +func C_Set_AS_REQ(Client user.User_True, KDC_ID string, DKSM common.Address, + client_ETH *ethclient.Client, Client_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------4. 客户端发送 AS_REQ!---------------------------") + ClientAuth, instance := deploy.Foundry(client_ETH, Client_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 获取客户端的Nonce值 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result, "get_nonce", Client.ID) + if err != nil { + fmt.Println("获取", Client.ID, "的合约 nonce 失败:", err) + } + nonce := result[0].(*big.Int) // 将结果转换为*big.Int + + // 获取当前时间戳 + timeStamp := time.Now().Unix() + fmt.Printf("客户端截取当前系统的时间戳:%d\n", timeStamp) + + // 生成客户端的AES密钥 + Client_key_AES := AES_Key_Generate(Client.Password) + + // 客户端 AES 加密时间戳 + ET := AES_Encrypt(Client_key_AES, fmt.Sprintf("%d", timeStamp)) + fmt.Println("客户端使用自己的密码生成 AES 对称加密密钥后加密时间戳 ET:", ET) + + // 生成 AS_REQ 消息,客户端ID、KDC ID、加密时间戳 + AS_REQ := Client.ID + "," + KDC_ID + "," + ET + fmt.Println("客户端打包 AS_REQ 发送(Client_ID,KDC_ID,ET):", AS_REQ) + + // 调用合约设置 AS_REQ + tx, err := instance.Transact(ClientAuth, "C_Set_AS_REQ", Client.ID, KDC_ID, AS_REQ, nonce) + if err != nil { + fmt.Println("合约 C_Set_AS_REQ 无法调用:", err) + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + fmt.Println("等待交易执行失败:", err) + } + + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + //fmt.Println("Client0 的 AS_REQ 设置成功") + fmt.Println(Client.ID, "的注册信息已发送:", tx.Hash().Hex()) + } else { + fmt.Println("Client0 的 AS_REQ 设置失败") + } +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/utils/Setup.go b/2024-shenzhen-FinTechathon/Rebirth/src/utils/Setup.go new file mode 100644 index 000000000..ba911f56a --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/utils/Setup.go @@ -0,0 +1,134 @@ +package utils + +import ( + "DKSM/deploy" + "DKSM/user" + "context" + "crypto/ecdsa" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/ethclient" + "strings" +) + +// Setup 初始化设置 +func Setup(KDC user.User_True, Client user.User_True, Server user.User_True, + client_ETH *ethclient.Client, KDC_ETH_PrivateKey *ecdsa.PrivateKey) common.Address { + fmt.Println("--------------------初始化开始!---------------------") + KDC_Deploy := user.User{ + ID: KDC.ID, + Key: "", + Addr: KDC.Addr, + PL: user.KDC_PL, + Attribute: nil, + } + Client_Deploy := user.User{ + ID: Client.ID, + Key: "", + Addr: Client.Addr, + PL: "", + Attribute: user.Client_Attribute, + } + Server_Deploy := user.User{ + ID: Server.ID, + Key: "", + Addr: Server.Addr, + PL: "", + Attribute: nil, + } + + KDC_Key_AES := AES_Key_Generate(KDC.Password) // 生成 KDC 的 AES 密钥 + Client_Key_AES := AES_Key_Generate(Client.Password) // 生成客户端的 AES 密钥 + Server_Key_AES := AES_Key_Generate(Server.Password) // 生成服务器的 AES 密钥 + fmt.Println("参与者的对称加密密钥如下: ") + fmt.Println("KDC_Key_AES:", KDC_Key_AES) + fmt.Println("Client_Key_AES:", Client_Key_AES) + fmt.Println("Server_Key_AES:", Server_Key_AES) + fmt.Println("------------------------------------------------") + + fmt.Println("信息加密开始!") + for index, value := range Client_Deploy.Attribute { // 客户端密钥加密自身身份 + Client_Deploy.Attribute[index] = AES_Encrypt(Client_Key_AES, value) + } + Client_Deploy.Key = AES_Encrypt(KDC_Key_AES, Client_Key_AES) // KDC 密钥加密客户端密钥 + Server_Deploy.Key = AES_Encrypt(KDC_Key_AES, Server_Key_AES) // KDC 密钥加密服务器密钥 + + fmt.Println("信息加密完成!在这里客户端的身份策略被加密,客户端密钥被加密,服务器密钥被加密。") + fmt.Println("------------------------------------------------") + + Users_Deploy := []user.User{KDC_Deploy, Client_Deploy, Server_Deploy} + + // 部署合约(Go版本的实现) + fmt.Println("--------------------1. 部署合约!---------------------------") + DKSM := deploy.DeployDKSM(client_ETH, KDC_ETH_PrivateKey) // 返回 DKSM 部署成功的合约地址 + fmt.Println("--------------------2. 设置合约用户参数!---------------------------") + for _, Value := range Users_Deploy { + KdcAuth, instance := deploy.Foundry(client_ETH, KDC_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + userAttribute := strings.Join(Value.Attribute, ",") + tx, err := instance.Transact(KdcAuth, "setup", common.HexToAddress(Value.Addr), Value.ID, Value.Key, userAttribute, "") + if err != nil { + fmt.Println("上传", Value.ID, "信息失败") + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + fmt.Println("等待与合约交互失败:", err) + } + + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Printf("用户 %s 设置成功\n", Value.ID) + } else { + fmt.Printf("用户 %s 设置失败\n", Value.ID) + } + } + fmt.Println("用户参数设置完成!") + + return DKSM +} + +func VerifySetup(KDC user.User_True, Client user.User_True, Server user.User_True, DKSM common.Address, + client_ETH *ethclient.Client, KDC_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------3. 验证设置!---------------------------") + KdcAuth, instance := deploy.Foundry(client_ETH, KDC_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 获取用户信息的内部函数 + getInfo := func(id string) { + // 定义存储结果的切片 + var result []interface{} + + // 调用合约的getInfo方法 + err := instance.Call(&bind.CallOpts{From: KdcAuth.From}, &result, "getInfo", id) + if err != nil { + fmt.Println("获取", id, "信息失败:", err) + } + + // 提取并打印结果 + userAddress := result[0].(common.Address) + userID := result[1].(string) + userKey := result[2].(string) + userPL := result[3].(string) + userLifetime := result[4].(string) + + fmt.Printf("User Address: %s\nID: %s\nKey: %s\nPL: %s\nLifetime: %s\n", + userAddress.Hex(), + userID, + userKey, + userPL, + userLifetime) + } + + // 验证KDC信息 + fmt.Println("----------------------------- KDC 的全部信息:-----------------------------") + getInfo(KDC.ID) + + // 验证客户端信息 + fmt.Println("----------------------------- Client 的全部信息:-----------------------------") + getInfo(Client.ID) + + // 验证服务器信息 + fmt.Println("----------------------------- Server 的全部信息:-----------------------------") + getInfo(Server.ID) +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/utils/TGS-EX.go b/2024-shenzhen-FinTechathon/Rebirth/src/utils/TGS-EX.go new file mode 100644 index 000000000..1b4abae7e --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/utils/TGS-EX.go @@ -0,0 +1,262 @@ +package utils + +import ( + "DKSM/deploy" + "DKSM/user" + "context" + "crypto/ecdsa" + "crypto/rand" + "crypto/sha256" + "encoding/hex" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/ethclient" + "log" + "math/big" + "strconv" + "strings" + "time" +) + +func Receipt_TGS_REP(Client user.User_True, KDC_Client_TGS_ForClient string, Server_ID string, DKSM common.Address, + client_ETH *ethclient.Client, Client_ETH_PrivateKey *ecdsa.PrivateKey) (string, string) { + fmt.Println("--------------------11. 客户端获取返回的 TGS_REP!---------------------------") + ClientAuth, instance := deploy.Foundry(client_ETH, Client_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 调用合约的 C_Get_TGS_REP 方法获取加密的 TGS_REP 和时间戳 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result, "C_Get_TGS_REP", Client.ID, Server_ID) + if err != nil { + log.Fatalf("Failed to get TGS_REP from contract: %v", err) + } + TGS_REP := result[0].(string) + fmt.Println("客户端接受到 KDC 回复的 TGS_REP:", TGS_REP) + TS_tgsrep := result[1].(*big.Int).Int64() + + // 解密 TGS_REP,解析内容 + TGS_REP_Content := AES_Decrypt(KDC_Client_TGS_ForClient, TGS_REP) + fmt.Println("客户端使用之前保存的 KDC_Client_TGS_ForClient 通行凭证解密 TGS_REP 信息:", TGS_REP_Content) + + // 解析 Kc_v 和 ST + TGS_REP_Parts := strings.Split(TGS_REP_Content, ",") + Client_Server_AESKey := TGS_REP_Parts[2] + ST := TGS_REP_Parts[3] + fmt.Println("KDC 回复信息 AS_REP 解析成功,时间戳:", TGS_REP_Parts[4]) + + // 获取当前时间戳 + localtime := time.Now().Unix() + fmt.Println("区块时间戳:", TS_tgsrep) + fmt.Println("当前系统时间:", localtime) + intValue, _ := strconv.ParseInt(TGS_REP_Parts[4], 10, 64) + + // 检查时间戳差异 + if localtime-intValue < 300 { + fmt.Println("KDC 发送 TGS_REP 跟客户端处理时间相差 300 秒内,允许通过!") + // 返回解密后的 AS_REP + fmt.Println("客户端提取 TGS_REP 中 KDC 生成的客户端跟服务器间的通讯凭证:", Client_Server_AESKey) + fmt.Println("客户端提取被 KDC 使用服务器 AES 密钥加密的 ST 密文:", ST) + return Client_Server_AESKey, ST + } else { + fmt.Println("发送 ASREP 跟处理时间超过 300 秒,不允许通过!") + return "", "" + } +} + +func TGS_Set_TGS_REP(KDC user.User_True, KDC_Client_TGS string, Client_ID string, Server_ID string, address common.Address, + client_ETH *ethclient.Client, KDC_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------10. KDC 设置 TGS_REP!---------------------------") + KdcAuth, instance := deploy.Foundry(client_ETH, KDC_ETH_PrivateKey, address, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 获取客户端的Nonce值 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: KdcAuth.From}, &result, "get_nonce", KDC.ID) + if err != nil { + fmt.Println("获取", KDC.ID, "的合约 nonce 失败:", err) + } + nonce := result[0].(*big.Int) // 将结果转换为*big.Int + + // 从合约中获取 CKv + var result1 []interface{} + err = instance.Call(&bind.CallOpts{From: KdcAuth.From}, &result1, "TGS_Get_CKv", KDC.ID, Server_ID) + if err != nil { + log.Fatalf("Failed to get CKv for TGS %s and service %s: %v", KDC.ID, Server_ID, err) + } + Server_Key_AES_EncryptByKDC := result1[0].(string) + fmt.Println("KDC 获取在智能合约中存放着被 KDC AES 对称加密后的服务器的 AES 密钥:") + + // 解密 CKv 获取服务密钥 Kv + Server_Key_AES := AES_Decrypt(AES_Key_Generate(KDC.Password), Server_Key_AES_EncryptByKDC) + fmt.Println("KDC 通过自身密码生成 KDC AES 对称加密密钥后,解密得到服务器的 AES 密钥:", Server_Key_AES) + + // 生成客户端和服务之间的会话密钥 Kc_v + // 生成随机的 Kc_tgs 密钥 + Client_Server_AESKey_Bytes := make([]byte, 16) + _, err = rand.Read(Client_Server_AESKey_Bytes) + if err != nil { + fmt.Println("生成 Client_Server 通行凭证失败:", err) + } + Client_Server_AESKey_Hex := hex.EncodeToString(Client_Server_AESKey_Bytes) + Client_Server_AESKey := AES_Key_Generate(Client_Server_AESKey_Hex) + fmt.Println("KDC 随机生成客户端跟服务器间的通讯凭证 Client_Server_TGS:", Client_Server_AESKey) + + // 获取当前时间戳 + TimeStamp := time.Now().Unix() + fmt.Printf("KDC 截取当前系统的时间戳:%d\n", TimeStamp) + + // 生成加密的服务票据 ST + //lifetime := "2024-09-01" + ST := AES_Encrypt(Server_Key_AES, fmt.Sprintf("%s,%s,%s", Client_ID, Server_ID, Client_Server_AESKey)) + fmt.Println("KDC 打包 ST 明文信息(Client_ID,Server_ID,Client_Server_TGS):", fmt.Sprintf("%s,%s,%s", Client_ID, Server_ID, Client_Server_AESKey)) + fmt.Println("KDC 用服务器的 AES 密钥加密 ST,得到 ST 密文:", ST) + + // 生成加密的 TGS 响应 TGS_REP + TGS_REP := AES_Encrypt(KDC_Client_TGS, fmt.Sprintf("%s,%s,%s,%s,%d", Client_ID, Server_ID, Client_Server_AESKey, ST, TimeStamp)) + fmt.Println("KDC 打包 TGS_REP 信息(Client_ID,Server_ID,Client_Server_TGS,ST密文,TimeStamp):", fmt.Sprintf("%s,%s,%s,%s,%d", Client_ID, Server_ID, Client_Server_AESKey, ST, TimeStamp)) + fmt.Println("KDC 使用之前保存的 KDC_Client_TGS_ForKDC 通行凭证加密 TGS_REP 信息,最终发送:", TGS_REP) + + // 使用 Transact 方法调用合约的 TGS_Set_TGS_REP 函数 + tx, err := instance.Transact(KdcAuth, "TGS_Set_TGS_REP", Client_ID, KDC.ID, Server_ID, TGS_REP, nonce) + if err != nil { + log.Fatalf("Failed to set TGS_REP: %v", err) + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + log.Fatalf("Failed to wait for transaction mining: %v", err) + } + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Println("KDC 已发送 TGS-REP 回复信息:", tx.Hash().Hex()) + } else { + fmt.Println("KDC 发送 TGS-REP 失败") + } + + // 打印交易哈希 + fmt.Printf("TGS-REP 已发送: %s\n", tx.Hash().Hex()) +} + +func Receipt_TGS_REQ(KDC user.User_True, KDC_Client_TGS string, Client_ID string, address common.Address, + client_ETH *ethclient.Client, KDC_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------9. KDC 获取 TGS_REQ!---------------------------") + KdcAuth, instance := deploy.Foundry(client_ETH, KDC_ETH_PrivateKey, address, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 调用合约的 TGS_Get_TGS_REQ 方法 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: KdcAuth.From}, &result, "TGS_Get_TGS_REQ", Client_ID, KDC.ID) + if err != nil { + log.Fatalf("Failed to get TGS_REQ from contract: %v", err) + } + + // 解析返回结果 + TGS_REQ := result[0].(string) // 数据包 + TS_tgsreq := result[1].(*big.Int).Int64() // 区块时间戳 + fmt.Println("KDC 接收到客户端发送的 TGS_REQ:", TGS_REQ) + + // 解析 TGS_REQ 内容 + TGS_REQ_Parts := strings.Split(TGS_REQ, ",") + //Client_ID = parts[0] + Server_ID := TGS_REQ_Parts[1] + fmt.Println("KDC 提取到客户端想要请求服务的服务器为:", Server_ID) + + Authenticator1_EncryptBy_KDC_Client_TGS := TGS_REQ_Parts[3] + fmt.Println("KDC 获取客户端使用 KDC_Client_TGS 通行凭证加密身份认证信息:", Authenticator1_EncryptBy_KDC_Client_TGS) + Authenticator1 := AES_Decrypt(KDC_Client_TGS, Authenticator1_EncryptBy_KDC_Client_TGS) + fmt.Println("KDC 使用先前保存的 KDC_Client_TGS_ForKDC 解密身份验证信息:", Authenticator1) + Authenticator1_Parts := strings.Split(Authenticator1, ",") + fmt.Println("客户端服务请求 TGS_REQ 解析成功,KDC 用 KDC_Client_TGS 通行凭证解密时间戳:", Authenticator1_Parts[2]) + // 获取当前时间戳 + localtime := time.Now().Unix() + fmt.Println("区块时间戳:", TS_tgsreq) + fmt.Println("当前系统时间:", localtime) + // 将字符串转换为 int64 + intValue, _ := strconv.ParseInt(Authenticator1_Parts[2], 10, 64) + + // 检查时间戳是否在300秒内 + if localtime-intValue < 300 { + fmt.Println("客户端发送 TGS_REQ 跟 KDC 处理时间相差 300 秒内,允许通过!") + // 验证 TGT_content 是否与期望值匹配 + // 解密 TGT + TGT_EncryptBy_KDC_Client_TGS := TGS_REQ_Parts[2] + fmt.Println("KDC 获取客户端使用 KDC_Client_TGS 通行凭证加密 TGT 密文:", TGT_EncryptBy_KDC_Client_TGS) + TGT := AES_Decrypt(KDC_Client_TGS, TGT_EncryptBy_KDC_Client_TGS) + fmt.Println("KDC 使用先前保存的 KDC_Client_TGS_ForKDC 解密 TGT 密文的第一层加密:", TGT) + TGT_content := AES_Decrypt(AES_Key_Generate(KDC.Password), TGT) + fmt.Println("KDC 用自己的密码生成 AES 密钥解密 TGT 密文的第二层加密:", TGT_content) + expectedValues := []string{Client_ID, KDC.ID, KDC_Client_TGS} + fmt.Println("KDC 创建验证信息(Client_ID,KDC_ID,KDC_Client_TGS):", fmt.Sprintf("%s,%s,%s", expectedValues[0], expectedValues[1], expectedValues[2])) + TGT_parts := strings.Split(TGT_content, ",") + if TGT_parts[0] == expectedValues[0] && TGT_parts[1] == expectedValues[1] && TGT_parts[2] == expectedValues[2] { + fmt.Println("KDC 验证 TGS_REQ 数据正确") + } else { + fmt.Println("TGS_REQ 解包失败") + } + } else { + fmt.Println("发送 TGS_REQ 跟处理时间超过 300 秒,不允许通过!") + } +} + +// C_Set_TGS_REQ 客户端设置 TGS-EX 请求 +func C_Set_TGS_REQ(Client user.User_True, AS_REP string, KDC_ID string, Server_ID string, DKSM common.Address, + client_ETH *ethclient.Client, Client_ETH_PrivateKey *ecdsa.PrivateKey) { + fmt.Println("--------------------8. 客户端设置 TGS_REQ!---------------------------") + ClientAuth, instance := deploy.Foundry(client_ETH, Client_ETH_PrivateKey, DKSM, "abi/DKSM.abi") // 创建签名实例和合约实例 + + // 先切割出来 KDC_Client_TGS 凭证和 TGT + AS_REP_List := strings.Split(AS_REP, ",") + KDC_Client_TGS := AS_REP_List[0] + TGT := AS_REP_List[3] + + // 获取客户端的Nonce值 + var result []interface{} + err := instance.Call(&bind.CallOpts{From: ClientAuth.From}, &result, "get_nonce", Client.ID) + if err != nil { + fmt.Println("获取", Client.ID, "的合约 nonce 失败:", err) + } + nonce := result[0].(*big.Int) // 将结果转换为*big.Int + + // 获取当前时间戳 + TimeStamp := time.Now().Unix() + fmt.Printf("客户端截取当前系统的时间戳:%d\n", TimeStamp) + + // 生成 packet_TGSREQ + fmt.Println("客户端提取 AS_REP 的第三段信息 TGT 密文(被 KDC 使用 KDC 的 AES 密钥加密过的):", TGT) + TGT_EncryptBy_KDC_Client_TGS := AES_Encrypt(KDC_Client_TGS, TGT) + fmt.Println("客户端使用 KDC_Client_TGS 通行凭证加密 TGT 密文:", TGT_EncryptBy_KDC_Client_TGS) + packet_TGSREQ := fmt.Sprintf("%s,%s,%s", Client.ID, Server_ID, TGT_EncryptBy_KDC_Client_TGS) + fmt.Println("客户端打包 TGS_REQ 信息(Client_ID,Server_ID,TGT_EncryptBy_KDC_Client_TGS):", packet_TGSREQ) + + // 计算 CheckSum + hash := sha256.New() + hash.Write([]byte(packet_TGSREQ)) + CheckSum := fmt.Sprintf("%x", hash.Sum(nil)) + fmt.Println("客户端对 TGS_REQ 做哈希计算 CheckSum:", CheckSum) + + // 生成 Authenticator1 + Authenticator1 := AES_Encrypt(KDC_Client_TGS, fmt.Sprintf("%s,%s,%d", Client.ID, CheckSum, TimeStamp)) + fmt.Println("客户端打包身份认证信息(Client_ID,CheckSum,TimeStamp):", fmt.Sprintf("%s,%s,%d", Client.ID, CheckSum, TimeStamp)) + fmt.Println("客户端使用 KDC_Client_TGS 通行凭证加密身份认证信息:", Authenticator1) + + // 生成 TGS_REQ + TGS_REQ := fmt.Sprintf("%s,%s", packet_TGSREQ, Authenticator1) + fmt.Println("客户端最终发送的 TGS_REQ 请求信息为:", TGS_REQ) + + // 使用 Transact 方法调用合约的 C_Set_TGS_REQ 函数 + tx, err := instance.Transact(ClientAuth, "C_Set_TGS_REQ", Client.ID, KDC_ID, TGS_REQ, nonce) + if err != nil { + fmt.Println("合约 C_Set_TGS_REQ 无法调用:", err) + } + + // 等待交易执行 + receipt, err := bind.WaitMined(context.Background(), client_ETH, tx) + if err != nil { + fmt.Println("等待交易执行失败:", err) + } + // 根据交易状态判断成功或失败 + if receipt.Status == 1 { + fmt.Println("客户端发送 TGS-REQ:", tx.Hash().Hex()) + } else { + fmt.Println("客户端发送 TGS-REQ 失败") + } +} diff --git a/2024-shenzhen-FinTechathon/Rebirth/src/utils/fame_ABE.go b/2024-shenzhen-FinTechathon/Rebirth/src/utils/fame_ABE.go new file mode 100644 index 000000000..4f3fd8065 --- /dev/null +++ b/2024-shenzhen-FinTechathon/Rebirth/src/utils/fame_ABE.go @@ -0,0 +1,251 @@ +package utils + +import ( + "bytes" + "compress/gzip" + "encoding/base64" + "encoding/json" + "fmt" + "github.com/fentec-project/gofe/abe" + "io/ioutil" + "strings" +) + +// bytesToSecKey 反序列化函数:将字符串反序列化为 FAMESecKey 对象 +func bytesToSecKey(data string) *abe.FAMESecKey { + // 解码 Base64 字符串 + decodedData, err := base64.StdEncoding.DecodeString(data) + if err != nil { + return nil + } + + // 使用 gzip 解压缩 + buf := bytes.NewReader(decodedData) + zr, err := gzip.NewReader(buf) + if err != nil { + return nil + } + jsonData, err := ioutil.ReadAll(zr) + if err != nil { + return nil + } + + // 反序列化为 FAMESecKey 结构体 + var secKey abe.FAMESecKey + err = json.Unmarshal(jsonData, &secKey) + if err != nil { + fmt.Println("JSON 格式的主密钥反序列化失败:", err) + return nil + } + + return &secKey +} + +// serializeFAMESecKey 函数:序列化 FAMESecKey 对象 +func serializeFAMESecKey(secKey *abe.FAMESecKey) string { + // 将主密钥结构体序列化为 JSON 字符串 + jsonData, err := json.Marshal(secKey) + if err != nil { + fmt.Println("主密钥序列化为 JSON 失败:", err) + return "" + } + + // 使用 gzip 压缩 JSON 字符串 + var buf bytes.Buffer + zw := gzip.NewWriter(&buf) + _, err = zw.Write(jsonData) + if err != nil { + return "" + } + if err := zw.Close(); err != nil { + return "" + } + + // 将压缩后的数据编码为 Base64 字符串 + compressedEncodedData := base64.StdEncoding.EncodeToString(buf.Bytes()) + return compressedEncodedData +} + +// bytesToPubKey 反序列化函数:将字符串反序列化为 FAMEPubKey 对象 +func bytesToPubKey(data string) *abe.FAMEPubKey { + // 解码 Base64 字符串 + decodedData, err := base64.StdEncoding.DecodeString(data) + if err != nil { + return nil + } + + // 使用 gzip 解压缩 + buf := bytes.NewReader(decodedData) + zr, err := gzip.NewReader(buf) + if err != nil { + return nil + } + jsonData, err := ioutil.ReadAll(zr) + if err != nil { + return nil + } + + // 反序列化为 FAMEPubKey 结构体 + var pubKey abe.FAMEPubKey + err = json.Unmarshal(jsonData, &pubKey) + if err != nil { + fmt.Println("JSON 格式的公钥反序列化失败:", err) + return nil + } + + return &pubKey +} + +// serializeFAMEPubKey 函数:序列化 FAMEPubKey 对象 +func serializeFAMEPubKey(pubKey *abe.FAMEPubKey) string { + // 将公钥结构体序列化为 JSON 字符串 + jsonData, err := json.Marshal(pubKey) + if err != nil { + fmt.Println("公钥序列化为 JSON 失败:", err) + return "" + } + + // 使用 gzip 压缩 JSON 字符串 + var buf bytes.Buffer + zw := gzip.NewWriter(&buf) + _, err = zw.Write(jsonData) + if err != nil { + return "" + } + if err := zw.Close(); err != nil { + return "" + } + + // 将压缩后的数据编码为 Base64 字符串 + compressedEncodedData := base64.StdEncoding.EncodeToString(buf.Bytes()) + return compressedEncodedData +} + +// bytesToCipher 反序列化函数:将字符串反序列化为 FAMECipher 对象 +func bytesToCipher(data string) *abe.FAMECipher { + // 解码 Base64 字符串 + decodedData, err := base64.StdEncoding.DecodeString(data) + if err != nil { + return nil + } + + // 使用 gzip 解压缩 + buf := bytes.NewReader(decodedData) + zr, err := gzip.NewReader(buf) + if err != nil { + return nil + } + jsonData, err := ioutil.ReadAll(zr) + if err != nil { + return nil + } + + // 反序列化为 FAMECipher 结构体 + var cipher abe.FAMECipher + err = json.Unmarshal(jsonData, &cipher) + if err != nil { + fmt.Println("JSON 格式的密文反序列化失败:", err) + return nil + } + + return &cipher +} + +// serializeFAMECipher 函数:序列化 FAMECipher 对象 +func serializeFAMECipher(cipher *abe.FAMECipher) string { + // 将结构体序列化为 JSON 字符串 + jsonData, err := json.Marshal(cipher) + if err != nil { + fmt.Println("密文序列化为 JSON 失败:", err) + return "" + } + + // 使用 gzip 压缩 JSON 字符串 + var buf bytes.Buffer + zw := gzip.NewWriter(&buf) + _, err = zw.Write(jsonData) + if err != nil { + return "" + } + if err := zw.Close(); err != nil { + return "" + } + + // 将压缩后的数据编码为 Base64 字符串 + compressedEncodedData := base64.StdEncoding.EncodeToString(buf.Bytes()) + return compressedEncodedData +} + +func ABE_Encrypt(plaintext string, policy string) string { + // 实例化 FAME 方案 + fame := abe.NewFAME() + + // 生成公钥和主密钥 + pubKey, secKey, err := fame.GenerateMasterKeys() + if err != nil { + fmt.Println("生成主密钥和公钥失败:", err) + return "" + } + + // 将策略转换为 MSP + msp, err := abe.BooleanToMSP(policy, false) + if err != nil { + fmt.Println("策略转换为 MSP 失败:", err) + return "" + } + + // 加密消息 + cipher, err := fame.Encrypt(plaintext, msp, pubKey) + if err != nil { + fmt.Println("加密失败:", err) + return "" + } + + // 序列化公钥、主密钥和密文 + serializedPubKey := serializeFAMEPubKey(pubKey) + serializedSecKey := serializeFAMESecKey(secKey) + serializedCipher := serializeFAMECipher(cipher) + + // 将序列化后的内容拼接成一个字符串,使用 "," 分隔 + finalString := fmt.Sprintf("%s,%s,%s", serializedPubKey, serializedSecKey, serializedCipher) + + return finalString +} + +func ABE_Decrypt(encryptedString string, attributes []string) string { + // 切割字符串,获取公钥、主密钥和密文的序列化字符串 + parts := strings.Split(encryptedString, ",") + if len(parts) != 3 { + fmt.Println("加密字符串格式错误") + return "" + } + + // 反序列化公钥、主密钥和密文 + pubKey := bytesToPubKey(parts[0]) + secKey := bytesToSecKey(parts[1]) + cipher := bytesToCipher(parts[2]) + + if pubKey == nil || secKey == nil || cipher == nil { + fmt.Println("反序列化失败") + return "" + } + + // 实例化 FAME 方案 + fame := abe.NewFAME() + + // 使用用户的属性生成解密密钥 + userAttribKeys, err := fame.GenerateAttribKeys(attributes, secKey) + if err != nil { + fmt.Println("生成用户属性密钥失败:", err) + return "" + } + + // 解密消息 + plaintext, err := fame.Decrypt(cipher, userAttribKeys, pubKey) + if err != nil { + fmt.Println("解密失败:", err) + return "" + } + + return plaintext +}