趙云輝
(北京江南天安科技有限公司,北京 100088)
應(yīng)急廣播通常是指一個(gè)地區(qū)發(fā)生重大災(zāi)害、突發(fā)事件等公共危機(jī)時(shí),以廣播的形式向全社會(huì)提供迅速快捷的信息發(fā)布,在第一時(shí)間把需要公開的災(zāi)害消息或?yàn)?zāi)害可能造成的危害傳播到普通民眾,使民眾在第一時(shí)間知道發(fā)生了什么事情,應(yīng)該如何撤離、避險(xiǎn)或采用合理的方式使生命、財(cái)產(chǎn)、健康等損失降到最低。
應(yīng)急廣播是政府及相關(guān)部門通過廣播電視方式向公眾提供應(yīng)急信息的一種應(yīng)急手段,是國(guó)家應(yīng)急體系和國(guó)家公共服務(wù)體系的重要組成部分。在國(guó)際上,美國(guó)、日本、英國(guó)、德國(guó)、以色列等國(guó)家,都把廣播電視作為政府應(yīng)急信息發(fā)布的重要通道。我們國(guó)家高度重視應(yīng)對(duì)突發(fā)事件中應(yīng)急廣播的作用,近年來頒布的相關(guān)規(guī)劃和文件如《中華人民共和國(guó)國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展第十三個(gè)五年規(guī)劃綱要》《國(guó)家基本公共文化服務(wù)指導(dǎo)標(biāo)準(zhǔn)(2015-2020年)》和《全國(guó)應(yīng)急廣播體系建設(shè)總體規(guī)劃》,對(duì)全國(guó)應(yīng)急廣播體系建設(shè)均提出了明確要求。
我國(guó)的應(yīng)急廣播系統(tǒng)除了發(fā)布預(yù)警信息之外,還承擔(dān)著政策宣傳和輿論引導(dǎo)的職責(zé),尤其是在邊疆少數(shù)民族地區(qū),承擔(dān)了維護(hù)社會(huì)穩(wěn)定的重要職能,因此應(yīng)急廣播系統(tǒng)的傳輸安全、信息完整性尤為重要。
目前,我國(guó)應(yīng)急廣播的建設(shè)已全面開展,在最后一公里主要通過我國(guó)新農(nóng)村“村村響”系統(tǒng)實(shí)現(xiàn)覆蓋。該系統(tǒng)采用的技術(shù)主要是調(diào)頻廣播。
無線數(shù)字系統(tǒng)(Radio Digital System,RDS)是調(diào)頻廣播的一種實(shí)現(xiàn)方式,一般是指利用調(diào)頻廣播的副載波攜帶數(shù)據(jù)資料的一種工作方式。訪技術(shù)最先由歐洲廣播聯(lián)盟(European Broadcasting Union,EBU)于1984年提出,相關(guān)技術(shù)標(biāo)準(zhǔn)為EBU 3244。該技術(shù)充分利用現(xiàn)有調(diào)頻廣播的帶寬,采用57 kHz的副載波數(shù)據(jù)信號(hào)疊加到調(diào)頻節(jié)目頻段上,終端設(shè)備在接收音頻信號(hào)的同時(shí)可接收數(shù)字信號(hào),數(shù)字信號(hào)內(nèi)容可以是節(jié)目名稱、類型、擴(kuò)展信息以及標(biāo)準(zhǔn)時(shí)間等。
按照我國(guó)調(diào)頻廣播的標(biāo)準(zhǔn)(GB4311.3-84)規(guī)定,調(diào)頻廣播頻率范圍為87.5~108 MHz。為防止調(diào)頻臺(tái)間的相互干擾,規(guī)定頻道間隔為200 kHz,最大頻偏為75 kHz,最高調(diào)制頻率為15 kHz,即調(diào)頻立體聲廣播的基帶信號(hào)理論帶寬為53 kHz,調(diào)頻單聲道廣播的基帶信號(hào)頻寬為15 kHz。因此,53~100 kHz或15~100 kHz的頻帶幾乎是閑置的,在每個(gè)頻道中可擴(kuò)展出多個(gè)副信道,可以傳送數(shù)據(jù)和其他信息[1]。
RDS的數(shù)據(jù)信號(hào)傳送是以幀為基本單元,接收端一次有效的數(shù)據(jù)采集至少是一個(gè)完整的數(shù)據(jù)幀,格式如圖1所示。一幀數(shù)據(jù)由4個(gè)數(shù)據(jù)塊組成,每個(gè)數(shù)據(jù)塊包含26 bit數(shù)據(jù)位,其中高16位是信息數(shù)據(jù),低10位是校驗(yàn)碼和數(shù)據(jù)塊識(shí)別號(hào)。每幀前兩個(gè)數(shù)據(jù)塊是固定數(shù)據(jù),后兩塊可以轉(zhuǎn)輸數(shù)據(jù),因此每幀實(shí)際傳輸?shù)挠行?shù)據(jù)是32 bit,即4 Byte數(shù)據(jù)。RDS的傳輸比特率是1 187.5 Hz,一幀數(shù)據(jù)的傳輸時(shí)間約為87.6 ms,也就是說每秒鐘可傳送11個(gè)數(shù)據(jù)幀的信息,除去冗余信息,有效信息載荷為44 Byte。
圖1 RDS數(shù)據(jù)幀格式
我國(guó)在1991年開始應(yīng)用RDS技術(shù),在1995年推出RDS調(diào)頻廣播國(guó)家標(biāo)準(zhǔn)(《廣播數(shù)據(jù)系統(tǒng)技術(shù)規(guī)范》GB/T15770-1995)),由此拉開了我國(guó)RDS技術(shù)的應(yīng)用帷幕。目前,RDS調(diào)頻廣播廣泛用于智能交通、農(nóng)業(yè)防災(zāi)減災(zāi)、政府公眾信息發(fā)布、固定和移動(dòng)載體廣告、新農(nóng)村“村村響”廣播、教育以及氣象信息發(fā)布等諸多領(lǐng)域。
2018年,由廣播電視科學(xué)研究院牽頭,推出了應(yīng)急廣播信息安全保護(hù)技術(shù)標(biāo)準(zhǔn)(《應(yīng)急廣播安全保護(hù)技術(shù)規(guī)范 數(shù)字簽名》GD/J 081—2018),在此標(biāo)識(shí)中明確提出了采用基于數(shù)字簽名(SM2算法)的方式對(duì)RDS應(yīng)急廣播傳輸?shù)男畔⑦M(jìn)行保護(hù)。
SM2是國(guó)家密碼管理局于2010年12月17日發(fā)布的橢圓曲線公鑰密碼算法。SM2算法與RSA算法一樣,同屬于非對(duì)稱算法體系,屬于橢圓曲線加密算法(Elliptic Curve Cryptography,ECC)的一種。不同的是,RSA算法是基于大整數(shù)分解數(shù)學(xué)難題,而SM2算法是基于橢圓曲線上點(diǎn)群離散對(duì)數(shù)難題。
SM2算法可以提供加解密、數(shù)字簽名、密鑰協(xié)商等功能,可用于身份認(rèn)證、數(shù)據(jù)完整性保護(hù)等方面。應(yīng)急廣播領(lǐng)域采用的數(shù)字簽名算法是采用SM3算法對(duì)應(yīng)急廣播指令進(jìn)行摘要計(jì)算,然后調(diào)用SM2算法進(jìn)行數(shù)字簽名。
應(yīng)急廣播信息安全保護(hù)技術(shù)標(biāo)準(zhǔn)對(duì)調(diào)頻廣播傳輸信息保護(hù)進(jìn)行了具體規(guī)定,采用基于SM2和SM3算法的數(shù)字簽名方式,輸出了74 Byte的驗(yàn)證數(shù)據(jù),包括4 Byte UTC時(shí)間、6 Byte簽名數(shù)字證書編號(hào)和64 Byte數(shù)字簽名。
應(yīng)急廣播指令的發(fā)送端將傳輸覆蓋指令、簽名時(shí)間打包,使用發(fā)送端私鑰對(duì)其計(jì)算數(shù)字簽名;發(fā)送端將計(jì)算的數(shù)字簽名附加在應(yīng)急廣播指令、簽名時(shí)間、發(fā)送端數(shù)字證書編號(hào)數(shù)據(jù)后面進(jìn)行打包傳輸;應(yīng)急廣播指令接收端接收到傳輸覆蓋指令后,調(diào)取指令發(fā)送端數(shù)字證書進(jìn)行簽名驗(yàn)證,如果驗(yàn)證成功則接收端對(duì)傳輸覆蓋指令進(jìn)行處理,如果失敗則丟棄此指令。應(yīng)急廣播傳輸覆蓋指令數(shù)字簽名機(jī)制如圖2所示[2]。
圖2 應(yīng)急廣播傳輸覆蓋指令數(shù)字簽名機(jī)制
應(yīng)急廣播針對(duì)SM2算法的具體數(shù)字簽名的過程如下:
(1)設(shè)待簽名的應(yīng)急廣播傳輸覆蓋指令為M,M的數(shù)字簽名為(r,s),發(fā)送端A的私鑰為dA,公鑰為PA,IDA表示SM3算法的用戶標(biāo)識(shí),entlenA表示IDA的長(zhǎng)度。SM2算法使用的橢圓曲線方程的參數(shù)包括a、b、G的坐標(biāo)xG和yG、PA的坐標(biāo)xA和yA。
先使用SM3算法計(jì)算參數(shù)的雜湊值ZA
步驟3:使用隨機(jī)數(shù)發(fā)生器生成隨機(jī)數(shù)k∈ [1,n-1];
步驟4:基于k計(jì)算橢圓曲線上的點(diǎn),(x1,y1)=[k]G;
步驟5:計(jì)算r=(e+x1)modn,若r=0或r+k=n則返回步驟3;
步驟 6:計(jì)算s=((1+dA)-1×(k-r×dA))modn,若s=0則返回步驟3;
步驟7:將r和s轉(zhuǎn)換為字符串,M的數(shù)字簽名為(r,s),其中r和s長(zhǎng)度各為32 Byte;
應(yīng)急廣播針對(duì)SM2算法的驗(yàn)證簽名過程如下:
設(shè)接收到的應(yīng)急廣播傳輸覆蓋指令為M′,其簽名為 (r′,s′),運(yùn)算過程如下:
步驟1:檢驗(yàn)r′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過;
步驟2:檢驗(yàn)s′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過;
步驟 5:將r′、s′轉(zhuǎn)換為整數(shù),計(jì)算t=(r′+s′)modn,若t=0則驗(yàn)證不通過;
步驟 6:基于t計(jì)算橢圓曲線上的點(diǎn) (x1′,y1′)=[s′]×G+[t]×PA;
步驟 7:基于x1′計(jì)算R,R=(e′+x1′)modn;若R=r′則驗(yàn)證通過,否則為不通過[3]。
應(yīng)急廣播信息保護(hù)標(biāo)準(zhǔn)中采用了SM2和SM3算法實(shí)現(xiàn)的標(biāo)準(zhǔn)數(shù)字簽名流程,能夠有效實(shí)現(xiàn)對(duì)應(yīng)急廣播信息發(fā)送端的驗(yàn)證和對(duì)應(yīng)急廣播指令信息完整性的驗(yàn)證。調(diào)頻廣播方式也采用了此標(biāo)準(zhǔn)的簽名方式進(jìn)行傳輸指令的保護(hù)。具體措施:在RDS終端音柱上增加專用硬件密碼模塊,密碼模塊中保存了相應(yīng)的信息發(fā)送端的公鑰,實(shí)現(xiàn)了數(shù)字簽名和驗(yàn)證流程;通過音柱的主控單元與密碼模塊進(jìn)行通信,實(shí)現(xiàn)對(duì)終端接收的信息進(jìn)行安全驗(yàn)證。
基于RDS的技術(shù)特性,在實(shí)際應(yīng)用中陸續(xù)發(fā)現(xiàn)了一些問題,包括誤碼率高、數(shù)字簽名的數(shù)據(jù)接收時(shí)間長(zhǎng)、應(yīng)急廣播指令處理延遲等。通過對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的抓取及采用駐留終端內(nèi)的測(cè)試程序進(jìn)行業(yè)務(wù)邏輯分析,最終發(fā)現(xiàn)產(chǎn)生這些問題的原因如下。
(1)RDS傳輸數(shù)據(jù)慢。通過前述介紹可知,RDS傳輸數(shù)據(jù)通過數(shù)據(jù)幀實(shí)現(xiàn),一幀只能傳送4個(gè)有效數(shù)據(jù)字節(jié)。RDS的理論傳輸比特率是1 187.5 Hz,一幀數(shù)據(jù)的傳輸時(shí)間約為87.6 ms,也就是說每秒鐘最多可傳送11個(gè)數(shù)據(jù)幀的信息,除去冗余信息,有效數(shù)據(jù)為44 Byte。同時(shí),由于RDS一般采用空中無線傳輸方式,干擾較多,傳輸?shù)臄?shù)據(jù)幀越多,出現(xiàn)誤碼的幀也越多,中間任何一幀出現(xiàn)誤碼均需要重傳。因此,在實(shí)際使用中,一般傳輸耗時(shí)是理論時(shí)間的1.5~5倍,數(shù)據(jù)越長(zhǎng),因誤碼而重傳的耗時(shí)也越多。實(shí)際測(cè)試中,完整接收完數(shù)字簽名信息所需的時(shí)間為3~5 s。
(2)數(shù)字簽名產(chǎn)生的數(shù)據(jù)長(zhǎng),導(dǎo)致接收時(shí)間長(zhǎng)。目前,采用的標(biāo)準(zhǔn)SM2數(shù)字簽名算法產(chǎn)生的數(shù)據(jù)簽名內(nèi)容為64 Byte(其中為32 Byte,為32 Byte),再加上附加簽名信息UTC時(shí)間4 Byte,簽名的證書編號(hào)6 Byte,總計(jì)為74 Byte。一般RDS應(yīng)急廣播指令是4~8 Byte,傳輸1~2個(gè)數(shù)據(jù)幀可以完成,耗時(shí)很短。目前的數(shù)字簽名信息是74 Byte,即附加的數(shù)據(jù)理論傳輸時(shí)間需要近2 s;需要傳輸19個(gè)數(shù)據(jù)幀才能傳送完成,中間任何一幀出現(xiàn)誤碼均需要重傳。實(shí)際測(cè)試中,完整接收完數(shù)字簽名信息所需時(shí)間為3~5 s。需要發(fā)送的數(shù)據(jù)過長(zhǎng),是導(dǎo)致RDS方式接收誤碼率高、延時(shí)大的主要原因。
由于應(yīng)急廣播的技術(shù)標(biāo)準(zhǔn)已頒布,解決此問題的方式不是改用其他模式或算法,而是選擇優(yōu)化SM2數(shù)字簽名算法,最大可能減少簽名輸出的數(shù)據(jù),由此達(dá)到減少RDS傳輸所需時(shí)間,優(yōu)化密碼模塊對(duì)數(shù)據(jù)簽名驗(yàn)證過程,減少處理延時(shí),最終達(dá)到RDS模式應(yīng)急廣播實(shí)現(xiàn)高效播發(fā)。
對(duì)此算法的改進(jìn)核心思想是:最大限制減少簽名輸出數(shù)據(jù),以此實(shí)現(xiàn)減少RDS傳輸時(shí)間、降低出錯(cuò)概率的目的。
具體的改進(jìn)如下。
初始過程:
步驟1:使用隨機(jī)數(shù)發(fā)生器生成隨機(jī)數(shù)k∈ [1,n-1];
步驟2:基于k計(jì)算橢圓曲線上的點(diǎn),(x1,y1)=[k]×G;
步驟3:重復(fù)上述操作,生成255組k及(x1,y1);
上述3個(gè)步驟由系統(tǒng)在初始階段進(jìn)行,完成后將此255組數(shù)據(jù)設(shè)成本裝置的預(yù)存數(shù)據(jù)(可根據(jù)裝置的安全存儲(chǔ)區(qū)容量設(shè)定要生成的組數(shù),為了保證隨機(jī)性,最少生成10組,最多255組),在密碼模塊初始發(fā)行階段就置入,同時(shí)為每組數(shù)據(jù)編制索引(0x01~0xFF),供后續(xù)計(jì)算使用。
簽名過程如下:
步驟3:從預(yù)制庫(kù)中隨機(jī)選取一個(gè)k及對(duì)應(yīng)的(x1,y1);索引號(hào)定義為K;
步驟4:計(jì)算r=(e+x1)modn,若r=0或r+k=n則返回步驟3;
步驟 5:計(jì)算s=((1+dA)-1×(k-r×dA))modn,若s=0則返回步驟3;
步驟6:將s轉(zhuǎn)換為字符串,M的數(shù)字簽名為K||s,33 Byte長(zhǎng),其中K為1 Byte長(zhǎng),s為32 Byte長(zhǎng)。
驗(yàn)證簽名過程如下:設(shè)接收到的應(yīng)急廣播傳輸覆蓋指令為M′,收到的簽名為s′′=K||s′
驗(yàn)證運(yùn)算過程如下:
步驟1:根據(jù)K從密碼模塊預(yù)制區(qū)中找到(x1,y1);
步驟2:檢驗(yàn)s′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過;
步驟 5:計(jì)算r′=(e′+x1)modn
步驟6:計(jì)算t=(r′+s′)modn,若t=0則驗(yàn)證不通過;
步驟 7:基于t計(jì)算橢圓曲線上的點(diǎn) (x1′,y1′)=[s′]×G+[t]×PA;
步驟 8:基于x1′計(jì)算R,R=(e′+x1′)modn;若R=r′則驗(yàn)證通過,否則為不通過;
上述算法中比較耗時(shí)的是初始過程(生成隨機(jī)數(shù)并計(jì)算SM2曲線上的點(diǎn),生成批量的數(shù)據(jù)后將其安裝到裝置內(nèi),后續(xù)不需要更新),而此步驟是在預(yù)制過程實(shí)現(xiàn),并不占用后續(xù)的計(jì)算時(shí)間。預(yù)制過程雖然在驗(yàn)證過程中重新計(jì)算了一次r值,但是相對(duì)于驗(yàn)證過程來說,增加的時(shí)間開銷極小,實(shí)測(cè)過程中密碼模塊驗(yàn)證的時(shí)間增加在10 ms以內(nèi)。
通過上述算法優(yōu)化,應(yīng)急廣播標(biāo)準(zhǔn)中要求的附加保護(hù)數(shù)據(jù)輸出僅為43 Byte,減少了31 Byte,對(duì)RDS傳輸通道來說,之前需要傳輸需要19個(gè)數(shù)據(jù)幀才能完成傳送74 Byte的保護(hù)數(shù)據(jù),而現(xiàn)在只需要11個(gè)數(shù)據(jù)幀就可以完成傳輸,理論時(shí)間不超過1 s,大大縮減了傳輸時(shí)間。
從基于上述算法實(shí)現(xiàn)的密碼模塊在實(shí)際項(xiàng)目中的應(yīng)用情況來看,RDS方式下應(yīng)急廣播附加保護(hù)數(shù)據(jù)的理論傳輸時(shí)間減少了一半。通過應(yīng)用本裝置進(jìn)行實(shí)際測(cè)試,整合多次測(cè)試結(jié)果來看,平均時(shí)間為1.3 s,較算法未優(yōu)化前的平均時(shí)間3 s減少了1.7 s,提升效果明顯;由于傳輸時(shí)間的縮短,減少了RDS傳輸過程中出現(xiàn)誤碼的幀,提升了RDS廣播指令的傳輸效率,可見此模式對(duì)RDS方式的應(yīng)急廣播具有有效性。
國(guó)產(chǎn)密碼算法的廣泛應(yīng)用為各行業(yè)帶來了更安全的保護(hù),但是一個(gè)算法或一個(gè)模式不是萬能的,根據(jù)各自不同的業(yè)務(wù)形態(tài)進(jìn)行適當(dāng)?shù)膬?yōu)化會(huì)帶來更好的用戶體驗(yàn)。本文設(shè)計(jì)的數(shù)字簽名算法在實(shí)際應(yīng)用中取得了很好的效果。應(yīng)急廣播作為我國(guó)面向社會(huì)大眾的宣傳機(jī)構(gòu),是與廣大群眾溝通的橋梁。針對(duì)應(yīng)急廣播的業(yè)務(wù)特點(diǎn)設(shè)計(jì)保護(hù)應(yīng)用,才能為應(yīng)急廣播提供更安全、更高效的服務(wù)。本文描述的數(shù)字簽名優(yōu)化算法同樣適用于其他對(duì)數(shù)據(jù)傳輸有限制的領(lǐng)域,在保證一定安全性的前提下,減少要傳輸?shù)尿?yàn)證數(shù)據(jù)。