可驗證算法在招投標領域的專家“盲抽”中的標段識別碼加密應用研究

摘要

在招投標過程中,標段(包)識別碼的安全性至關重要。本文提出了一種基于可驗證算法的標段識別碼加密方法,以確保其在專家“盲抽”過程中的保密性和可信性。通過對不同表的標段識別碼進行全量加密,并通過匹配驗證其一致性,有效防范數據庫層級的泄密和內鬼行為。本文詳細描述了該算法的設計與實現,并探討了其在實際應用中的效果和優勢。本文純技術層面,假設數據庫保密工作未嚴格按照數據隔離的標準做的規范性防范措施。

關鍵詞

招投標,標段識別碼,加密算法,盲抽,數據安全,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.pswp.cn/diannao/42157.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42157.shtml
英文地址,請注明出處:http://en.pswp.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…

PostgreSQL主從復制:打造高可用數據庫架構的秘籍

PostgreSQL主從復制:打造高可用數據庫架構的秘籍 在當今的數字化時代,數據的安全性和可靠性是企業最為關注的問題之一。PostgreSQL作為一種強大的開源關系型數據庫管理系統,提供了多種高可用性解決方案,其中主從復制是最為常用的…

嵌入式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…

Java后端開發(十三)-- Java8 stream的 orElse(null) 和 orElseGet(null)

orElse(null)表示如果一個都沒找到返回null。【orElse()中可以塞默認值。如果找不到就會返回orElse中你自己設置的默認值。】 orElseGet(null)表示如果一個都沒找到返回null。【orElseGet()中可以塞默認值。如果找不到就會返回orElseGet中你自己設置的默認值。】 區別就…

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需要對整個產品…

大數據前沿技術分享——數據編織:現代數據管理的革命性方法

一、什么是數據編織&#xff1f; 數據編織&#xff08;Data Fabric&#xff09;是一種現代數據管理架構&#xff0c;旨在通過集成、管理和提供數據訪問來簡化復雜的數據環境。它利用自動化和智能技術&#xff0c;如機器學習和人工智能&#xff0c;來實現數據的無縫連接和統一視…

Yarn: 現代化的JavaScript包管理器

在JavaScript開發的世界里&#xff0c;包管理器是開發者不可或缺的工具。Yarn&#xff0c;由Facebook創建&#xff0c;是一個快速、可靠且安全的依賴管理工具&#xff0c;它為JavaScript應用程序提供了一個更高效的方式來處理包的安裝、更新和版本控制。本文將介紹Yarn的基本用…

刷題Day44|188.買賣股票的最佳時機IV、309.最佳買賣股票時機含冷凍期、714.買賣股票的最佳時機含手續費

188.買賣股票的最佳時機IV 188. 買賣股票的最佳時機 IV - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;最多買賣k次&#xff0c;每次都有持有和不持有&#xff0c;所以下標最大到dp[i][2k]。 309.最佳買賣股票時機含冷凍期 309. 買賣股票的最佳時機含冷凍期 - 力…

百度智能云創新業務部總經理李想:發揮AI企業科技創新優勢 助力職業教育人才揚帆遠航

前言&#xff1a;百度智能云教育行業解決方案作為百度智能云旗下的創新力量&#xff0c;專注于培養“AI教育”領域的新質生產力人才&#xff0c;一直以來備受職業教育領域的關注。在第六屆人工智能“職教百強”院校長論壇開幕之際&#xff0c;中教全媒體對話論壇嘉賓百度智能云…

最新扣子(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…

多模態圖像引導手術導航進展

**摘要&#xff1a;**對多模態圖像分割建模、手術方案決策、手術空間位姿標定與跟蹤、多模態圖像配準、圖像融合與顯示等多模態圖像引導手術導航的關鍵技術進行總結和分析&#xff0c;提出其進一步發展面臨的挑戰并展望其未來發展趨勢。 **外科手術的發展歷程&#xff1a;**從最…

簡單分享下python多態

目錄&#xff1a; 一、多態是啥嘞&#xff08;龍生九子各有不同&#xff0c;這就是多態&#xff09; 二、基礎的實例 三、多態的優勢與應用場景 四、深入理解 一、多態是啥嘞&#xff08;龍生九子各有不同&#xff0c;這就是多態&#xff09; 多態&#xff08;Polymorphism&…

ffmpeg 獲取視頻時長的命令及其輸出

要獲取視頻的時長&#xff0c;可以使用FFmpeg的-i參數&#xff0c;后跟視頻文件的路徑。下面是獲取視頻時長的命令示例&#xff1a; ffmpeg -i input.mp4輸出示例&#xff1a; Input #0, mov,mp4,m4a,3gp,3g2,mj2, from input.mp4:Metadata:major_brand : mp42minor_vers…