CN116777476A - 基于公钥可搜索加密的药品可信溯源方法 - Google Patents

基于公钥可搜索加密的药品可信溯源方法 Download PDF

Info

Publication number
CN116777476A
CN116777476A CN202310687830.5A CN202310687830A CN116777476A CN 116777476 A CN116777476 A CN 116777476A CN 202310687830 A CN202310687830 A CN 202310687830A CN 116777476 A CN116777476 A CN 116777476A
Authority
CN
China
Prior art keywords
medicine
data
information
ciphertext
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310687830.5A
Other languages
English (en)
Inventor
姜茸
张琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunnan University of Finance and Economics
Original Assignee
Yunnan University of Finance and Economics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yunnan University of Finance and Economics filed Critical Yunnan University of Finance and Economics
Priority to CN202310687830.5A priority Critical patent/CN116777476A/zh
Publication of CN116777476A publication Critical patent/CN116777476A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Medical Treatment And Welfare Office Work (AREA)

Abstract

本发明公开了一种基于公钥可搜索加密的药品可信溯源方法包括4个步骤:1.对收集的药品信息和日志信息进行加密和提取关键词生成药品密文和索引表,上传至云服务器,为加密数据的搜索,即追溯查询提供依据;2.根据密文和数据上传者的身份ID生成相关药品信息的检查列表,将检查列表嵌入到区块链的智能合约中;3.将Step1中的药品密文上传至药品溯源链;4.当数据查询者想要对药品信息进行查询时,系统获取查询者输入的搜索词条中的关键词和身份ID并进行验证,通过验证之后,完成搜索行为;并记录此次搜索行为生成日志信息,并上链存储。本发明面向药品溯源场景引入公钥可搜索加密技术,使得各个节点易于维护和监控,采用前置语义提取算法,在方法中引入前置条件和词性因子,有效提升模型中药品数据特征提取的准确性;采用默克尔倒排索引树结构,提高多关键词的搜索效率,支持云服务器和区块链的可信验证过程,提高药品数据搜索效率。

Description

