可验证算法在招投标领域的专家“盲抽”中的标段识别码加密应用研究

摘要

在招投标过程中,标段(包)识别码的安全性至关重要。本文提出了一种基于可验证算法的标段识别码加密方法,以确保其在专家“盲抽”过程中的保密性和可信性。通过对不同表的标段识别码进行全量加密,并通过匹配验证其一致性,有效防范数据库层级的泄密和内鬼行为。本文详细描述了该算法的设计与实现,并探讨了其在实际应用中的效果和优势。本文纯技术层面,假设数据库保密工作未严格按照数据隔离的标准做的规范性防范措施。

关键词

招投标,标段识别码,加密算法,盲抽,数据安全,MD5

1. 引言

在招投标过程中,专家评审是决定中标单位的关键环节。很多地方试点专家“盲抽”和技术标“盲评”,极大的规避了招投标中串标的风险,原理上杜绝了串标的可能,现实中可能会因为管理或者网络安全等方面的因素形同虚设,本文就专家盲评在具体实施可能出现的风险给出解决方案。

2 专家盲抽风险

“专家盲抽”通常是在评审过程中,为了确保公平性和随机性,对评审专家进行随机抽取的过程。且要保证专家在评审前和评审时并不知道自己评审的项目是什么。本文只针对双盲中的专家盲抽进行阐述。现有系统基本上大多省份都已经做到可以随机抽取专家,且在应用层面上不让专家知道自己评审的项目是什么。风险存在与数据层面,举例说明。以安徽省招投标数据规范中的规定。项目标段标识码在注册信息,招标文件,招标公告等数据表中皆有,且级联,在专家抽取表中也存在此标段,因为数据库层面可以轻易获知专家所评审的项目是哪一个。

数据库层面的保密需要专业级别的保密措施,强如中国移动,腾讯,阿里巴巴,各类银行系统等大型企业有安全的保密措施,也未必能做到百分百保密,大多数地市的招投标系统没有专业级别的数据隔离和保密措施(内在管理风险)。加上招投标系统因异地评标,需运行在互联网中(外来风险),且经常需要在省地市交换数据,数据级别的数据泄露的可能性风险极大。因为为了一劳永逸,设计如下加密算法。

3 解决措施。

设计思路,数据级别,招标信息发布系统和 评标系统,专家抽取系统的标段识别码 ,如一致,很容易被人筛选出关联关系,所以只要通过算法对专家抽取系统的标段识别码进行加密,让不同数据表和系统中的标段识别码不一致,就可以杜彻底杜绝外在风险。而算法的保密性和周期性密钥的变更可以彻底杜绝内在风险。假设有三个系统,分别为 招标系统,专家系统,评标系统。

这三个系统分别按顺序有三个表格如下, 项目标段表, 专家抽取表,评标表

(我直接把Bidding Deadline投标截止时间放在各个表中,简化设计,现实中可能会存于其他关联表中,其他均采用此种简化设计,其他字段与算法无关省略)

 以前系统设计 三个表中的关系是 专家抽取表和评标文件表 中的section对应项目标段标的ID。 如明文,在数据级别中即可被人轻易关联,失去盲抽盲评的效果。

重新设计,项目标段表中增加一个section_id 和ID的区别在于,ID是项目标段在整个系统中和其他表做关联。section只和评标系统中的评标表和 专家抽取系统中的抽取表做隐性关联。

设计隐性关联,让其中的字段在数据级别毫无关联,但是可以通过算法建立关联。

设计不可逆非加密算法对 项目标段表 中的ID进行加密后,存储于专家抽取表和评标文件表。专家抽取表和评标文件表中的投标截取时间存储一个

4 可验证算法设计

4.1 加密算法

设计一个算法进行不可逆加密,选择最为简单常用的md5+key算法。或者其他方法均可,要求不可逆算法。

算法表述为function 加密算法(项目标段表:ID,key )key采用一个10位以上复杂密码。

设计3个KEY(key1,key2,key3)

采用不同KEY加密得到的密文存入不同系统不同的表中的sectionID中。

加密算法(项目标段表:ID,key1)--》项目标段表.section_Id(直接同系统写入)

加密算法(项目标段表:ID,key2)--》专家抽取表.section_Id(远程推送)

