




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、上海電力學(xué)院Shanghai University of Electric Power實(shí)驗(yàn)報(bào)告 院系名稱: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 _ 課程名稱: _ _ 應(yīng)用密碼學(xué) _ _ _ 實(shí)驗(yàn)項(xiàng)目名稱: 置換群相關(guān)的運(yùn)算及實(shí)現(xiàn) _ _ 實(shí)驗(yàn)一 置換群相關(guān)的運(yùn)算及實(shí)現(xiàn)一、 實(shí)驗(yàn)?zāi)康?#216; 理解密碼學(xué)相關(guān)基本概念Ø 理解并能夠編寫基本的古典密碼體制Ø 熟練應(yīng)用C+編程實(shí)現(xiàn)密碼體制二、 實(shí)驗(yàn)內(nèi)容1、 求S3的所有元素并輸出所有的置換。2、 水域S3的任意兩個(gè)置換元素,求他們的復(fù)合運(yùn)算的結(jié)果。3、 給定S3的某個(gè)置換,求它的逆置換。三、 實(shí)驗(yàn)原理1. 置換群:n元對(duì)稱群的任意一個(gè)子群,
2、都叫做一個(gè)n元置換群2. 矩陣的復(fù)合運(yùn)算3. 矩陣的求逆運(yùn)算四、 實(shí)驗(yàn)步驟(包括流程圖、功能模塊)1. 申請(qǐng)18個(gè)空間,將3個(gè)元素依次循環(huán)填入填充。2. 通過置換,求得所有置換群3. 矩陣的復(fù)合運(yùn)算4. 矩陣的求逆運(yùn)算【算法流程圖】申請(qǐng)空間,并填充數(shù)值通過置換計(jì)算出置換群打印置換群矩陣的復(fù)合求取逆矩陣五、 軟件使用說明(開發(fā)環(huán)境、參數(shù)使用詳細(xì)說明、實(shí)驗(yàn)結(jié)果+相應(yīng)截圖等)【功能模塊】求取置換群for (int i = 0; i<3; i+) swap(Abeliani * 6, Abeliani * 6 + i);swap(Abeliani * 6 + 3, Abeliani * 6 +
3、3 + i);swap(Abeliani * 6 + 4, Abeliani * 6 + 4 + 1);矩陣的復(fù)合 for (int i = 0; i<3; i+)for (int j = 0; j<3; j+)if (Abelian3 * (m - 1) + i = Abelian_Group_srcj)Compound_Operatei = Abelian3 * (n - 1) + j;逆矩陣for (int i = 0; i<3; i+)for (int j = 0; j<3; j+)if (Abelian3 * (n - 1) + i = Abelian_Gro
4、up_srcj)inverse_operationj = Abelian_Group_srci;【開發(fā)環(huán)境】Visual Studio 2013 (Windows10)【參數(shù)使用】輸入的三個(gè)元素:4、5、6選擇做復(fù)合運(yùn)算的兩個(gè)置換:4、5求逆的矩陣編號(hào):4【實(shí)驗(yàn)結(jié)果】六、 參考資料(書籍或網(wǎng)絡(luò)文章)密碼編碼學(xué)與網(wǎng)絡(luò)安全原理與實(shí)踐(第五版)七、 實(shí)驗(yàn)心得和總結(jié)八、 源代碼#include<iostream>#include<string.h>using namespace std;int main()/1int *Abelian_Group_src = new int3;
5、cout << "請(qǐng)依次輸入元素值:"for (int i = 0; i<3; i+)cin >> Abelian_Group_srci;int Abelian18;for (int i = 0; i<18; i = i + 3)/因?yàn)槊總€(gè)置換群的第一行都相同,所以只需要對(duì)剩下的一行操作即可。3的階層是6,一共有六個(gè)置換群,去掉第一行,一共有6x3個(gè)數(shù),每一組默認(rèn)值按照輸入的順序賦值,并放在同一個(gè)數(shù)組中Abeliani = Abelian_Group_src0;Abeliani + 1 = Abelian_Group_src1;Abeli
6、ani + 2 = Abelian_Group_src2;for (int i = 0; i<3; i+)/置換操作,18個(gè)數(shù)分為3組,每一組中的兩個(gè)小組的第一個(gè)數(shù)分別于組數(shù)對(duì)應(yīng)的數(shù)字交換,然后交換每一組最后兩個(gè)數(shù)字swap(Abeliani * 6, Abeliani * 6 + i);swap(Abeliani * 6 + 3, Abeliani * 6 + 3 + i);swap(Abeliani * 6 + 4, Abeliani * 6 + 4 + 1);cout << "S3的所有置換:" << endl;for (int i =
7、0; i<18; i = i + 3)cout << "置換" << i / 3 + 1 << ":"cout << Abelian_Group_src0 << " " << Abelian_Group_src1 << " " << Abelian_Group_src2 << endl;cout << " " << Abeliani << &quo
8、t; " << Abeliani + 1 << " " << Abeliani + 2 << endl;cout << endl;/2int m, n;cout << "請(qǐng)輸入需要做復(fù)合運(yùn)算的兩個(gè)元素,即在上面的置換中任選2個(gè)(輸入數(shù)字16):"cin >> n >> m;while (n<1 | n>6 | m<1 | m>6)cout << "輸入錯(cuò)誤,請(qǐng)重新輸入!" << en
9、dl;cout << "請(qǐng)輸入需要作復(fù)合運(yùn)算的兩個(gè)元素,即在上面的置換中任選2個(gè)(輸入數(shù)字16):"cin >> n >> m;int Compound_Operate3;for (int i = 0; i<3; i+)for (int j = 0; j<3; j+)if (Abelian3 * (m - 1) + i = Abelian_Group_srcj)Compound_Operatei = Abelian3 * (n - 1) + j;/ if(Abelian3*(m-1)+i=Abelian_Group_src0)
10、/ Compound_Operatei=Abelian3*(n-1);/ if(Abelian3*(m-1)+i=Abelian_Group_src1)/ Compound_Operatei=Abelian3*(n-1)+1;/ if(Abelian3*(m-1)+i=Abelian_Group_src2)/ Compound_Operatei=Abelian3*(n-1)+2;cout << Abelian_Group_src0 << " " << Abelian_Group_src1 << " " &l
11、t;< Abelian_Group_src2 << " " << Abelian_Group_src0 << " " << Abelian_Group_src1 << " " << Abelian_Group_src2 << " " << Abelian_Group_src0 << " " << Abelian_Group_src1 << " &qu
12、ot; << Abelian_Group_src2 << endl;cout << " 。" << " =" << endl;cout << Abelian3 * (n - 1) << " " << Abelian3 * (n - 1) + 1 << " " << Abelian3 * (n - 1) + 2 << " " << Abelian3 * (
13、m - 1) << " " << Abelian3 * (m - 1) + 1 << " " << Abelian3 * (m - 1) + 2 << " " << Compound_Operate0 << " " << Compound_Operate1 << " " << Compound_Operate2 << endl;/3int inverse_opera
14、tion3;cout << "請(qǐng)輸入需要求逆的矩陣編號(hào),即在上面的置換編號(hào)(輸入數(shù)字16):"cin >> n;while (n<1 | n>6)cout << "輸入錯(cuò)誤,請(qǐng)重新輸入!" << endl;cout << "請(qǐng)輸入需要求逆的矩陣編號(hào),即在上面的置換編號(hào)(輸入數(shù)字16):"cin >> n;for (int i = 0; i<3; i+)for (int j = 0; j<3; j+)if (Abelian3 * (n - 1
15、) + i = Abelian_Group_srcj)inverse_operationj = Abelian_Group_srci;cout << Abelian_Group_src0 << " " << Abelian_Group_src1 << " " << Abelian_Group_src2 << endl;cout << Abelian3 * (n - 1) << " " << Abelian3 * (n - 1) + 1 << " " << Abelian3 * (n - 1) + 2 << endl;cout << "的逆置換為:" << endl;cout << Abelian_Group_src0 << " " << Abelian_Group_src1 &l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度宅基地房屋贈(zèng)與受贈(zèng)方后續(xù)使用協(xié)議
- 2025年度海景房房屋買賣協(xié)議書
- 二零二五年度學(xué)校食堂炊事員崗位聘用及食品安全責(zé)任保險(xiǎn)服務(wù)合同
- 2025年度能源行業(yè)人員派遣勞務(wù)合同
- 二零二五年度文化活動(dòng)免責(zé)的舉辦協(xié)議
- 二零二五年度餐廳租賃服務(wù)及品牌合作協(xié)議
- 二零二五年度企業(yè)資產(chǎn)質(zhì)押貸款合同
- 臨時(shí)工用工合同-2025年度制造業(yè)合作協(xié)議
- 2025年度旅游意外傷害保險(xiǎn)責(zé)任免除合同
- 二零二五年度勞動(dòng)合同解除協(xié)議書-員工合同續(xù)簽協(xié)商解除
- 道路運(yùn)輸應(yīng)急救援與救援設(shè)備考核試卷
- 中國文化概況chapter-1
- 大學(xué)生職業(yè)素養(yǎng)訓(xùn)練(第六版)課件全套 宋賢鈞 第1-14單元 選擇職業(yè)目標(biāo)- 堅(jiān)守安全底線
- 期中測(cè)試卷(1~4單元)(試題)2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 2024-2025學(xué)年初中勞動(dòng)七年級(jí)下冊(cè)人教版教學(xué)設(shè)計(jì)合集
- 煤礦煤炭銷售管理制度
- 《語文綜合實(shí)踐:重溫革命歷史 賡續(xù)紅色血脈》教案- 2023-2024學(xué)年高教版(2023)中職語文基礎(chǔ)模塊下冊(cè)
- 2024年公開招聘事業(yè)單位工作人員報(bào)名登記表
- 植樹節(jié)英文主題課件
- 微觀經(jīng)濟(jì)學(xué):緒論
- 2024年全國高考數(shù)學(xué)試題及解析答案(新課標(biāo)Ⅱ卷)
評(píng)論
0/150
提交評(píng)論