網(wǎng)絡(luò) 的拓?fù)錉顟B(tài)信息,包括網(wǎng)絡(luò)中的中繼節(jié)點(diǎn)信息、量子鏈路的狀態(tài)信息、表示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的 鄰接矩陣以及可用的鄰接路徑兩端所預(yù)測的剩余量子密鑰量,并將其發(fā)送給網(wǎng)絡(luò)的所有路 由客戶端13。路由服務(wù)器8每隔一個拓?fù)涓轮芷?,向各個路由客戶端13下發(fā)一次最新的 網(wǎng)絡(luò)拓?fù)錉顟B(tài)信息。各個路由客戶端13根據(jù)從路由服務(wù)器8獲得的網(wǎng)絡(luò)拓?fù)錉顟B(tài)信息,計(jì) 算本中繼節(jié)點(diǎn)到其他集控站節(jié)點(diǎn)的最短路徑(跳數(shù)最少的路徑),為經(jīng)過本中繼節(jié)點(diǎn)的網(wǎng) 絡(luò)終端通信數(shù)據(jù)提供路由選擇。
[0111] 本實(shí)施例中為了與設(shè)置的路由服務(wù)器8相對應(yīng),將中繼節(jié)點(diǎn)中即集控站中負(fù)責(zé)路 由信息處理的模塊稱之為路由客戶端13,所有路由模塊均為軟模塊,置于高性能計(jì)算機(jī)中, 其相關(guān)的路由計(jì)算具有足夠好的計(jì)算速度。同時路由客戶端13和路由服務(wù)器8的網(wǎng)絡(luò)帶 寬環(huán)境足夠好,其路由拓?fù)湫畔⒌膫鬟f有足夠小的網(wǎng)絡(luò)延遲。
[0112] 附圖5為量子密碼網(wǎng)絡(luò)路由架構(gòu)圖。整個量子密碼網(wǎng)絡(luò)路由架構(gòu)分為經(jīng)典通信層 11和量子通信層12。量子通信層12由集控站中的量子通信設(shè)備10及量子通信設(shè)備之間的 量子鏈路構(gòu)成,用于密鑰分發(fā),可在兩個量子通信設(shè)備10之間共享用于加解密通信的量子 密鑰。經(jīng)典通信層11由集控站中的含有路由客戶端13的經(jīng)典通信設(shè)備9及路由服務(wù)器8 構(gòu)成,用于實(shí)現(xiàn)數(shù)據(jù)的加解密和加密數(shù)據(jù)的傳輸。集控站中的含有路由客戶端13的經(jīng)典通 信設(shè)備9之間存在鄰接路徑,與量子鏈路相對應(yīng)。在每個拓?fù)涓轮芷趦?nèi),集控站中的含有 路由客戶端13的經(jīng)典通信設(shè)備9的路由客戶端13根據(jù)所收集的本中繼節(jié)點(diǎn)的狀態(tài)信息, 計(jì)算并預(yù)測下一個拓?fù)涓轮芷趦?nèi)鄰接路徑兩端的剩余量子密鑰量,如果剩余量子密鑰量 小于預(yù)定的門限值,則認(rèn)為此鄰接路徑不可用,反之可用,將這一結(jié)果和所述可用的鄰接路 徑兩端所預(yù)測的剩余量子密鑰量上報(bào)于路由服務(wù)器8,每個拓?fù)涓轮芷谏蠄?bào)一次。集控 站中的含有路由客戶端13的經(jīng)典通信設(shè)備9的路由客戶端13通過集控站中的量子通信設(shè) 備10獲知量子鏈路是否處于正常工作狀態(tài),并將結(jié)果上報(bào)于路由服務(wù)器8,每個拓?fù)涓?周期上報(bào)一次。如果量子鏈路的工作狀態(tài)發(fā)生變化,則隨時將工作狀態(tài)上報(bào)給路由服務(wù)器 8〇
[0113] 四、路由服務(wù)器功能
[0114] 路由服務(wù)器8的主要功能模塊如附圖6所示,包括第一網(wǎng)絡(luò)接口模塊14、第一拓?fù)?信息收發(fā)模塊15、中繼節(jié)點(diǎn)存活檢測模塊16、拓?fù)湫畔⑦壿嬏幚砟K17和第一中繼節(jié)點(diǎn)信 息數(shù)據(jù)庫模塊18。
[0115] >第一網(wǎng)絡(luò)接口模塊14,按照網(wǎng)絡(luò)通信協(xié)議收發(fā)網(wǎng)絡(luò)數(shù)據(jù),并校驗(yàn)數(shù)據(jù)收發(fā)的準(zhǔn) 確性,并負(fù)責(zé)網(wǎng)絡(luò)通信的并發(fā)處理。
[0116] >第一拓?fù)湫畔⑹瞻l(fā)模塊15,負(fù)責(zé)接收網(wǎng)絡(luò)數(shù)據(jù)中各個路由客戶端13的拓?fù)錉?態(tài)信息,將整個網(wǎng)絡(luò)的拓?fù)錉顟B(tài)信息發(fā)送到路由客戶端13。
[0117] >中繼節(jié)點(diǎn)存活檢測模塊16,向中繼節(jié)點(diǎn)發(fā)送存活檢測信息,接收中繼節(jié)點(diǎn)的反 饋信息,負(fù)責(zé)確認(rèn)中繼節(jié)點(diǎn)是否存活。
[0118] >拓?fù)湫畔⑦壿嬏幚砟K17,通過數(shù)據(jù)庫存儲、查詢各個中繼節(jié)點(diǎn)的基本配置信 息和量子鏈路的狀態(tài)信息,根據(jù)路由客戶端13上報(bào)的拓?fù)錉顟B(tài)信息和中繼節(jié)點(diǎn)存活檢測 模塊16的信息,生成表示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的鄰接矩陣;將第一拓?fù)湫畔⑹瞻l(fā)模塊15獲得的網(wǎng) 絡(luò)各中繼節(jié)點(diǎn)信息和量子鏈路的狀態(tài)信息存入中繼節(jié)點(diǎn)信息數(shù)據(jù)庫。
[0119] >第一中繼節(jié)點(diǎn)信息數(shù)據(jù)庫模塊18,存儲各個中繼節(jié)點(diǎn)的基本配置信息和量子 鏈路的狀態(tài)信息。
[0120] 五、路由客戶端功能
[0121] 路由客戶端13的主要功能模塊如附圖7所示,包括第二網(wǎng)絡(luò)接口模塊19、第二拓 撲信息收發(fā)模塊20、存活檢測反饋模塊21、路由計(jì)算模塊22、拓?fù)湫畔⑻幚砟K23、拓?fù)湫?息收集模塊24、路由選擇模塊25和第二中繼節(jié)點(diǎn)信息數(shù)據(jù)庫模塊26。
[0122] >第二網(wǎng)絡(luò)接口模塊19,按照網(wǎng)絡(luò)通信協(xié)議收發(fā)網(wǎng)絡(luò)數(shù)據(jù),并校驗(yàn)數(shù)據(jù)收發(fā)的準(zhǔn) 確性。
[0123] >第二拓?fù)湫畔⑹瞻l(fā)模塊20,負(fù)責(zé)接收路由服務(wù)器8發(fā)送的網(wǎng)絡(luò)拓?fù)錉顟B(tài)信息, 將本中繼節(jié)點(diǎn)的拓?fù)錉顟B(tài)信息上報(bào)到路由服務(wù)器8。
[0124] >存活檢測反饋模塊21,接收路由服務(wù)器8發(fā)送的存活檢測信息,并發(fā)送反饋信 息,告知路由服務(wù)器8本中繼節(jié)點(diǎn)仍存活。
[0125] >路由計(jì)算模塊22,按照路由服務(wù)器8發(fā)送的表示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的鄰接矩陣、可 用的鄰接路徑兩端所預(yù)測的剩余量子密鑰量和數(shù)據(jù)庫中的中繼節(jié)點(diǎn)信息計(jì)算本中繼節(jié)點(diǎn) 到其他中繼節(jié)點(diǎn)的最短路徑,并將最短路徑存入數(shù)據(jù)庫。
[0126] >拓?fù)湫畔⑻幚砟K23,處理拓?fù)湫畔⑹占K24收集的信息,確定上報(bào)路由服 務(wù)器8的拓?fù)錉顟B(tài)信息,包括本中繼節(jié)點(diǎn)信息、本中繼節(jié)點(diǎn)的鄰接路徑在下一個拓?fù)涓?周期內(nèi)是否可用、所述可用的鄰接路徑兩端所預(yù)測的剩余量子密鑰量和本中繼節(jié)點(diǎn)的鄰接 量子鏈路是否處于正常工作狀態(tài);將第二拓?fù)湫畔⑹瞻l(fā)模塊20獲得的網(wǎng)絡(luò)各中繼節(jié)點(diǎn)信 息和量子鏈路的狀態(tài)信息存入中繼節(jié)點(diǎn)信息數(shù)據(jù)庫。
[0127] >拓?fù)湫畔⑹占K24,收集本中繼節(jié)點(diǎn)的狀態(tài)信息,包括本中繼節(jié)點(diǎn)與各個鄰 接節(jié)點(diǎn)之間的量子鏈路的工作狀態(tài)、本中繼節(jié)點(diǎn)與各個鄰近節(jié)點(diǎn)之間的剩余的量子密鑰 量、本中繼節(jié)點(diǎn)與各個鄰近節(jié)點(diǎn)之間量子密鑰的生成速度和消耗速度。
[0128] >路由選擇模塊25,讀取中繼節(jié)點(diǎn)信息數(shù)據(jù)庫中的路徑信息,為通信數(shù)據(jù)提供下 一跳路由。
[0129] >第二中繼節(jié)點(diǎn)信息數(shù)據(jù)庫模塊26,存儲各個中繼節(jié)點(diǎn)的基本配置信息、量子鏈 路的狀態(tài)信息和路由計(jì)算模塊22計(jì)算得到的路徑信息。
[0130] 六、最短路徑算法
[0131] 中繼節(jié)點(diǎn)從服務(wù)器獲得整個網(wǎng)絡(luò)的拓?fù)錉顟B(tài)信息,按照下列方法計(jì)算本中繼節(jié)點(diǎn) 到其他中繼節(jié)點(diǎn)的最短路徑:
[0132] 1)假設(shè)整個網(wǎng)絡(luò)的拓?fù)湫畔⒂脠D(G,E)表示,其中G表示頂點(diǎn)的集合,E表示路徑 的集合,本中繼節(jié)點(diǎn)對應(yīng)G中的一個頂點(diǎn),用s表示,構(gòu)造一個以s為根節(jié)點(diǎn)的樹,將根節(jié)點(diǎn) S作為樹的第一層節(jié)點(diǎn);
[0133] 2) t為G中任意一個其他頂點(diǎn),t辛s,如果E中存在有s到t的路徑(s,t),則將 t作為根節(jié)點(diǎn)S的子節(jié)點(diǎn),也是樹的一個第二層節(jié)點(diǎn),并將與路徑(s,t)相應(yīng)的邊也添加到 樹中,搜索添加 G中所有滿足條件的第二層節(jié)點(diǎn),并添加相應(yīng)的邊;
[0134] 3)已構(gòu)造的樹的層數(shù)用L表示,將G中不屬于樹的剩余頂點(diǎn)的集合表示為孓對 于任意頂點(diǎn)ue G,考慮u到樹的第L層節(jié)點(diǎn)的路徑的數(shù)量η :
[0135] 如果η = 0,則考慮下一個G中的頂點(diǎn);
[0136] 如果η>0,如果u與某個第L層節(jié)點(diǎn)r存在路徑,則將此路徑相應(yīng)的邊添加到樹中, 同時將u添加到樹中,作為樹的第L+1層節(jié)點(diǎn),如果此路徑對應(yīng)的第L層節(jié)點(diǎn)r在第L層出 現(xiàn)m次,則將此路徑相應(yīng)的邊添加到樹中m次,同時u也相應(yīng)添加 m次,使節(jié)點(diǎn)u與每一個 第L層節(jié)點(diǎn)r 一一對應(yīng);如果u到樹的第L層節(jié)點(diǎn)的所有路徑對應(yīng)的邊均已添加完畢,則將 u從石中刪除;
[0137] 4)如果G中還有頂點(diǎn)沒有添加到樹中,將L = L+1,重復(fù)步驟3),直到所有G中的 頂點(diǎn)均添加到樹中,或重復(fù)步驟3)后己中頂點(diǎn)的數(shù)量沒有變化為止;
[0138] 5)對于任意一個中繼節(jié)點(diǎn)V,在樹中s到V的路徑即對應(yīng)圖(G,E)中s到V的最 短路徑,即在網(wǎng)絡(luò)中中繼節(jié)點(diǎn)S到V的最短路徑;如果存在多于一條最短路徑,則將各條最 短路徑中每一跳路徑的剩余量子密鑰量各自按升序排列,首先比較剩余量子密鑰量的最小 值,選取最小值最大的那條路徑,若最小值均相同,則比較次最小值,選取次最小值最大的 那條路徑,依次類推,若各條最短路徑的剩余量子密鑰量完全相同,則隨機(jī)選取一條路徑。
[0139] 七、集控站節(jié)點(diǎn)和量子鏈路的接入。
[0140] 對于新接入網(wǎng)絡(luò)的集控站節(jié)點(diǎn),新中繼節(jié)點(diǎn)需要向路由服務(wù)器8上報(bào)其基本配置 信息及所有的鄰接量子鏈路的工作狀態(tài),同時新中繼節(jié)點(diǎn)的鄰接節(jié)點(diǎn)也需要上報(bào)與該新中 繼節(jié)點(diǎn)之間的量子鏈路的工作狀態(tài);對于在兩個中繼節(jié)點(diǎn)之間新接入的直連的量子鏈路, 量子鏈路兩端的中繼節(jié)點(diǎn)需要上報(bào)本鏈路的工作狀態(tài)。此外,新量子鏈路兩端的中繼節(jié)點(diǎn) 在收到路由服務(wù)器8的拓?fù)涓滦畔⒑?,要上?bào)鄰接路徑在下一個拓?fù)涓轮芷趦?nèi)是否可 用,以及所述可用的鄰接路徑兩端所預(yù)測的剩余量子密鑰量。路由服務(wù)器8收到相關(guān)節(jié)點(diǎn) 的上報(bào)信息后,將新中繼節(jié)點(diǎn)和/或新路徑信息添加到網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)上。
[0141] 圖8給出了一個小型的量子密碼網(wǎng)絡(luò)中繼節(jié)點(diǎn)在某一個拓?fù)涓轮芷趦?nèi)的預(yù)測 連接圖,其中虛線表示路徑上的量子密鑰不足,不能實(shí)現(xiàn)此路徑上的量子密鑰加密通信, 即路徑不可用;實(shí)線表示可以進(jìn)行此路徑上的量子密鑰加密通信,即路徑可用。
[0142] 圖9給出了表示圖8網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的鄰接矩陣。矩陣維數(shù)為8X8,表示圖8中的第 一中繼節(jié)點(diǎn)27到第八中繼節(jié)點(diǎn)34這8個中繼節(jié)點(diǎn)之間鄰接路徑是否可用。矩陣元素(i, j)(其中I < i < 8, I < j < 8)表示第i個中繼節(jié)點(diǎn)到第j個中繼節(jié)點(diǎn)的鄰接路徑是否可 用,其值為1表示可用,為〇表示不可用或不存在鄰接路徑;矩陣對角元素均為〇,表示中繼 節(jié)點(diǎn)與自身不構(gòu)成鄰接路徑。例如,圖8中的第一中繼節(jié)點(diǎn)27到第四中繼節(jié)點(diǎn)30的鄰接 路徑可用,則相應(yīng)的圖9中的矩陣元素(1,4)的值為1 ;圖8中的第二中繼節(jié)點(diǎn)28到第六 中繼節(jié)點(diǎn)32的鄰接路徑不可用,則相應(yīng)的圖9中的矩陣元素(2,6)的值為0 ;圖8中的第 五中繼節(jié)點(diǎn)31與第七中繼節(jié)點(diǎn)33之間不存在鄰接路徑,則相應(yīng)的圖9中的矩陣元素(5,