国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】

這篇具有很好參考價值的文章主要介紹了【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

實驗三、數(shù)論基礎(chǔ)(下)

一、實驗內(nèi)容

1、中國剩余定理(Chinese Remainder Theorem)

(1)、算法原理

m1, m2, … mk 是一組兩兩互素的正整數(shù),且 M = m1 · m2 · … · mk 為它們的乘積, 則如下的同余方程組:
x == a1 (mod m1)
x == a2 (mod m2)

x == ak (mod mk)

對于模M有唯一的解 x = (M · e1 · a1 / m1 + M · e2 · a2 / m2 + … + M · ek · ak / mk) (mod M)
其中 ei 滿足 M / mi · ei == 1(mod mi)

(2)、算法流程

本算法的大致流程如下圖所示:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言

(3)、算法的代碼實現(xiàn)(C語言)

#include <stdio.h>

int reverse(int k, int m);  // 函數(shù),返回k模m的逆元

int main()
{
	int i;
	int r;       // 方程組中的方程個數(shù) (不能超過100)
	int b[100];  // 余數(shù)數(shù)組
	int m[100];  // 模數(shù)數(shù)組
	int mul = 1;
	int M[100];  // M數(shù)組
	int M1[100];  // M'數(shù)組
	int x = 0;  // 方程組的根
	
	//	printf("%d", reverse(3, 7));  // 一行測試代碼
	printf("請輸入方程的個數(shù):");
	scanf_s("%d", &r);  // 選用安全的輸入函數(shù),避免可能的棧溢出(攻擊)
	
	printf("請輸入 %d 個余數(shù),之間以空格分隔:", r);
	for(i = 0;i < r;i ++)
	{
		scanf("%d", &b[i]);
	}
	
	printf("請輸入 %d 個模數(shù),之間以空格分隔:", r);
	for(i = 0;i < r;i ++)
	{
		scanf("%d", &m[i]);
		mul *= m[i];
	}
	
	for(i = 0;i < r;i ++)
	{
		M[i] = mul / m[i];
	}
	
	for(i = 0;i < r;i ++)
	{
		M1[i] = reverse(M[i], m[i]);
	}
	
	for(i = 0;i < r;i ++)
	{
		x += M1[i] * M[i] * b[i];
	}
	
	x %= mul;
	
	printf("此同余方程組的解(模%d)是:", mul);
	printf("%d", x);
	
	return 0;
}

int reverse(int k, int m)
{
	int i;
	for(int i = 1;i < m;i ++)
	{
		if(k * i % m == 1)
		{
			return i;
		}
	}
	return -1;
}

(4)、算法測試

測試點1:

x == 1 (mod 4)
x == 2 (mod 5)
x == 3 (mod 7)

運(yùn)行時截圖:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言
解為 x == 17 (mod 140)

測試點2:

x == 7 (mod 23)
x == 9 (mod 28)
x == 16 (mod 33)

運(yùn)行時截圖:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言

解為 x == 19189 (mod 21252)

測試點3:

x == 23 (mod 283)
x == 28 (mod 102)
x == 33 (mod 35)

運(yùn)行時截圖:
【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言

解為 x == 43888 (mod 1010310)

2、素性檢測算法(Miller-Rabin’s Test for Primality)

(1)、算法原理
根據(jù)費(fèi)馬小定理,設(shè) p素數(shù),a整數(shù),且滿足 (a, p) = 1, 則滿足 a ^ (p - 1) = 1 (mod p), 以及二次探測定理:如果 p 是一個素數(shù),且 0 < x < p, 且同余方程 x ^ 2 = 1 (mod p) 成立,那么 x = 1x = p - 1。米勒·拉賓 Miller-Rabin 素性檢測算法是基于以上兩個定理的隨機(jī)化算法,用于判斷一個整數(shù)是合數(shù)還是素數(shù)。

(2)、算法流程

