mac日記
發(fā)布時間:2017-01-27 來源: 日記大全 點擊:
mac日記篇一:Zigbee讀書日記(八)
Zigbee讀書日記(八)
--freakz移植之物理層
Freakz是什么?Contiki又是什么?這和我們現(xiàn)在學(xué)習(xí)的Zigbee有什么關(guān)系?也許看到這篇文章的讀者有不少對此還一無所知。如果您在學(xué)習(xí)Zigbee,相信對TI的CC系列IC應(yīng)該有所了解吧,那您肯定聽過ZStack和OSAL這兩個詞,ZStack是TI公司按照Zigbee標(biāo)準(zhǔn)實現(xiàn)的一個Zigbee協(xié)議棧,而OSAL則為ZStack所使用的“操作系統(tǒng)”。如果這兩個概念搞得清楚,相信freakz和contiki就不難理解了。其實,freakz也是一個zigbee協(xié)議棧,相應(yīng)的contiki則為freakz所使用的操作系統(tǒng)。
[注:本文源自“飛比”Zigbee論壇,為尊重勞動者成果,如需轉(zhuǎn)載請保留此行,并通知作者]
那我們?yōu)槭裁床恢苯佑肸Stack+OSAL,而費這么大的勁用freakz+contiki呢?其實原因很簡單,不同于ZStack的“應(yīng)用層開源”,freakz是一個徹底的開源zigbee協(xié)議,而contiki也是一個徹底的開源操作系統(tǒng),而且這個操作系統(tǒng)短小精悍,非常適合“物聯(lián)網(wǎng)”時代的MINI型設(shè)備,同時,這套系統(tǒng)在全球已經(jīng)擁有了眾多的支持與使用者,已經(jīng)開發(fā)了非常多的應(yīng)用,甚至有像IPV6這么強(qiáng)大而且的應(yīng)用,可以在其官方網(wǎng)站上下載到全套的代碼!
相對于另外一個開源的WSN(Wireless Sensor Networking,無線傳感網(wǎng))操作系統(tǒng)TinyOS來講,contiki的代碼全部為C語言寫成,用GCC進(jìn)行編譯,對廣大應(yīng)用C語言多年的開發(fā)者來說,減少了學(xué)習(xí)另外一種語言與編譯平臺所帶來的時間花費。同時,我們考慮到很多開發(fā)者,尤其是初學(xué)者,對Linux+GCC的平臺也并不熟悉,所以,我們選用了IAR這個極其穩(wěn)定、易用的編譯平臺,對contiki進(jìn)行移植。您可以在其官方網(wǎng)站上下載試用版進(jìn)行學(xué)習(xí),對于商業(yè)用途的開發(fā),請您購買正版。
至于我們?yōu)槭裁醋罱K選擇了freakz而不是別的開源協(xié)議,主要是因為這是目前我們找得到的相對最完整的,也是代碼寫得比較規(guī)范的一套協(xié)議。不過,為什么我們總得用別人的?這個問題確實值得思考!
不扯遠(yuǎn)了,回到主題上來。目前這個項目,斷斷續(xù)續(xù)已經(jīng)做了將近兩個月了,采用的思路是,從操作系統(tǒng)的核心到周邊,再到基本的物理層和MAC層通訊一點點地進(jìn)行修改和編譯,理解一點就修改一點,成功后再繼續(xù)下一步。到現(xiàn)在為止,已經(jīng)實現(xiàn)了節(jié)點1應(yīng)用層發(fā)送一個字符串“feibit”,MAC層按照協(xié)議規(guī)范進(jìn)行編碼,由物理層發(fā)送出去;節(jié)點2收到信息后,完成上述的反過程,直至收到字符串“feibit”,而且整個過程是在contiki系統(tǒng)框架內(nèi)完成的。
這個時候,我在猶豫一個問題。實際上,freakz已經(jīng)用“軟件模擬器”實現(xiàn)了MAC層以上的協(xié)議內(nèi)容,并且在一個基于AVR的硬件平臺上進(jìn)行了移植。理論上講,現(xiàn)在我們已經(jīng)在FB2530EB的平臺上基本實現(xiàn)了CC2530的MAC層通訊,與上層對接后實現(xiàn)協(xié)議棧的基本功能應(yīng)該不是太難了。但反復(fù)考慮后,我覺得這不是一個好的方法。也許現(xiàn)在一股腦地把
所有的代碼都加進(jìn)來,解決一些warning與error后,我可以驕傲地跟人講,我實現(xiàn)了開源zigbee移植。但這并不是我的目的。我希望論壇有一個“開放”跟“踏實”的氛圍,也希望自己跟論壇里的每一位學(xué)習(xí)者有一個不急功近利的心態(tài)。我們學(xué)習(xí)的目的不是跟隨,而是創(chuàng)造!
在freakz移植的過程中,我有一個感受,雖然我們做的只是“移植”而不是原創(chuàng),但這種學(xué)習(xí)方式比由上而下的方式來得有效,并且深入得多。當(dāng)然,讓一個完全對zigbee的基本概念與功能完全不懂的初學(xué)者來說,這可能也不是個最好的方法。所以,我覺得這兩種方式應(yīng)該結(jié)合起來,“what”與“how”這兩個問題采用由上而下的方式,而“why”這個問題,就采用由下而上,從零搭建的方式,當(dāng)然前提要是開源!而且我希望后面的事情,不是由我來寫,大家來讀,而是希望有更多的人能參與進(jìn)來。哪怕我把整個協(xié)議棧重新寫了一遍,對于讀者來講,并不一定能對其中的重點內(nèi)容有深刻的體會。而且,如果能有更多的人參與,大家共同討論,共同進(jìn)步,這樣的學(xué)習(xí)效率是單兵作戰(zhàn)所無法比擬的!
所以,在FB2530EB開發(fā)板發(fā)行之前,移植的工作準(zhǔn)備暫時告一段落。我會把這幾天物理層與MAC層移植的相關(guān)內(nèi)容,以筆記的形式寫出來,作為一個起點。有興趣的朋友可以在此基礎(chǔ)上繼續(xù)一點點地理解,一點點地移植。同時也希望我們能有組織、有規(guī)劃地去實現(xiàn)一個共同的目標(biāo)!
在前面的筆記(五)中,我們已經(jīng)對物理層的基本概念做了詳細(xì)的介紹。本篇可作為其理論知識的實踐篇,從一個基本的字符串“feibit”的發(fā)送與接收來學(xué)習(xí)CC2530的物理層收發(fā)功能,看看這個物理層“小弟”到底是怎么干活的。
另外,要說明一點,zigbee本身是一個很復(fù)雜的協(xié)議,其中任何一層,如果要將每一個細(xì)節(jié)都講清楚,都會是很龐大的工作。本文的側(cè)重點在于基本概念的理解,對于IC與Zigbee協(xié)議的細(xì)節(jié)請參考其規(guī)格書。
[注:本文源自--“飛比”Zigbee論壇,為尊重勞動者成果,如需轉(zhuǎn)載請保留此行,并通知作者]
IC的應(yīng)用并不是一件簡單的事情,因為涉及到了很多IC的細(xì)節(jié),如果沒有詳細(xì)的說明及應(yīng)用例程,這些細(xì)節(jié)有時甚至是無從得知的。還好,相比其他家的無線IC,TI的資料與例程相對豐富,這也是我們選擇TI作為開始的主要原因之一。本文中涉及到CC2530的應(yīng)用部分,有很多是源于TI提供的BasicRF平臺的,因為這也是一個開源的平臺,方便我們進(jìn)行移植。
要實現(xiàn)數(shù)據(jù)的收和發(fā),最早想到的自然是IC的收發(fā)機(jī)制與相應(yīng)寄存器的設(shè)置。走個捷徑,我們從BasicRF的代碼入手,了解CC2530的RADIO部分的初始化與讀取代碼。
首先是初始化的過程,這是保證IC在我們所需要的狀態(tài)下正常工作的前提。從BasicRF的per_test例程中,我們可以看到,這部分工作主要在以下兩個函數(shù)中進(jìn)行,halRfInit與basicRfInit。我們總結(jié)下其中與硬件相關(guān)的初始化工作如下:
1、設(shè)置MCU的晶振頻率,BasicRF下所用的函數(shù):halMcuInit
這個工作在開始的時候容易被忽視,設(shè)置如果不對,發(fā)送的數(shù)據(jù)包可能是亂的,也可能
會有些莫名其妙的問題。
2、設(shè)置數(shù)據(jù)數(shù)據(jù)傳輸所使用的頻道,halRfSetChannel
這里我們選擇頻道11,則為2.405G
3、設(shè)備的PANID號,halRfSetPanId,我們指定為0x2007
4、設(shè)備的短地址,halRfSetShortAddr
由于我們暫時先不涉及網(wǎng)絡(luò)層組網(wǎng)及地址安排等問題,仿照BasicRF,發(fā)送與接收端分別指定如下:
#define TX_ADDR 0x2520
#define RX_ADDR 0xBEEF
5、對于發(fā)送端來說,需要增加一個發(fā)射功率的設(shè)置,halRfSetTxPower
我們按照無PA模式的最大功率4dB進(jìn)行設(shè)置,其實際值為2。
在系統(tǒng)的初始化階段,執(zhí)行以上過程,則將CC2530置于準(zhǔn)備狀態(tài)下,隨時可用于收發(fā)。首先我們來看下數(shù)據(jù)的發(fā)送:
從BasicRF的basicRfSendPacket函數(shù)中,我們可以總結(jié)出如下的發(fā)送流程:
?
?
?
?
?
?
?
?
? halRfReceiveOn(); // Wait until the transceiver is idle halRfWaitTransceiverReady(); // Turn off RX frame done interru(轉(zhuǎn)載于:smilezhuce.com 蒲 公 英 文 摘:mac日記)pt to avoid interference on the SPI interface halRfDisableRxInterrupt(); // write frame to buffer halRfWriteTxBuf(buf->dptr, buf->len); // Turn on RX frame done interrupt for ACK reception halRfEnableRxInterrupt();
?? // Send frame with CCA. return FAILED if not successful
?? while (halRfTransmit() != SUCCESS);
?? halRfReceiveOff();
注:為突出基本原理的理解,我會經(jīng)常把一段代碼中的關(guān)鍵部分提取出來進(jìn)行分析,因為我希望把復(fù)雜的事情變得簡單,而不是相反!
有興趣的讀者,可以將以上的函數(shù)逐一展開,參照CC2530 datasheet進(jìn)行詳細(xì)了解。此處我們只關(guān)注其數(shù)據(jù)的發(fā)送函數(shù)halRfWriteTxBuf
?? /*************************************************************************
?? * @fn halRfWriteTxBuf
?? *
?? * @brief Write to TX buffer
?? *
?? * @param uint8* pData - buffer to write
?? * uint8 length - number of bytes
?? *
?? * @return none
?? */
?? void halRfWriteTxBuf(uint8* pData, uint8 length)
?? {
?? uint8 i;
??
?? ISFLUSHTX(); // Making sure that the TX FIFO is empty.
??
?? RFIRQF1 = ~IRQ_TXDONE; // Clear TX done interrupt
??
?? // Insert data
?? for(i=0;i<length;i++){
?? RFD = pData[ i ];
?? }
?? }
從中我們可以明顯地看出,要發(fā)送的數(shù)據(jù)pData,在此函數(shù)中,通過逐個寫進(jìn)RFD的方式發(fā)送出去了。這不正是我們苦苦尋找的物理層“小弟”嗎?不就是他一個一個字節(jié)地讓“比特”飛翔了起來??
按照我們現(xiàn)在的理解試試能不能把數(shù)據(jù)發(fā)送出去:
??uint8 test_str[6]="feibit";
??halRfWriteTxBuf(test_str, 6);
難道就這么簡單?小心翼翼地編譯、下載,在IAR下單步進(jìn)行跟蹤,程序順利地執(zhí)行了halRfWriteTxBuf(test_str, 6);這一句。但不要高興地太早,程序在執(zhí)行到下面,halRfTransmit()這個函數(shù)的時候,進(jìn)了死循環(huán),一直出不來了。這是怎么回事?
我們看一下到底這個函數(shù)在做什么?
?? /************************************************************************
?? * @fn halRfTransmit
?? *
?? * @brief Transmit frame with Clear Channel Assessment.
?? *
?? * @param none
?? *
?? * @return uint8 - SUCCESS or FAILED
?? */
?? uint8 halRfTransmit(void)
?? {
?? uint8 status;
??
?? ISTXON(); // Sending
??
?? // Waiting for transmission to finish
?? while(!(RFIRQF1 & IRQ_TXDONE) );
??
?? RFIRQF1 = ~IRQ_TXDONE;
?? status= SUCCESS;
??
?? return status;
?? }
程序明顯死在了while(!(RFIRQF1 & IRQ_TXDONE) ),這句話是在等什么呢?看datasheet!
mac日記篇二:奧特曼Zigbee讀書日記(五)
[注:本文源自“飛比”Zigbee論壇,如需轉(zhuǎn)載請保留此行]
[原創(chuàng)]奧特曼Zigbee讀書日記(五)-- “葵花
寶典”第三章第一層(物理層)
我們在“設(shè)備對話”專題中,了解了如何用Zstack協(xié)議完成一個基本的“老王,吃了沒?”的通信,但就這樣一句話,是如何變成一連串的“0”和“1”,并變成電波在空氣中傳播,最終到達(dá)目的地呢?――插句廣老規(guī)矩,還是先上圖:
這個圖含的信息量可能需要貫穿在我們的整個學(xué)習(xí)過程中了,此處先不詳解,只是先作為“上方寶劍”掛出來,這個是整個這一章的脈絡(luò)。不過,還是要來認(rèn)識 下這里面的幾位關(guān)鍵“人物”的:第一位叫“PHY”――物理層,他是最底層的員工,最終把這些“0”和“1”送到空氣中的活就是他干的;第二位叫 “MAC”――介質(zhì)讀取控制層(這個家伙肯定是老外,連個像樣的中文名都沒有);第三位叫“NWK”――網(wǎng)絡(luò)層,這是個中層干部,屬于實干家型(就是公司里電話最多的那種領(lǐng)導(dǎo));第四位叫“APL”――應(yīng)用層,有同學(xué)問了,這層里面怎么這么復(fù)雜?說實話,我也還沒弄明白呢,不過按常理來說,高層復(fù)雜是應(yīng)該的,到我們的政府機(jī)關(guān)看看就知道啦~~~
另外,下面兩層是由IEEE 802.15.4來定義的,而中層領(lǐng)導(dǎo)上的就是由Zigbee組織來定義的,那什么是我們定義的呢?就是這個“協(xié)議棧”上面的,那就是最高最高的領(lǐng)導(dǎo)啦~~~
第三章,第一層――“PHY”――物理層
3.1 頻率安排
首先,我們從干活的這個小兄弟開始認(rèn)識。他要把一個比特送到空中,是有幾條航線可以選的,就這是所謂的“頻道”,每一個頻道對應(yīng)一個頻率,而每一個頻道又有幾種調(diào)制方式,我們可以理解為坐不同的“飛機(jī)”。下圖是IEEE 802.15.4中對頻道的安排:
對于這里面的“頻道頁”的定義,不是太清楚為什么要這樣定義,不過我覺得用前面說的“飛機(jī)”的概念,更容易理解些。有三種不同的飛機(jī),每種飛機(jī)都可以 走0-26,共27條航線,這就是“物理層”在送數(shù)據(jù)的時候要做出的選擇。其中,0號航線的頻率是868MHZ,915M上有10條航線,其頻率可以通過 下面公式計算:
中心頻率(MHz) = 906 + 2 × ( 頻道號 – 1)
同樣,2.4G波段上的頻率值為:
中心頻率(MHz) = 2405 + 5 × ( 頻道號 – 1)
3.2 能量檢測――ED
就像航空公司一樣,“比特”想要“飛”起來,也是有“航空管制”的,在起飛前要確認(rèn)下航道有沒有被占用,這可不能像開車,塞車了就等會,飛機(jī)要在空中 停了,那不得掉下來(我小時候總這么想~)。能量檢測就是用來實現(xiàn)這個目的的,當(dāng)然,這只是個“能量”檢測,它不會去區(qū)分到底是誰在占用“航道”,它只檢 測有或者沒有。
當(dāng)然,這也是物理層的上級――MAC層給他的任務(wù)之一,不過允許他不用百分百準(zhǔn)確,允許10db的誤差,結(jié)果會以一個8比特的字節(jié)向上報告。
3.3 載波檢測――CS
載波檢測也是檢測當(dāng)前頻道能不能用的,但與ED不同,上面說了ED不會去區(qū)分到底是誰在占用“航道”,但是CS會的,它會根據(jù)載波的特征去判斷當(dāng)前占 用“航道”的是不是與自己一樣的IEEE 802.15.4物理層信號,如果是,那不管ED值是多少,都會返回一個“頻道忙”的信息。
3.4 連接質(zhì)量指示――LQI
還記得電腦的WIFI指示吧,我也不了解WIFI協(xié)議,但我想這應(yīng)該是相同的東西吧。在802.15.4中,有兩種檢測連接質(zhì)量的方法,一個是檢測 “接收信號強(qiáng)度”――RSS,另外一個是檢測“信噪比”――SNR。RSS值是通過檢測接收到的信號的全部能量情況來判斷的。
又有人舉手了?這位同學(xué)有什么問題?――什么,這是怎么做到的?
呃、、、這個我真不懂,不過我知道肯定有個寄存器來讀的。至于這個值是怎么來的,你還是問下做IC的人,或者你找個不是那么忙的教授,說不定他知 道~~~不過這位小同學(xué)啊,看你問這個問題,我得多說你幾句了。你這么“叫真”不好,倒不是打擊你,我知道你說不定能成個人物,不過,學(xué)習(xí)是要講“深度” 和“廣度”并舉的,如果什么事情都一頭鉆進(jìn)去,你會迷路的。。。
我們繼續(xù),那“信噪比”SNR,顧名思義,就是信號除以噪聲的比率了。當(dāng)然,值越大表示信號質(zhì)量越好。
每一個接收到的數(shù)據(jù)包都會做一個LQI的測量,它至少有八個等級。這個測量是物理層很重要的一個任務(wù),因為這個值不但他的直屬領(lǐng)導(dǎo)-MAC層要用到, 他的上幾層領(lǐng)導(dǎo)-網(wǎng)絡(luò)層和應(yīng)用層都用得到。比如說網(wǎng)絡(luò)層(NWK)在選擇路由的時候,LQI就是一個很重要的指標(biāo),LQI值高的路徑當(dāng)然要優(yōu)先考慮,當(dāng) 然,這也只是一個因素,比如說這個LQI高的路徑里的設(shè)備都是電池供電的,那么在頻繁選擇這個路徑的同時,必然會導(dǎo)致這些設(shè)備電池壽命縮短。所以,一定要 多方面權(quán)衡――這就體現(xiàn)了“領(lǐng)導(dǎo)”的作用。。。
3.5 空閑頻道評估――CCA
(注:本教程里的中文名稱可能不符合標(biāo)準(zhǔn),只是方便筆者說明問題,如對名稱有異議,歡迎在本教程論壇-中討論)
這里有一個很重要的名詞叫“CSMA-CA”,聽起來就像高科技,不知道和CDMA有沒什么關(guān)系(做通訊的朋友開始扔磚頭了~~~)
它有一個不太帥的中文名字叫“載波偵聽多點接入/沖突檢測”,筆者現(xiàn)在還無法對這個概念做個定義,不過倒是可以用“白話”翻譯一下。在上文中我們看 到,當(dāng)我們的“PHY層”小弟要發(fā)送一個比特的時候,
要面臨那么多選擇,走哪個航線,選什么樣的飛機(jī)等等,那這么復(fù)雜的決策,“小弟”能搞得定嗎?要兩個 “小弟”都在爭一個位置,打架了怎么辦?按社會常理來看,這應(yīng)該不是哪個人決定的,而是有個“制度”,這樣說,能理解不?
當(dāng)然,制度也是要人來執(zhí)行的,一個最底層的工作叫“空閑頻道評估”――CCA,這個也是由我們的小弟“物理層”來做的。他要告訴MAC層,當(dāng)前頻率有沒有被其它設(shè)備占用。而且這個工作不能只做一次就匯報,要檢測8個符號周期。
在IEEE 802.15.4物理層協(xié)議中,有三種CCA模式:
1. 只檢測ED值。只要ED值高于一個門限就認(rèn)為當(dāng)前頻道被占用。這個門限值可以由設(shè)計者來定義。
2. 只由CS結(jié)果來決定。只要CS的檢測結(jié)果為,當(dāng)前頻道被IEEE 802.15.4定義的設(shè)備占用,則返回頻道忙。
3. 由上述兩個值的“與”或者“或”邏輯來決定。也說是說
●ED值高于門限“并且”有802.15.4設(shè)備占用,則認(rèn)為頻道忙
●ED值高于門限“或者”有802.15.4設(shè)備占用,則認(rèn)為頻道忙
那究竟采用哪種CCA模式呢?這個可以通過PHY屬性值phyCCAMode來設(shè)置。這個值也是PHY-PIB值的一部分,下面的章節(jié)會對這個概念進(jìn)行介紹。
3.6 物理層常量和屬性
首先說明一下“常量”和“屬性”這兩個詞,所謂的常量就是說在“編譯”好之后不能變的量;而屬性則是可以改變的。在Zigbee協(xié)議棧中,每一層都有自己的常量和屬性。
如表3.2所示,物理層中只有兩個常量,aMaxPHYPacketSize指示“物理層服務(wù)數(shù)據(jù)單元”――PSDU不能超過127字節(jié);而 aTurnaroundTime說明一個設(shè)備由接收狀態(tài)轉(zhuǎn)為發(fā)送狀態(tài)的最大時間,也就是說一個接收器必須在12個符號周期內(nèi)完成接收任務(wù)。
同時要說明的一點是,PHY和MAC層的所有常量都有一個前綴“a”,這是Zigbee協(xié)議的規(guī)定,NWK和APL層分別以前綴“nwkc”和“apsc”開始。
物理層的“屬性”包含在“物理層PAN信息基準(zhǔn)表”――PHY-PIB中,這個表是專門用來管理物理層服務(wù)的,詳細(xì)信息在表3.3中,其中有(+)標(biāo) 志的為只讀屬性,上層只可以對此類屬性進(jìn)行“讀”操作,只有物理層自己才能“寫”;而有(*)標(biāo)志的屬性,其個別指定位為“只讀”;其余的屬性則可讀可 寫。后面章節(jié)會對每個屬性詳細(xì)闡述。
3.7 物理層服務(wù)
我們研究了半天物理層是怎么工作的,下面看下我們到底怎么“吩咐”他,他到底提供了哪些“服務(wù)”。
物理層提供了兩種類型的服務(wù),一種是數(shù)據(jù)服務(wù),一種叫物理層管理服務(wù)。顧名思義,數(shù)據(jù)服務(wù)通過無線電波對“物理協(xié)議層數(shù)據(jù)單元”――PPDU進(jìn)行發(fā)送 和接收,說簡單點就是收發(fā)數(shù)據(jù);另外,物理層中包含了一個叫“物理層管理實體”――PLME的一個管理單元,如下圖所示,數(shù)據(jù)服務(wù)是通過PD-SAP實現(xiàn) 的,而物理層管理服務(wù)是通過PLME-SAP來實現(xiàn)的,其中PLME也包含上文所述的PHY-PIB。
3.7.1 物理層數(shù)據(jù)服務(wù)
mac日記篇三:復(fù)習(xí)重點(底分)
論述題:
請簡述電子商務(wù)安全的六個安全要素,舉例說明其保護(hù)的內(nèi)容、面對的威脅和防范措施 答案:電子商務(wù)的六個安全要素是可用性、機(jī)密性、完整性、不可否認(rèn)性、真實性、訪問控制(0.5*6=3分)
可用性(Avaliablity)是指確保及時可靠地訪問和使用信息(0.5)。例如用戶可以訪問自己的郵箱、網(wǎng)站主頁等(0.5)。主要的威脅是阻斷,例如物理線路破壞、惡意軟件或者DOS攻擊等(0.5)。防范措施包括物理防護(hù)、安裝防毒軟件、IDS和使用DDOS防火墻(0.5)。(共2分,下同)
機(jī)密性(Confidenticality)是指確保隱私或機(jī)密信息不被非授權(quán)的個人利用,或被泄露給非授權(quán)的個人。例如用戶登錄郵箱時使用的密碼,或者存放在電腦上的個人日記等。主要的威脅是竊聽、破解以及系統(tǒng)入侵等。防范的措施主要是加密,包括對稱加密和非對稱加密;以及使用具有加密功能的安全協(xié)議,例如IPSec、SSL、kerberos和SSH等。
完整性(Integrity)是指防范不正當(dāng)?shù)男畔⑿薷幕蚱茐。例如用戶的訂單、發(fā)送的明文信息、數(shù)據(jù)庫存放的敏感信息等。主要的威脅是篡改,例如在數(shù)據(jù)傳輸過程中被修改后再發(fā)往服務(wù)器,或者入侵系統(tǒng)后修改敏感信息。防范的措施包括單向哈希函數(shù)、消息驗證碼(MAC)、以及使用具有消息認(rèn)證功能的安全協(xié)議,例如IPSec、SSL等。
不可否認(rèn)性(Undeniablity)是指用戶無法否認(rèn)自己的行為(發(fā)送或接收)和信息的內(nèi)容。例如用戶的合同、交易信息等。主要的威脅是抵賴,合法用戶否認(rèn)已經(jīng)發(fā)生的行為。防范的措施主要是數(shù)字簽名(RSA或DSA),以及使用具有防抵賴功能的公平協(xié)議。
真實性(Authenticity)是指能夠被驗證和信任的表示真實情況或者正確程度的屬性,使得創(chuàng)新、信息和信息源的有效性能夠被充分相信。例如用戶的身份、信息的來源等。主要的威脅是假冒和偽造,例如偽裝成合法用戶,或者以他人名義發(fā)送信息。防范的措施,用戶身份認(rèn)證包括生物特征認(rèn)證(例如指紋)、知道什么(例如口令、密碼)以及相關(guān)協(xié)議(例如CHAP、Kerberos)、擁有什么(例如令牌、數(shù)字證書)以及相關(guān)協(xié)議(例如SSL),信息源認(rèn)證主要通過數(shù)字簽名。
訪問控制(authorization)是指資源的所有者或者控制者準(zhǔn)許其他人訪問這種資源,防止未授權(quán)的訪問。例如不同級別的用戶可以訪問不同密級的信息,或者不同價值的內(nèi)容。主要的威脅是入侵和特洛伊木馬,入侵者通過緩沖區(qū)溢出等手段獲得超級用戶權(quán)限,或者誘導(dǎo)所有者執(zhí)行木馬程序把訪問權(quán)限授予給攻擊者。防范的措施是依據(jù)最小授權(quán)原則制定合理的授權(quán)策略,包括減少使用超級用戶權(quán)限。常見的授權(quán)策略包括DAC(自主訪問控制),MAC(強(qiáng)制訪問控制),RBAC(基于屬性的訪問控制)和ABAC(基于屬性的訪問控制)。
計算題
應(yīng)用RSA算法實現(xiàn)加密和解密,并運用中國剩余定理計算加密結(jié)果。其中
1、分布用歐拉法和輾轉(zhuǎn)相除法求出逆元(4分)。//各2分
2、應(yīng)用RSA實現(xiàn)過程(4分)。// n,fi(n),加密公式,解密公式各1分
3、中國剩余定理(7分)。//求m1,m2各得1分,求y1,y2各得2分,結(jié)果1分
示例:
已知,p=13,q=11,e=11;m=25
答案:
n=143,fi(n)=12*10=120=5*3*8
歐拉法:
fi(fi(n))=120*1/2*2/3*4/5=40*4/5=32(1分)
11^(32-1) mod 120=11^31 mod 120=11(1分)
輾轉(zhuǎn)相除法(最好是參照ppt畫圖):
120=11*10+10(1分)
11=10*1+1
10=1*10+0
a0~an=10,1,n=1為奇數(shù)
b-1=1,b0=an=1,b1=10*1+1=11,所以bn即為逆元=11(1分)
C=m^e mod n=25^11 mod 143 =25(25可以不寫出來,1分),m=C^d mod n=25^11 mod 143=25(1分)
CRT:
C1=(m mod p)e mod (p-1)=C mod p
C2=(m mod q)emod (q-1)=C mod q
由(25 mod 13)^(11 mod 12) mod 13 = 12^11 mod 13=(12^2) ^5*12 mod 13 =12=c mod 13 得 c=12 mod 13
由(25 mod 11)^(11 mod 10) mod 11=3^1 mod 11=3=c mod 11得 c= 3 mod 11
m1=11,m2=13,且由11*y1=1 mod 13及 13*y2=1 mod 11,可得 y1=6,y2=6(輾轉(zhuǎn)相除法很容易求,過程最好寫出來)
由此可得m=(12*11*6+3*13*6) mod 143=(4*3*66+234) mod 143=(4*55 +91) mod 143=(77+91) mod 143=168 mod 143=25
相關(guān)熱詞搜索:日記 mac mac修改器 mac軟件
熱點文章閱讀