基于公钥可搜索加密的药品可信溯源方法
技术领域
本发明涉及一种基于公钥可搜索加密的药品可信溯源方法。
背景技术
药品供应链参与主体众多且复杂,导致供应链参与主体之间存在信息不对称性,实现真正的药品溯源并非易事。目前的区块链溯源技术在药品溯源领域的应用中仍有以下不足:①现有基于区块链的可搜索加密模型仅考虑算法流程与区块链的融合设计,其应用场景比较单一。②现有区块链溯源研究方向多数为其模型架构的搭建和智能合约实现,忽略了链下数据在传输时的安全性和可信性考虑。③目前基于区块链的可搜索加密模型对数据加密流程研究较为全面,但缺少链下数据索引处理和上链存储成本的考虑。
发明内容
针对现有技术中存在的缺陷,本发明提出一种基于区块链的药品溯源数据的可搜索加密模型(Public key Encryption with Keyword Search model of DrugTraceability data based on Blockchain,DTB-PEKS),将药品信息进行处理,分为多个药品数据文件,对每个数据文件提取出关键词的索引值。利用公钥可搜索加密算法对数据文件进行加密生成密文,构建索引树MIIT并发送至云服务器,密文上传至区块链中。另外,本模型能够记录关键词的搜索次数以及搜索状态,在搜索前通过判断相关参数,从而减轻搜索信息过多造成的加密、解密负担,该算法可以随时对数据进行更新、溯源。
本发明所述的模型设计中采用电子标签或者二维码等物联网技术对药品进行特殊标记和采集信息,以便于药品信息记录和管理;将以上信息进行上链;智能合约负责管理链上节点的数据访问权限以及医院、消费者等使用者追溯查询的验证问题。最后,溯源工作将会受到药监局以及有关决策部门的最高权限监督。
本发明提出一种基于公钥可搜索加密的药品可信溯源方法,包括4个步骤:
Step1:对收集的药品信息和日志信息进行加密和提取关键词生成药品密文和索引表,上传至云服务器,为加密数据的搜索,即追溯查询提供依据;
Step2:根据密文和数据上传者的身份ID生成相关药品信息的检查列表,将检查列表嵌入到区块链的智能合约中;
Step3:将Step1中的药品密文上传至药品溯源链;
Step4:当数据查询者想要对药品信息进行查询时,系统获取查询者输入的搜索词条中的关键词和身份ID并进行验证,通过验证之后,完成搜索行为;并记录此次搜索行为生成日志信息,并上链存储;
所述Step1中,药品关键词的提取采用前置语义提取PSE算法,药品关键词的索引生成采用MIIT构建;
所述Step1中,对收集的药品信息和日志信息进行加密和提取关键词生成药品密文和索引表具体做法如下:
采用准备算法将药品到库信息M分为多个数据文件,通过溯源系统将数据文件进行可搜索加密处理,生成密文Em,并对多个数据文件提取关键词w,生成文件-区块标识符BPi∈{0,1}l,其中l为数据文件Mi的长度,并生成索引MIIT和关键词状态表Map;医院客户端将BPi(Ei)存储到区块链,生成索引MII存储至云服务器;
所述Step4分为陷门信息生成阶段和搜索阶段;
其中,陷门信息生成阶段又分为2个步骤:
Step4-1、当患者进行对明文关键词Drug_a的搜索时,客户端系统首先获取其状态Map,计算搜索令牌Kts=H1(Drug_a||ts);并判断搜索状态S;其中ts表示搜索次数;
Step4-2、如果S为″Y″,说明药品A曾被搜索过,区块链保留着上次的搜索记录Record,溯源系统将搜索令牌进行加密,与患者IDP合并生成陷门,发送给区块链,区块链使用私钥skb顺利解密并得到搜索密钥Kts之后,说明区块链接收到正确的陷门信息;此时,区块链将对应密钥Kts的密文Em进行加密处理,区块链返回Em′,给客户端系统;
如果S为″N″,说明药品A的信息在上传或更新之后未曾被搜索,需要云服务器首先计算搜索结果;患者客户端计算新的索引指针IPt和上次的搜索令牌Kts-к,同患者身份IDP合并生成陷门,将发送给云服务器;同时,患者客户端将对应搜索状态改为″Y″;
其中,搜索阶段又分为3个步骤:
Step4-3、在S为″N″的情况下,即药品A信息未被搜索过,患者客户端发送陷门给云服务器,云服务器获取到陷门之后,从索引MIIT中得到与关键词Drug_a有关的密文区块指针BPm和索引指针IPt,将计算结果搜索令牌Kts、用户身份IDP和所有的密文Em对应随机数at和验证码Vt发送到区块链;
Step4-4、区块链在收到搜索结果并进行验证计算通过后,从Record调出上次搜索密文Em并进行非对称加密,将Em′返回给患者客户端;同时,记录此次搜索结果,即搜索令牌和密文;
Step4-5、患者客户端收到Em′并读取头文件γK′,使用自身私钥Dec(E′m,skP)进行非对称解密生成γK,计算并使用密钥K,得到密钥γ并计算对称密钥Ke,计算SDec(Ke,M′),计算出药品到库信息M。
优选的,Step1中所述前置语义提取PSE算法引入前置条件和词性因子,并构建了一个关键字的树形索引结构,公式如下:
其中condtion1=contain(′add′∧′delete′∧′update′∧′check′)表示满足数据中出现“增删改查”字句,表明此条数据为日志数据,则prei赋值为1;
词频(Term Frequency,TF)表示词语在文档D中出现的概率,如公式:
其中,分子Ni,j是该词语ti在文档dj中出现的次数,而分母∑kNk,j则表示在文档dj中所有字词的出现次数总和;
逆文档概率(Inverse Document Frequency,IDF)表示语料库中包含词语ti的文档的数目的倒数,计算公式如下:
其中,|D|表示语料库中文档的总数,|{j:ti∈dj}|表示包含词语ti的文档数量;如果该词语不出现在语料库中,就会导致被除数为0,所以在此进行加1操作,避免此问题出现;
根据两种数据类型,分别对医药数据权重(pos_medi)和日志数据权重(pos_logi)进行分类赋值,将对关键词i的词性权重进行区分,将词性的权值进行定义,不同词性的关键字权值定义如公式:
其中:
adj.是形容词 β是形容词权值;
adv.是副词 γ是形容词权值;
v.是动词 δ是形容词权值;
n是名词 α是形容词权值;
num是数字 ε是形容词权值;
特征词权重的计算公式为:
本发明的有益效果是:
本发明面向药品溯源场景引入公钥可搜索加密技术,使得各个节点易于维护和监控,链上药品信息能够被任何节点查询,增强在线药品数据的安全性和可信性,提高加密数据的可用性。其次,使用一种改进的关键词提取方法,称为前置语义提取算法,在方法中引入前置条件和词性因子,有效提升模型中药品数据特征提取的准确性。然后,提出一种默克尔倒排索引树结构,通过引入倒排列表、Merkle树、哈希指针等技术,提高多关键词的搜索效率,支持云服务器和区块链的可信验证过程,提高药品数据搜索效率。
由于可搜索加密方法加密、解密的速度问题以及数据的存储问题,DTB-PEKS模型需要将药品信息进行处理,分为多个药品数据文件,对每个数据文件提取出关键词的索引值。然后,利用公钥可搜索加密算法对数据文件进行加密生成密文,构建索引树MIIT并发送至云服务器,密文上传至区块链中。另外,本模型能够记录关键词的搜索次数以及搜索状态,在搜索前通过判断相关参数,从而减轻搜索信息过多造成的加密、解密负担,该算法可以随时对数据进行更新、溯源。
附图说明:
图1药品信息的追踪交互过程;
图2基于区块链的药品溯源架构;
图3MIIT结构示意图;
图4密文上传和搜索时序图;
图5数据交互流程;
图6药品供应链的网络图;
图7密文解密过程。
具体实施方式
下面结合具体实施方式对本发明做进一步详细描述:
DTB-PEKS模型简介:
(1)DTB-PEKS模型架构:包括数据层、网络层、共识层、合约层和应用层共计5层。其中,数据层为核心层,对相关药品信息进行采集,例如图像信息、不重复的药品批次号、查询操作日志和独立追溯号码(由产品类别、生产日期、有效期、批号等相关信息组成),为后续的追溯查询提供依据,并对收集到的信息进行加密并上链存储。在网络层,主要为药品信息的传输提供基础。共识层对需要上链的药品信息进行共识和数据验证。合约层是整个区块链工作的方法,具体为智能合约,以设置权限集和追溯查询验证列表。应用层为使用者提供一个溯源区块链的接口,以进行药品信息的追溯查询和监督。
(2)DTB-PEKS参与实体:对药品溯源区块链的参与实体进行基于角色的分类:数据上传生成者,例如制药厂、经销/物流商、医院、药店以及消费者;数据追溯查询者例如医院、药店和消费者;数据监督者,如药监机构和区块链管理方,具体说明如下:
①数据上传方负责药品信息的收集和链上信息的存储,通过系统对收集来的药品信息进行规范处理和加密上链,对收集得来的药品信息进行提取关键词和加密操作,并将其上传到溯源区块链和云服务器。区块链将接收到的信息通过点对点网络发布,得到共识验证后存储在数据层中,以实现所有区块节点的数据统一,为之后的追溯和监督提供依据。
②数据查询方则是数据流目的地,接收药品信息。查询方与应用层进行交互,在系统前端进行工作,获取药品信息以实现追溯查询。虽然所有的节点实体都能够查看药品溯源信息,但不同实体具有不同的功能和权限,需要合约层的智能合约对查询方约束访问和操作数据的权限,例如,消费者对于药品信息仅有上传用药感受、查询药品批号和生产厂家资质部分溯源信息,而对于其他信息没有权限查看。
③对于数据监管方,如药监局拥有全部药品溯源信息的访问权限,以便监管其他节点的违法行为和追究其法律责任。此外,每个参与实体必须在区块链上进行注册,并获得唯一的身份标识,由非对称密码学的公钥和私钥组成,并将每个存储、查询等事务进行关联,增强追溯的真实透明性。
(3)DTB-PEKS工作流程:在提出的模型中将药品溯源区块链的工作主要分成两种模式:存储上链和追溯查询。
①存储上链模式:在数据生成方完成数据收集之后,对信息进行关键词提取并生成索引表,又将药品信息进行加密处理生成密文和检查列表,减少数据泄露风险。经过共识和验证将密文和检查列表存储在区块链上,存储的信息用于追溯和其他研究分析。将密文和索引表上传到云服务器上,为可搜索加密模型提供依据。
②追溯查询模式:当普通参与者对某药品进行查询时,如输入“布洛芬”进行查询,系统将会对云服务器发起搜索请求,云服务器响应请求,计算搜索结果并发送到区块链智能合约进行验证,验证通过将与“布洛芬”有关溯源信息返回给参与者,完成追溯查询工作。而参与者的平台界面将会出现药名为“布洛芬片”或者“布洛芬胶囊”相关词条以及其生产厂家、生产日期/批号以及药品成分/用法等信息。
由于,从药品生产到消费者最终结束,每次的上传的药品信息以及搜索记录都会启动一个数据传输过程,生成一个数据操作事务,用于之后的相同药品关键词的溯源追踪。
(4)DTB-PEKS信息交互:在DTB-PEKS模型中,只考虑药品溯源链的信息交互。信息类型主要包括药品信息和日志信息。药品信息是指以查询为目的、以药品为主体的相关信息如生产批号、物流状态以及售卖信息等。而日志信息是指以溯源为目的、以访问者为主体的相关信息,主要是由数据库软件自动生成,对每一次药品数据变更和查询进行记录,主要包括访问者ID、访问操作以及访问数据指针。
信息交互过程分为4个步骤:
Step1:对收集的药品信息和日志信息进行加密和提取关键词生成药品密文和索引表,上传至云服务器,为加密数据的搜索,即追溯查询提供依据。
Step2:根据密文和数据上传者的身份ID生成相关药品信息的检查列表,将检查列表嵌入到区块链的智能合约中。
Step3:将Step1中的药品密文上传至药品溯源链。
Step4:当数据查询者想要对药品信息进行查询时,系统获取查询者输入的搜索词条中的关键词和身份ID并进行验证,通过验证之后,完成搜索行为。并记录此次搜索行为生成日志信息,并上链存储。
在Step1和Step4中,由于隐私保护、云服务器存储等问题,药品数据和日志信息需要精简处理,将链下数据进行语义信息提取,再进行上链存储,以提高存储效率。并且,通过建立链上链下数据的协同关系,搭建索引列表,提高链上数据访问效率。
其中Step1中,药品关键词的提取采用前置语义提取(Precondition SemanticExtraction,PSE)算法,通过引入前置条件和词性因子来提升特征提取的准确性,解决传统关键字提取算法缺乏语义理解的特点,并基于此构建了一个关键字的树形索引结构。
公式如下:
其中condtion1=contain(′add′∧′delete′∧′update′∧′check′)表示满足数据中出现“增删改查”字句,表明此条数据为日志数据,则prei赋值为1。
词频(Term Frequency,TF)表示词语在文档D中出现的概率,如公式:
其中,分子Ni,j是该词语ti在文档dj中出现的次数,而分母∑kNk,j则表示在文档dj中所有字词的出现次数总和。
逆文档概率(Inverse Document Frequency,IDF)表示语料库中包含词语ti的文档的数目的倒数,计算公式如下:
其中,|D|表示语料库中文档的总数,|{j:ti∈dj}|表示包含词语ti的文档数量。如果该词语不出现在语料库中,就会导致被除数为0,所以在此进行加1操作,避免此问题出现。
根据两种数据类型,分别对医药数据权重(pos_medi)和日志数据权重(pos_logi)进行分类赋值,将对关键词i的词性权重进行区分,将词性的权值进行定义,不同词性的关键字权值定义如公式:
其中:
adj.是形容词 β是形容词权值;
adv.是副词 γ是形容词权值;
v.是动词 δ是形容词权值;
n是名词 α是形容词权值;
num是数字 ε是形容词权值;
因此,我们的特征词权重的计算公式为:
其中Step1中,药品关键词的索引生成采用MIIT构建。
在关键字提取之后,将利用一个全局的倒排列表包含三个属性,分别为:关键字标识Key、区块标识符BlockPointer以及其哈希值。其中,因为区块链的索引结构,使用BlockPointer指向数据所在区块,也是我们主要搜索内容。由于区块链与云服务器的药品数据交互的可信问题,本发明设计了一个默克尔倒排索引树(Merkle InvertedIndexTree,MIIT),通过结合倒排列表、Merkle树、哈希指针等技术,并且更高效地对链上数据进行多关键字搜索。根据区块链的可追加性质,MIIT结构是动态构建,每生成一个新的区块会对MIIT的结构更新。
在对链下数据进行关键字提取之后,将以提取的链下数据作为基础,通过链上区块建立索引结构,由云服务器进行存储和计算搜索结果,并保持索引的生成更新。在本发明的搜索模块中,链上索引结构跟随区块生成而生成或改变。因此,根据链下数据构建一个关键字的倒排树形索引结构,利用倒排索引,对单个关键字的进行快速实施查询,而为实现多关键字的搜索,并采用树形结构呈现出来。
在MIIT中存在两种不同的节点:叶子节点、分支节点,结构如图3所示。其中,每个节点都包含哈希值(Hash),对于叶子节点,这个哈希值是对叶子节点中存储的关键字以及区块指针进行的一次哈希运算,如公式:
hashleaf=hash(key||blockpointer)
对于分支节点,哈希值为关键字、区块指针以及孩子节点的哈希值的进行的一次哈希运算,公式为:
hashbranch=hash[key||blockpointer||hash(child)]
分支节点存放索引相关信息和指向区块的哈希指针,并提供指向下一层节点的指针。叶子节点位于MIIT底层,代表了一条搜索路径的结束,搜索结果存放在叶子节点中,结果为一个指向数据对应交易所在区块的哈希指针。如果一个节点为分支节点,则除了包含指向下一层的指针之外,节点本身也包含对应的搜索结果。同时,当MIIT中只有一个节点,则此节点为叶子节点,如果存在孩子节点,则为分支节点。
为了节省存储空间,本发明不在区块中存储与倒排索引相关的信息,因为MIIT中包含所有的关键词相关信息,如果作为一个新加入的节点,你想要恢复倒排列表,可以在本地利用MIIT进行恢复,或者连接另一个全节点同步他的倒排列表,然后用自己的MIIT进行验证。
本发明提出了一种基于公钥可搜索加密的药品可信溯源方法,该方法包括以下4个功能模块,分别为:密钥生成中心(KGC,Key Generating Center),客户端(Client),区块链(Blockchain)和云服务器(Cloud server),具体介绍如下:
(1)密钥生成机构(KGC,Key Generating Center)。KGC为负责管理和生成密钥的第三方机构,为用户和区块链管理方的身份ID生成对应私钥、公钥,具有权威性、可信赖性及公正性。同时,密钥生成中心公布系统的公共参数。
(2)客户端(Client)。客户端包括不同角色的用户如数据上传用户、数据搜索用户等。客户端通过CA认证颁发的数字签名后,能够在系统中完成对药品数据的上传、搜索查询以及更新等操作。
①数据上传:当用户上传药品数据时,客户端系统对数据进行划分生成多个数据文件,并对多个数据文件进行加密和提取关键词,生成密文和索引并将其上传至云服务器。同时,将密文上传至区块链中。
②数据搜索:当用户发起对某关键词的搜索请求时,客户端系统对请求进行处理,通过计算之后,根据结果向云服务器或区块链发送相应的信息。经过云服务器和区块链的计算和验证之后,利用返回值进行文件的解密。
③数据更新:如数据上传阶段,提取需要更新的药品数据的关键词后,对云服务器和上链数据进行添加。
(3)区块链(Blockchain)。本发明中,区块链对云服务器上传的搜索结果进行验证,验证通过后,将搜索服务费支付给云服务器,并将加密结果返回给客户端。同时,区块链记录本次搜索结果,有利于相同关键词的反复查询,节省计算资源。
(4)云服务器(CS,Cloud Server)。负责本模型中的索引和密文存储,并接受客户端的搜索请求,将计算的搜索结果发送给区块链。
在本模型中,所有操作都是以交易的方式完成,保证操作的不可篡改且无法否认。同时,云服务器必须诚实执行搜索请求服务,为了避免客户端的谎称结果错误而拒绝支付服务费等不端行为出现,区块链的任何节点都可以对交易中的内容进行验证。
药品供应链的所有参与节点IDu和区块链管理方IDb需要获得自己的私钥和公钥,根据对数据的操作方式分为两个阶段:上传和搜索阶段。
(1)在药品数据的上传阶段,医院客户端将药品到库信息M进行加密和提取关键词w,并生成区块-文件标识符BPi,医院客户端将数据密文i的区块-文件标识符BPi(Ei)存储到区块链,生成索引MII等相关数据存储至云服务器。
(2)在搜索阶段,若某位药师想要查询“阿司匹林肠溶片”是否到医院的药库,在系统输入药品,而“阿司匹林”、“肠溶”和“片”都可作为搜索关键词w′,医院系统在搜索状态表中调取w′搜索次数。通过判断之后,如果有过“阿司匹林”、“肠溶”、“片”的搜索记录,则将陷门发送至区块链智能合约,直接将上一次的搜索结果返回给医院系统;若没有,则需要将陷门发送给云服务器,使其计算搜索结果,再由区块链对搜索结果进行验证并返回密文到客户端,客户端解密后获取到库信息M,即“阿司匹林肠溶片”的到库或物流信息。最后,区块链对此次搜索进行记录,生成记录表Record,作为第三方监督的依据。
基于数据运行逻辑将模型分为4个阶段,为准备阶段(Setup)、密钥生成阶段(KeyGen)、陷门生成阶段(TtapdoorGen)、搜索阶段(Search):
1、准备阶段:采用准备算法Setup(λ),客户端将药品到库信息M分为多个数据文件M1,M2,M3,…,Mn,表示为M={M1,M2,M3,…,Mn};溯源系统将数据文件进行可搜索加密处理,生成密文Em,并对多个数据文件提取关键词w,w∈W,生成文件-区块标识符BPi∈{0,1}l,其中l为数据文件Mi的长度,并生成索引MIIT和关键词状态表Map;医院客户端将BPi(Ei)存储到区块链,生成索引MII等相关数据存储至云服务器;
溯源系统生成阶数为大素数p(p>2λ)乘法群G1,G2,g为G1的生成元,生成一个双线性映射选择4个抗碰撞哈希函数,如公式:
λ是安全参数,随机选取作为系统私钥,计算系统公钥为/>
公布溯源系统公共参数同时区块链管理方将部署智能合约;
其中H1,H2,H3代表三个抗碰撞哈希函数;
pk表示系统公钥;
sk代表系统私钥,
Zp *代表个数为p的非零有限域,即{1,…,p-1},其中p为质数;
RZp *代表个数为p的非零实数有限域。
2、密钥生成阶段:假设有m位参与节点,m可动态改变,m∈N+,则有1≤u≤m。同时,系统私钥进行加密,生成系统主密钥,公式如下:
其中N+表示正整数集,是m的取值范围。
m是参与节点数量,表示用户总数量,m作为u的条件;
u表示用户标记,1≤u≤m;表示某位用户;
DTparams是溯源系统公共参数;
IDhosp是节点身份;
pkb是区块链管理方公钥;
sk是系统私钥;
Drug_w是明文关键词
M是药品到库信息;
K是系统主密钥;
pkv是pkγ,pk表示系统公钥,其中
表示g的指数H1运算。其中H1(a)表示输入为a的抗碰撞哈希运算。
Step1:溯源系统初始化空集Map和索引MII,其中Map用来记录明文关键词Drug_w的更新次数t、搜索次数ts、搜索状态S以及索引指针IPt,MII用来存储区块指针和随机数;同时,初始化以上参数,生成随机数
其中:at表示在第t次搜索下的随机数;
γ为随机数;
RZp *代表个数为p的非零实数有限域其中,
医院的药品溯源系统发送[IDhosp,H1(IDhosp)]到密钥生成中心,密钥生成中心通过哈希验证,计算(skhosp,pkhosp),密钥生成中心返回(skhosp,pkhosp)给医院的药品溯源系统。
skhosp=H1(IDhosp)sk
其中IDhosp表示用户标记为hosp(医院系统)的身份ID。
H1(IDhosp)表示输入为IDhosp的抗碰撞哈希函数H1运算。
skhosp表示用户标记为hosp(医院系统)的私钥。
pkhosp表示用户标记为hosp(医院系统)的公钥。
Step2:构造伪随机哈希函数,如Hf(x)=H2(f||x);
其中f代表未知函数,x表示未知数。
医院的药品溯源系统生成搜索令牌Kts、索引指针IPt以及对称密钥Ke
Kts=H1(Dtug_w||ts)
Ke=H1(γ)
生成索引指针IPt和其密文eIPt,并将药品到库信息M通过对称加密生成密文M′,并将γK拼接到M′头部形成数据密文Em
其中HKts()是含有Kts成分的伪随机函数,是用运算得来的;
γ是随机数。
密文eIPi表示对IPt进行加密后的密文,是EncryptIPt的缩写;Em表示对数据M进行加密后的密文,是Encrypt M的缩写。
Em=γK||M′=γK||SEnc(M,Ke)
Ke是对称密钥;
SENc()表示对称加密函数,是Symmetric Encryption的缩写;
Step3:医院将相关数据发送给区块链和云服务器,上传MII[IPt]←{eIPt,BPm,at}到云服务器,上传密文Em到区块链智能合约,至此,医院成功上传药品数据;
其中,IPt是索引指针;
at表示在第t次搜索下的随机数,其中
BPm表示数据M的区块-文件标识符,是BlockPointer的缩写。
相关算法如下:
3、陷门信息生成阶段:
Step1:当患者进行对明文关键词Drug_a的搜索时,客户端系统首先获取其状态Map,计算搜索令牌Kts=H1(Drug-a||ts);并判断搜索状态S;
ts表示搜索次数。
Step2:如果S为″Y″,说明药品A曾被搜索过,区块链保留着上次的搜索记录Record,所以溯源系统将搜索令牌进行加密,与患者IDP合并生成陷门T,发送给区块链,区块链使用私钥skb顺利解密并得到搜索密钥Kts之后,解密公式如下
Kts=Dec(T1,skb) (19)
E′m=Enc(γK,pkb)||M′ (20)
说明区块链接收到正确的陷门信息;此时,区块链将对应密钥Kts的密文Em进行加密处理,区块链返回Em′,给客户端系统;
Em′表示经过Enc()加密运算后的密文。
Dec()表示对称解密函数。
T1是陷门的一个组成元素,是一个变量,在算法TrapdoorGen()的行4和行11都有所表示。
skb是私钥;
Enc()表示对称加密函数。
如果S为″N″,说明药品A的信息在上传或更新之后未曾被搜索,需要云服务器首先计算搜索结果;患者客户端计算新的索引指针IPt和上次的搜索令牌Kts-1,同患者身份IDP合并生成陷门T,将T发送给云服务器;同时,患者客户端将对应搜索状态改为″Y″;
其中:DTparams是系统公共参数;
pkb是区块链管理方公钥;
sk是系统私钥;
Drug_w是明文关键词
IDP是患者身份;相关算法如下:
4、搜索阶段:以系统公共参数DTparams,陷门信息T为输入;
Step1:从算法TrapdoorGen()可知,在S为″N″的情况下,即药品A信息未被搜索过,患者客户端发送陷门T给云服务器,云服务器获取到陷门T之后,从索引MIIT中得到与关键词Drug-a有关的密文区块指针BPm和索引指针IPt,将计算结果搜索令牌Kts、用户身份IDP和所有的密文Em对应随机数at和验证码Vt发送到区块链:
Step2:区块链在收到搜索结果并进行验证计算通过后,从Record调出上次搜索密文Em并进行非对称加密,将Em′返回给患者客户端;同时,记录此次搜索结果,即搜索令牌和密文;
Step3:患者客户端收到Em′并读取头文件γK′,使用自身私钥Dec(E′m,skP)进行非对称解密生成γK,计算并使用密钥K,得到密钥γ并计算对称密钥Ke,计算SDec(Ke,M′),计算出药品到库信息M,解密过程如图7:
相关算法如下:
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (2)