加密算法(项目标段表:ID,key3)--》评标表.section_Id(远程推送)

注:加密算法(项目标段表:ID,key2) 加密算法(项目标段表:ID,key3)在招标系统中,计算出来,不保存。只做推送用。

专家抽取表.section_Id和评标表.section_Id的数值由 项目标段表所在的系统 经由算法得出。没有直接关联,除非调用项目标段表

  一个python实现实例

  

import hashlib

def md5_encrypt(plaintext, password):

    if len(password) != 10 or not any(c.islower() for c in password) or not any(c.isupper() for c in password):

        raise ValueError("Password must be 10 characters long with both uppercase and lowercase letters.")

    

    # 将明文与密码结合起来

    combined_text = plaintext + password

    

    # 计算 MD5 散列值

    md5_hash = hashlib.md5(combined_text.encode()).hexdigest()

    

    return md5_hash

# 示例使用

plaintext = "HelloWorld"

password = "Abcdef1234"  # 10 位包含大小写字母的密码

ciphertext = md5_encrypt(plaintext, password)

print("明文:", plaintext)print("密码:", password)print("密文:", ciphertext)

压力测试

#压力测试 100 万次

start_time = time.time()

for _ in range(1000000):

md5_encrypt(plaintext, password)

end_time = time.time()

elapsed_time = end_time - start_time

print(f"100万次加密操作的耗时: {elapsed_time} 秒")

压力测试100万次耗时 4.30微秒 (服务器)

 0.8868439197540283(i7-14900) 对性能影响很小。

4.2 隐性关联建立。

设计专家系统根据SECTION_ID匹配 招标系统中 项目标段ID的方法。

设计方法 得到招标系统标段ID方法(专家系统::标段识别码,投标截止时间)

(现有制度改进可以和算法匹配的地方:投标截止日期 为了增加混淆性, 如果从制度上实现,评标室设置所有专家报道时间为早于每天所有标评标时间的一个时间点。就可以增加保密性。)

根据截止时间把所有当前时间下 该招标系统中 项目标段表 ID 筛选出来 。对所有ID用KEY2依次进行加密算法。得到的值和专家系统ID 相同的,返回。

 示例 KEY 1=”Abc1234567” KEY 2=”Efg1234567” KEY 3=”Hij1234567”

 项目标段表

 ID

SectionID

93839665-0daf-404a-b2cb-7ff548e84c77

8f9c133404ec47b9646ed32054cc24e9

46c08c45-4a5d-4e04-9cf0-cfadf75ec0d1

818eb8af05bc0ad63914e0d858768c06

60d7170a-8a91-4f2c-b7e5-6b545919c01f

4ef01b020fc605d43dc5f64cfc4e386b

推送 专家抽取表内容为,

 ID

SectionID

。。自己定义唯一标识码

06f8904d1c8acd4919ea76635045746a

。。

57b13ac2daf0f428bc87d5ebd74ead52

。。

ef90df3d44745fcf96cdb27e45514f2f

评标表

 ID

SectionID

。。自己定义唯一标识码

1274b99327a2745516cd1b713a488a2d

。。

642233c4cd4a0baf34bef90ebb658037

。。

c26805631ff49c715e64708db2e03afd

  得到招标系统标段ID方法(“06f8904d1c8acd4919ea76635045746a”,“2024-01-01 09:00:00”)此方法返回”93839665-0daf-404a-b2cb-7ff548e84c77”

  具体算法过程我用文字表述:

1 根据截止日期在项目标段表筛选出所有项目标段表的ID数组 (得到ids= ["93839665-0daf-404a-b2cb-7ff548e84c77","46c08c45-4a5d-4e04-9cf0-cfadf75ec0d1","60d7170a-8a91-4f2c-b7e5-6b545919c01f"])

2 遍历数组对 每个ID以KEY2方式进行加密。

加密算法(“93839665-0daf-404a-b2cb-7ff548e84c77”,key2) =”06f8904d1c8acd4919ea76635045746a”

