第一篇:信息安全專業(yè)課程設(shè)計存在問題
哈爾濱工程大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院信息安全專業(yè)
信息安全專業(yè)課程設(shè)計存在問題及改革建議
課程設(shè)計屬于實踐環(huán)節(jié)的組成部分,其本質(zhì)鍛煉和提高學(xué)生運(yùn)用理論知識解決實際問題的能力,提高和專業(yè)課程相關(guān)的系統(tǒng)設(shè)計和開發(fā)能力。目前,信息安全專業(yè)的課程設(shè)計時間為3周,在這么短的時間內(nèi),完成一件出色的課程設(shè)計作品得需要扎實的基本理論、設(shè)計能力和編程能力。
由于總學(xué)時的限制,信息安全專業(yè)編程語言和系統(tǒng)設(shè)計的課程不多:主要必修課程主要有《程序設(shè)計基礎(chǔ)》(C語言,必修)、《面向?qū)ο蟪绦蛟O(shè)計》(C++)、《算法設(shè)計與分析》;選修課有《Linux程序設(shè)計環(huán)境》、《Java語言程序設(shè)計》;但是對于信息安全專業(yè)或者是信息安全課程設(shè)計來講,還需要匯編語言、編譯原理的基礎(chǔ)知識;另外,《程序設(shè)計基礎(chǔ)》這門課對于C語言的講授是面向全校本科生的大類平臺基礎(chǔ)課,而對于信息安全專業(yè)的學(xué)生,C語言要求較高;如C的靈魂是指針,而指針往往是造成不安全因素的主兇之一,因此C的安全編程的能力需要加強(qiáng)。
總計存在的問題:
①編程基礎(chǔ)需要加強(qiáng),如匯編語言、C語言安全機(jī)制等。
軟件安全、信息系統(tǒng)安全、保密技術(shù)等課程均需要匯編語言、C語言安全機(jī)制的基礎(chǔ);另外,許多病毒、木馬都是通過匯編、C來實現(xiàn),如果不深入了解這些基礎(chǔ)編程語言,去做檢查病毒、木馬的檢測方面的課程設(shè)計存在很大障礙。
②課程設(shè)計內(nèi)容不系統(tǒng),不能體現(xiàn)出完整的知識體系。
信息安全及保密的課程設(shè)計:從信息的生命周期來看為信息的產(chǎn)生、流通、處理和存儲四個環(huán)節(jié),這四個環(huán)節(jié)需要信息論的基礎(chǔ)。另外一個方面,密碼編譯碼算法設(shè)計、密碼系統(tǒng)安全性、密碼算法評價、信息安全模型等均需要基本信息論的基礎(chǔ)知識;從這個角度講學(xué)生缺少一種能夠?qū)⑺鶎W(xué)的和“信息”相關(guān)的課程聯(lián)系起來的工具,因此,圍繞信息安全周期系統(tǒng)性的開展課程設(shè)計難度很大。改革建議(目前正在著手實施20100631、20102111)
通過課程設(shè)計,打通專業(yè)課環(huán)節(jié):
第一類專業(yè)課:程序設(shè)計基礎(chǔ)、計算機(jī)網(wǎng)絡(luò)等,部署四個方向課下自學(xué):安全編程、滲透測試、逆向工程、攻擊防護(hù);側(cè)重于學(xué)習(xí),尋找感興趣方向,提高編程能力;
第二類專業(yè)課:信息系統(tǒng)安全、保密技術(shù)、信息系統(tǒng)安全實驗等,對以上四個方向繼續(xù)加強(qiáng),側(cè)重于系統(tǒng)初步設(shè)計和開發(fā);
第三類實踐課:軟件課程設(shè)計、信息安全課程設(shè)計,繼續(xù)圍繞四個方向,完成一個較好的課程設(shè)計作品;
第四類畢業(yè)設(shè)計:建議學(xué)生與老師聯(lián)系,從課程設(shè)計的廣度和深度上繼續(xù)立題,完成相關(guān)的畢業(yè)設(shè)計。
第二篇:信息安全課程設(shè)計
信息系統(tǒng)安全課程設(shè)計報告
課題名稱:OpenSSL 非對稱加密
提交文檔學(xué)生姓名:提交文檔學(xué)生學(xué)號:
同組 成 員 名 單:指導(dǎo) 教 師 姓 名:
指導(dǎo)教師評閱成績:指導(dǎo)教師評閱意見:
提交報告時間: 2014年 6 月 10日
1.課程設(shè)計目標(biāo)
了解OpenSSL非對稱加密算法的背景知識,并實現(xiàn)加密解密。
2.分析與設(shè)計
(1)實現(xiàn)方法:
編程語言為C++語言。
編程方法:根據(jù)算法要求編寫代碼。
(2)利用OpenSSL命令制作生成密鑰:
#include
#include
#include
#include
#include
int main()
{
char plain[256]=“啦啦啦啦啦”;
char encrypted[1024];
char decrypted[1024];
const char* pub_key=“public.pem”;
const char* priv_key=“private.pem”;
printf(“%sn”,plain);int len=strlen(plain);BIO *pBio = BIO_new_file(pub_key,“r”);if(pBio==NULL){
printf(“failed to open pub_key file %s!n”, pub_key);
return-1;
}
RSA* rsa1= PEM_read_bio_RSA_PUBKEY(pBio, NULL, NULL, NULL);
if(rsa1==NULL){
printf(“unable to read public key!n”);
return-1;
}
BIO_free_all(pBio);int outlen=RSA_public_encrypt(len,(unsigned char *)plain,(unsigned char *)encrypted, rsa1,RSA_PKCS1_PADDING);
printf(“%dn”,outlen);encrypted[outlen]='