本算法的大致流程如下圖所示:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言

(3)、算法的代碼實現(xiàn)(C語言)

#include <stdio.h>
#include <stdlib.h>

typedef long long unsigned LLU;
typedef int BOOL;

#define TRUE 1
#define FALSE 0

// 長整數(shù)快速模乘算法
LLU quickMult(LLU a, LLU b, LLU c)
{
    LLU result = 0;
    while(b > 0) 
	{
        if(b & 1)
            result = (result + a) % c;
        a = (a + a) % c;
        b >>= 1;
    }
    return result;
}

// 長整數(shù)快速冪取模算法
LLU quickPower(LLU a, LLU b, LLU c) 
{
    LLU result = 1;
    while(b > 0) 
	{
        if(b & 1)
            result = quickMult(result, a, c);
        a = quickMult(a, a, c);
        b >>= 1;
    }
    return result;
}



// 米勒·拉賓素性檢驗算法(單次測試)
BOOL MillerRabinPrimeTest(LLU n) 
{
    LLU d, x, newX, a = 1;
    int i;
    for (i = 0; i < 4; i ++)
        a *= rand();
    a = a % (n - 3) + 2;  // 隨機(jī)地選取一個a∈[2,n-2]
    int s = 0;  // s為d中的因子2的冪次數(shù)。
    d = n - 1;
    while ((d & 1) == 0) 
	{   
		// 將d中的因子2全部提取出來。
        s ++;
        d >>= 1;
    }

    x = quickPower(a, d, n);
	for (i = 0; i < s; i ++) 
	{ // 進(jìn)行s次二次探測
        newX = quickPower(x, 2, n);
        if (newX == 1 && x != 1 && x != n - 1)
            return FALSE;  // 用二次定理的逆否命題,此時n被確定為合數(shù)。
        x = newX; 
    }
	
    if (x != 1)
        return FALSE;  // 用費(fèi)馬小定理的逆否命題判斷,此時x=a^(n-1) (mod n),那么n確定為合數(shù)。

    return TRUE; //用費(fèi)馬小定理的逆命題判斷。能經(jīng)受住考驗至此的數(shù),大概率為素數(shù)。
}


//經(jīng)過連續(xù)特定次數(shù)的Miller-Rabin測試后,
//如果返回值為TRUE表示n為素數(shù),返回值為FALSE表示n為合數(shù)。
BOOL isPrimeByMR(LLU n) 
{
    if((n & 1) == 0)
        return FALSE;
    int i;
    for (i = 0; i < 100; i ++)
        if(MillerRabinPrimeTest(n) == FALSE)
            return FALSE;
    return TRUE;
}


// 主函數(shù)
int main()
{
    LLU n;
	
	printf("請輸入待判斷素性的整數(shù):");
    scanf("%lld", &n);
	
    BOOL result;
    result = isPrimeByMR(n);
	
	printf("\n------判斷中......------\n\n");
	
    if(result == TRUE)
        printf("%llu 是素數(shù)", n);
    else
        printf("%llu 是合數(shù)", n);
	
    return 0;
}

(4)、算法測試