加密算法(46c08c45-4a5d-4e04-9cf0-cfadf75ec0d1”,key2=”57b13ac2daf0f428bc87d5ebd74ead52”

加密算法(“60d7170a-8a91-4f2c-b7e5-6b545919c01f”,key2)=”ef90df3d44745fcf96cdb27e45514f2f”

06f8904d1c8acd4919ea76635045746a 匹配的是93839665-0daf-404a-b2cb-7ff548e84c77 ,所以返回的是 93839665-0daf-404a-b2cb-7ff548e84c77 

5. 结论

可验证算法在招投标领域的专家“盲抽”应用,有效提高了评审过程的公正性和透明度,避免了传统专家选择方法中的潜在问题。未来,可以进一步优化算法,结合大数据和人工智能技术,提高专家选择的智能化和精准度。另外在管理中可以通过定期更换KEY,按月更换KEY在表格中增加月份字段。改进算法,进行更好级别的安全保密措施。

参考文献

招投标管理办法.

评审专家选择及管理规范.

随机抽取算法及其应用研究.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

烟草企业如何在数字化转型中实现从“传统”到“智能”的跨越?

在数字化浪潮的席卷下,各行各业都在经历着深刻的变革。作为国民经济的重要组成部分,烟草行业正处于高质量发展的重要阶段,加快信息系统国产化升级,对于提升行业竞争力、强化信息安全保障具有重要战略意义。 达梦数据积极助力烟草行…

FPGA_GTX:简要版

1. GTX介绍 Xilinx FPGA的GT意思是Gigabyte Transceiver。通常称呼为Serdes、高速收发器。GT在xilinx不同系列有着不同的产品,从7系列到UltraScale系列分别有GTP、GTX、GTZ、GTH、GTY和GTM。不同GT整体结构上类似,为了支持越来越高的line rate&#xff…

嵌入式Linux系统编程 — 7.2 进程的环境变量

目录 1 什么是进程的环境变量 2 环境变量的作用 3 应用程序中获取环境变量 3.1 environ全局变量 3.2 获取指定环境变量 getenv 4 添加/删除/修改环境变量 4.1 putenv()函数添加环境变量 4.2 setenv()函数 4.3 unsetenv()函数 1 什么是进程的环境变量 每一个进程都有一…

Android触摸事件分发关键点【笔记摘要】

触摸事件分发:就是一个为了解决触摸事件冲突而设置的机制 1.事件类型 ACTION_DOWN -> ACTION_UP / ACTION_CANCEL ACTION_DOWN -> ACTION_MOVE -> ACTION_MOVE -> ACTION_MOVE -> ACTION_UP / ACTION_CANCEL 这个取消事件ACTION_CANCEL它是一种特殊…

Hack The Box -- Blazorized

一、准备工作 端口扫描 详细扫描 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-30 21:39 EDT Nmap scan report for 10.10.11.22 Host is up (0.26s latency).PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 80/tcp op…

MyBatisPlus Service接口的继承

介绍 Service接口 接口基础了接口 IService&#xff0c;实现类实现就需要实现IService里的方法&#xff0c;但是MyBatisplus已经帮我们写好了实现类&#xff0c;给我们的实现类继承即可。 public interface IEmpService extends IService<Emp> { //其他业务方法.... }…

web学习笔记(八十)

目录 1.小程序实现微信一键登录 2. 小程序的授权流程 3.小程序配置vant库 4.小程序配置分包 5.小程序配置独立分包 6.小程序分包预下载 1.小程序实现微信一键登录 要先实现小程序一键登录首先我们需要给按钮设置一个绑定事件&#xff0c;然后在绑定事件内部通过wx.login…

产品经理-工作流程及职能(6)

产品经理作为互联网项目的主心骨&#xff0c;连接着团队的所有成员&#xff08;开发、设计、运营、测试、市场等&#xff09; 用合理的产品规划和清晰的产品愿景带领大家前进&#xff0c;通过满足用户需求来创造属于自己的商业利益。 在通常情况下&#xff0c;PM需要对整个产品…

最新扣子(Coze)实战案例:使用图像流做超分,模糊图片秒变清晰,完全免费教程

&#x1f9d9;‍♂️ 大家好&#xff0c;我是斜杠君&#xff0c;手把手教你搭建扣子AI应用。 &#x1f4dc; 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》&#xff0c;完全免费学习。 &#x1f440; 关注斜杠君&#xff0c;可获取完整版教程。&#x1f44d;&#x1f3f…

当需要对大量数据进行排序操作时,怎样优化内存使用和性能?

文章目录 一、选择合适的排序算法1. 快速排序2. 归并排序3. 堆排序 二、数据结构优化1. 使用索引2. 压缩数据3. 分块排序 三、外部排序1. 多路归并排序 四、利用多核和并行计算1. 多线程排序2. 使用并行流 五、性能调优技巧1. 避免不必要的内存复制2. 缓存友好性3. 基准测试和性…

区块链技术如何改变供应链管理?

引言 供应链管理在现代商业中扮演着至关重要的角色&#xff0c;确保产品和服务从原材料到最终消费者的顺利流转。然而&#xff0c;当前的供应链管理面临诸多挑战&#xff0c;如信息不透明、数据篡改和效率低下等问题&#xff0c;这些问题严重制约了供应链的整体效能和可信度&am…

简单分享下python多态

目录&#xff1a; 一、多态是啥嘞&#xff08;龙生九子各有不同&#xff0c;这就是多态&#xff09; 二、基础的实例 三、多态的优势与应用场景 四、深入理解 一、多态是啥嘞&#xff08;龙生九子各有不同&#xff0c;这就是多态&#xff09; 多态&#xff08;Polymorphism&…

笔记14:程序中的循环结构

生活中的循环现象&#xff1a; -日复一日&#xff0c;年复一年 -春夏秋冬&#xff0c;四季交替 -周日&#xff0c;周一&#xff0c;周二&#xff0c;周三&#xff0c;周四&#xff0c;周五&#xff0c;周六 -人生是一个轮回&#xff0c;多年后&#xff0c;又会回到最初的原点 …

C++|哈希应用->布隆过滤器

目录 一、概念 二、模拟实现 三、布隆过滤器扩展应用 上一篇章学习了位图的使用&#xff0c;但它只适用于整数&#xff0c;对于要查询字符串是否在不在&#xff0c;位图并不能解决。所以针对这一问题&#xff0c;布隆过滤器可以派上用场&#xff0c;至于布隆过滤器是什么&am…

全球首款商用,AI为视频自动配音配乐产品上线

近日&#xff0c;海外推出了一款名为Resona V2A的产品&#xff0c;这是全球首款商用视频转音频 (V2A) 技术产品。这项突破性技术利用AI&#xff0c;仅凭视频数据即可自动生成高质量、与上下文相关的音频&#xff0c;包括声音设计、音效、拟音和环境音&#xff0c;为电影制作人、…

Hi3861 OpenHarmony嵌入式应用入门--TCP Server

本篇使用的是lwip编写tcp服务端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点&#xff0c;并且密码为PARAM_HOTSPOT_PSK LwIP简介 LwIP是什么&#xff1f; A Lightweight TCP/IP stack 一个轻量级的TCP/IP协议栈 详细介绍请参考LwIP项目官网&#xff1a;lwIP - A Li…

奇景光电战略投资Obsidian,共筑热成像技术新未来

5月29日,业界领先的IC设计公司奇景光电宣布,将对热成像传感器解决方案制造商Obsidian进行战略性投资,并以主要投资者的身份,参与到Obsidian的可转换票据融资活动中。虽然奇景光电并未公开具体的投资金额,但这一举动无疑向市场传递了一个明确的信号:奇景光电对Obsidian的技…

10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel

1、前言 在 MATLAB 中&#xff0c;可以使用不同的数据类型&#xff08;字符、数字、矩阵、字符串和元胞&#xff09;合并为字符串&#xff0c;然后将字符串以不同格式写入 Excel 文件。 以下是一个示例代码&#xff0c;展示如何将不同数据类型合并为字符串&#xff0c;并以不…

【Mindspore进阶】-03.ShuffleNet实战

ShuffleNet图像分类 当前案例不支持在GPU设备上静态图模式运行&#xff0c;其他模式运行皆支持。 ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有…

分享实现地铁车辆侧面图

简介 通过伪类和关键帧动画实现地铁车辆侧面图 在线演示 伪元素和关键帧动画 实现代码 <!DOCTYPE html><html><head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <meta http-equiv"X-UA-Co…