1.一种基于公钥可搜索加密的药品可信溯源方法,其特征在于包括4个步骤:
Step1:对收集的药品信息和日志信息进行加密和提取关键词生成药品密文和索引表,上传至云服务器,为加密数据的搜索,即追溯查询提供依据;
Step2:根据密文和数据上传者的身份ID生成相关药品信息的检查列表,将检查列表嵌入到区块链的智能合约中;
Step3:将Step1中的药品密文上传至药品溯源链;
Step4:当数据查询者想要对药品信息进行查询时,系统获取查询者输入的搜索词条中的关键词和身份ID并进行验证,通过验证之后,完成搜索行为;并记录此次搜索行为生成日志信息,并上链存储;
所述Stepl中,药品关键词的提取采用前置语义提取PSE算法,药品关键词的索引生成采用MIIT构建;
所述Step1中,对收集的药品信息和日志信息进行加密和提取关键词生成药品密文和索引表具体做法如下:
采用准备算法将药品到库信息M分为多个数据文件,通过溯源系统将数据文件进行可搜索加密处理,生成密文Em,并对多个数据文件提取关键词w,生成文件-区块标识符BPi∈{0,1}l,其中l为数据文件Mi的长度,并生成索引MIIT和关键词状态表Map;医院客户端将BPi(Ei)存储到区块链,生成索引MIIT存储至云服务器;
所述Step4分为陷门信息生成阶段和搜索阶段;
其中,陷门信息生成阶段又分为2个步骤:
Step4-1、当患者进行对明文关键词Drug_a的搜索时,客户端系统首先获取其状态Map,计算搜索令牌Kts=H1(Drug_a||ts);并判断搜索状态S;其中ts表示搜索次数;
Step4-2、如果S为″Y″,说明药品A曾被搜索过,区块链保留着上次的搜索记录Record,溯源系统将搜索令牌进行加密,与患者IDP合并生成陷门T,发送给区块链,区块链使用私钥skb顺利解密并得到搜索密钥Kts之后,说明区块链接收到正确的陷门信息;此时,区块链将对应密钥Kts的密文Em进行加密处理,区块链返回Em′,给客户端系统;
如果S为″N″,说明药品A的信息在上传或更新之后未曾被搜索,需要云服务器首先计算搜索结果;患者客户端计算新的索引指针IPt和上次的搜索令牌Kts-1,同患者身份IDP合并生成陷门T,将T发送给云服务器;同时,患者客户端将对应搜索状态改为″Y″;
其中,搜索阶段又分为3个步骤:
Step4-3、在S为″N″的情况下,即药品A信息未被搜索过,患者客户端发送陷门T给云服务器,云服务器获取到陷门T之后,从索引MIIT中得到与关键词Drug_a有关的密文区块指针BPm和索引指针IPt,将计算结果搜索令牌Kts、用户身份IDP和所有的密文Em对应随机数at和验证码Vt发送到区块链;
Step4-4、区块链在收到搜索结果并进行验证计算通过后,从Record调出上次搜索密文Em并进行非对称加密,将Em′返回给患者客户端;同时,记录此次搜索结果,即搜索令牌和密文;
Step4-5、患者客户端收到Em′并读取头文件γK,使用自身私钥Dec(E′m,skP)进行非对称解密生成γK,计算并使用密钥K,得到密钥γ并计算对称密钥Ke,计算SDec(Ke,M′),计算出药品到库信息M。
2.根据权利要求1所述的一种基于公钥可搜索加密的药品可信溯源方法,其特征在于:Stepl中所述前置语义提取PSE算法引入前置条件和词性因子,并构建了一个关键字的树形索引结构,公式如下:
其中condtion 1=contain(′add′∧′delete′∧′update′∧′check′)表示满足数据中出现“增删改查”字句,表明此条数据为日志数据,则prei赋值为1;
词频(Term Frequency,TF)表示词语在文档D中出现的概率,如公式:
其中,分子Ni,j是该词语ti在文档dj中出现的次数,而分母∑kNk,j则表示在文档dj中所有字词的出现次数总和;
逆文档概率(Inverse Document Frequency,IDF)表示语料库中包含词语ti的文档的数目的倒数,计算公式如下:
其中,|D|表示语料库中文档的总数,|{j:ti∈dj}|表示包含词语ti的文档数量;如果该词语不出现在语料库中,就会导致被除数为0,所以在此进行加1操作,避免此问题出现;
根据两种数据类型,分别对医药数据权重(pos_medi)和日志数据权重(pos_logi)进行分类赋值,将对关键词i的词性权重进行区分,将词性的权值进行定义,不同词性的关键字权值定义如公式:
其中:
adj.是形容词 β是形容词权值;
adv.是副词 γ是形容词权值;
v.是动词 δ是形容词权值;
n是名词 α是形容词权值;
num是数字 ε是形容词权值;
特征词权重的计算公式为:
CN202310687830.5A 2023-06-09 2023-06-09 基于公钥可搜索加密的药品可信溯源方法 Pending CN116777476A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310687830.5A CN116777476A (zh) 2023-06-09 2023-06-09 基于公钥可搜索加密的药品可信溯源方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310687830.5A CN116777476A (zh) 2023-06-09 2023-06-09 基于公钥可搜索加密的药品可信溯源方法