測試點1:
判斷1000023是素數(shù)還是合數(shù)。(答:合數(shù)

運(yùn)行時截圖:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言

測試點2:
判斷1000033是素數(shù)還是合數(shù)。(答:素數(shù)

運(yùn)行時截圖:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言
測試點3:
判斷100160063是素數(shù)還是合數(shù)。(答:合數(shù)

運(yùn)行時截圖:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言測試點4:
判斷1500450271是素數(shù)還是合數(shù)。(答:素數(shù)

運(yùn)行時截圖:

【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】,C語言,密碼學(xué),算法,web安全,密碼學(xué),c語言

說明:算法為概率性判斷,即可能將合數(shù)錯判為素數(shù)(對計算機(jī)來說,已在極短的時間內(nèi)完成了100次重復(fù)的MR測試,故該錯判的概率極低),但絕無可能將素數(shù)錯判為合數(shù)。

二、參考文獻(xiàn)

1、《密碼編碼學(xué)與網(wǎng)絡(luò)安全——原理與實踐(第七版)》(Cryptography and Network Security, Principles and Practice, Seventh Edition),【美】威廉 斯托林斯 William Stallings 著,王后珍等 譯,北京,電子工業(yè)出版社,2017年12月。

2、《密碼學(xué)實驗教程》,郭華 劉建偉等 主編,北京,電子工業(yè)出版社,2021年1月。文章來源地址http://www.zghlxwxcb.cn/news/detail-785407.html

到了這里,關(guān)于【網(wǎng)絡(luò)安全】【密碼學(xué)】【北京航空航天大學(xué)】實驗三、數(shù)論基礎(chǔ)(下)【C語言實現(xiàn)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【北京航空航天大學(xué)】【信息網(wǎng)絡(luò)安全實驗】【實驗一、密碼學(xué):DES+RSA+MD5編程實驗】

    【北京航空航天大學(xué)】【信息網(wǎng)絡(luò)安全實驗】【實驗一、密碼學(xué):DES+RSA+MD5編程實驗】

    1. 通過對DES算法的代碼編寫,了解分組密碼算法的設(shè)計思想和分組密碼算法工作模式; 2. 掌握RSA算法的基本原理以及素數(shù)判定中的Rabin-Miller測試原理、Montgomery快速模乘(模冪)算法,了解公鑰加密體制的優(yōu)缺點及其常見應(yīng)用方式; 3. 掌握MD5算法的基本原理,了解其主要應(yīng)用

    2024年02月19日
    瀏覽(26)
  • 網(wǎng)絡(luò)安全密碼學(xué)

    網(wǎng)絡(luò)安全密碼學(xué)

    目錄 一 古代密碼學(xué) 1.替換法 2.移位法 3.古典密碼學(xué)的破解方式 二 近代密碼學(xué) 三 現(xiàn)代密碼學(xué) 1.散列函數(shù)(哈希函數(shù)) 2.對稱加密 3.非對稱加密 四 如何設(shè)置密碼才安全 1.密碼不要太常見 2.各個應(yīng)用軟件里面的密碼不要設(shè)置一樣 3.在設(shè)置密碼的時候,可以加一些特殊的標(biāo)記 實

    2023年04月12日
    瀏覽(22)
  • 網(wǎng)絡(luò)安全之密碼學(xué)

    網(wǎng)絡(luò)安全之密碼學(xué)

    目錄 密碼學(xué) 定義 密碼的分類 對稱加密 非對稱加密 對稱算法與非對稱算法的優(yōu)缺點 最佳解決辦法 --- 用非對稱加密算法加密對稱加密算法的密鑰 非對稱加密如何解決對稱加密的困境 密鑰傳輸風(fēng)險 密碼管理難 常見算法 對稱算法 非對稱算法 完整性與身份認(rèn)證最佳解決方案

    2024年02月01日
    瀏覽(24)
  • 網(wǎng)絡(luò)安全與密碼學(xué)

    網(wǎng)絡(luò)安全與密碼學(xué)

    1、網(wǎng)絡(luò)安全威脅 破壞網(wǎng)絡(luò)安全的一些理論方式: 竊聽:竊聽信息,在網(wǎng)路通信雙方直接進(jìn)行竊聽。 插入:主動在網(wǎng)絡(luò)連接中插入信息(可以在message中插入惡意信息) 假冒:偽造(spoof)分組中的源地址,假冒客戶端或服務(wù)器。 劫持:通過移除/取代發(fā)送方發(fā)或接收方“接管

    2024年02月16日
    瀏覽(40)
  • 網(wǎng)絡(luò)安全:密碼學(xué)基本理論.

    網(wǎng)絡(luò)安全:密碼學(xué)基本理論.

    密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)。研究密碼變化的客觀規(guī)律,應(yīng)用于編制密碼以保守通信秘密的,稱為編碼學(xué);應(yīng)用于破譯密碼以獲取通信情報的,稱為破譯學(xué),總稱密碼學(xué). 目錄 網(wǎng)絡(luò)安全:密碼學(xué)基本理論. 密碼學(xué)基本概念: 密碼安全性分析: 密碼體系分析:

    2024年02月16日
    瀏覽(17)
  • 【網(wǎng)絡(luò)安全】1.4 密碼學(xué)基礎(chǔ)

    【網(wǎng)絡(luò)安全】1.4 密碼學(xué)基礎(chǔ)

    密碼學(xué)是網(wǎng)絡(luò)安全的核心組成部分,它幫助我們保護(hù)信息,防止未經(jīng)授權(quán)的訪問。在這篇文章中,我們將從基礎(chǔ)開始,深入了解密碼學(xué)的基本概念和原理,包括加密、解密、密鑰、哈希函數(shù)等。我們將盡可能使用簡單的語言和實例,以便于初學(xué)者理解。 密碼學(xué)是一門研究信息

    2024年02月07日
    瀏覽(27)
  • 計算機(jī)網(wǎng)絡(luò)安全——密碼學(xué)入門

    計算機(jī)網(wǎng)絡(luò)安全——密碼學(xué)入門

    ????????網(wǎng)絡(luò)安全是指在網(wǎng)絡(luò)領(lǐng)域、專業(yè)領(lǐng)域的網(wǎng)絡(luò)安全包括在基礎(chǔ)計算機(jī)網(wǎng)絡(luò)基礎(chǔ)設(shè)施中所做的規(guī)定,網(wǎng)絡(luò)管理員采取的策略來保護(hù)網(wǎng)絡(luò)及網(wǎng)絡(luò)可訪問資源免受未經(jīng)授權(quán)的訪問,以及對其有效性(或缺乏)的持續(xù)不斷的監(jiān)控和測量的結(jié)合。 1.1.1 保密性 ????????只有授

    2024年01月19日
    瀏覽(34)
  • 密碼學(xué)的社會網(wǎng)絡(luò):如何保護(hù)社交網(wǎng)絡(luò)的安全

    社交網(wǎng)絡(luò)已經(jīng)成為了現(xiàn)代人們生活中不可或缺的一部分,它們?yōu)槲覀兲峁┝艘环N與家人、朋友和同事保持聯(lián)系的方式。然而,這種聯(lián)系也帶來了一些挑戰(zhàn),因為社交網(wǎng)絡(luò)上的數(shù)據(jù)經(jīng)常被盜、篡改或泄露。因此,保護(hù)社交網(wǎng)絡(luò)的安全至關(guān)重要。 在這篇文章中,我們將探討密碼學(xué)

    2024年02月20日
    瀏覽(36)
  • 《計算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全》 第四章 密碼學(xué)基礎(chǔ)

    《計算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全》 第四章 密碼學(xué)基礎(chǔ)

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬

    2024年02月11日
    瀏覽(25)
  • 【網(wǎng)絡(luò)與信息安全學(xué)報】區(qū)塊鏈密碼學(xué)隱私保護(hù)技術(shù)綜述——CCF T2

    區(qū)塊鏈密碼學(xué)隱私保護(hù)技術(shù)綜述 Survey on blockchain privacy protection techniques in cryptography Abstract 近年來,數(shù)據(jù)隱私問題日益明顯,如何在區(qū)塊鏈中實現(xiàn)有效的隱私保護(hù)是研究熱點。針對區(qū)塊鏈在隱私保護(hù)上的研究現(xiàn)狀與發(fā)展態(tài)勢,闡述了區(qū)塊鏈在交易地址、預(yù)言機(jī)以及智能合約上

    2024年02月03日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包