Publications (1)

Publication Number Publication Date
CN116777476A true CN116777476A (zh) 2023-09-19

Family

ID=87988903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310687830.5A Pending CN116777476A (zh) 2023-06-09 2023-06-09 基于公钥可搜索加密的药品可信溯源方法

Country Status (1)

Country Link
CN (1) CN116777476A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117150564A (zh) * 2023-10-27 2023-12-01 南京邮电大学 一种基于区块链的医药物流数据溯源方法
CN117649247A (zh) * 2023-11-24 2024-03-05 好心情健康产业集团有限公司 药物溯源方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117150564A (zh) * 2023-10-27 2023-12-01 南京邮电大学 一种基于区块链的医药物流数据溯源方法
CN117150564B (zh) * 2023-10-27 2023-12-29 南京邮电大学 一种基于区块链的医药物流数据溯源方法
CN117649247A (zh) * 2023-11-24 2024-03-05 好心情健康产业集团有限公司 药物溯源方法及装置

Similar Documents

Publication Publication Date Title
Liu et al. A blockchain-based framework of cross-border e-commerce supply chain
CN114450708B (zh) 基于现有链码的链码推荐
CN109643285A (zh) 加密的用户数据传输及储存
CN116777476A (zh) 基于公钥可搜索加密的药品可信溯源方法
Yang et al. Blockchain-based verifiable multi-keyword ranked search on encrypted cloud with fair payment
US20240354744A1 (en) Methods And Systems For Transferring Unspent Transaction Output (Utxo) Tokens In A Blockchain Network
US11314885B2 (en) Cryptographic data entry blockchain data structure
CN113469716A (zh) 一种基于区块链与标识解析的产品追溯方法及系统
Shrestha et al. User data sharing frameworks: a blockchain-based incentive solution
Humdullah et al. Secured data storage framework for land registration using blockchain technology
Kaushik et al. Role of blockchain technology in digital forensics
Singhal et al. Anti-counterfeit product system using blockchain technology
Xie et al. Dual‐Chain Blockchain in Agricultural E‐Commerce Information Traceability Considering the Viniar Algorithm
Tang et al. Trac2Chain: trackability and traceability of graph data in blockchain with linkage privacy
Babu et al. Agro-food supply chain traceability using blockchain and IPFS
Zhu [Retracted] Research on Real‐Time Tracking Algorithm of E‐Commerce Logistics Information Based on Blockchain Technology
Li et al. Blockchain-based fair and decentralized data trading model
CN107403107B (zh) 一种基于多点协作机制的数据安全管理方法及系统
Arya et al. Blockchain: Basics, applications, challenges and opportunities
Kalarani et al. Blockchain-Based E-Pharmacy to Combat Counterfeit Drug Transactions
Namamula et al. Enhancing the confidentiality and integrity of uncertain dynamic data workflows of b2c (business-2-consumers) using blockchain technology
CN112016118B (zh) 用于匿名数据库评级更新的方法和系统
Bhashini et al. An End-to-End secured Blockchain framework for Internet of Things based smart Healthcare
Mishra et al. Blockchain Enabled Secure Pharmaceutical Supply Chain Framework with Traceability: An Efficient Searchable PharmaChain Approach
Tang et al. A Blockchain-Based Framework for Secure Storage and Sharing of Resumes.

Legal Events

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