This file contains the study notes of my subject Security Foundation

Introduction to Security & Secure Design

Authenticity (真實性)

(證明消息的起源)Proof of a message’s origin

Confidentiality (保密)

对信息加密的能力

The ability to keep messages secret (for time t)

Integrity (正确性)

保证信息在传输的过程中不被篡改。

Message should not be able to be modified during transit Attackers should not be able to substitute fakes

Non-repudiation (不可否認性)

Cannot deny that a message was sent (related to authenticity)

Availability (可用性)

Guarantee of quality of service (fault tolerance)

Covertness (隱蔽)

Message existence secrecy (related to anonymity)

Secrecy (保密)

A technical term which refers to the e ect of actions that limit access to information

Privacy (隱私)

The ability and/or right to protect the personal secrets of you or your family; including invasions of your personal space Privacy does not extend to corporations

Anonymity (匿名)

The ability/desire to keep message source/destination con dential

 

Fabrication(伪造)

试图制造假以便欺骗过认证系统(攻击authenticity )

Interruption (中断)

企图破坏系统,导致系统不可用例如(DDOS)拒绝式服务

(攻击availability)

Modification (修改)

企图篡改系统组件,修改数据和植入病毒(攻击integrity )

An unauthorised party not only gains access to but tampers with an asset Examples include changing values in a data file or a virus An attack on integrity

 

Hash Functions & Basic

Cryptology

is the study of both.

Cryptography(密碼學)

the study of mathematical techniques related to the

design of ciphers.

Cryptanalysis(密碼分析)

the study of breaking them

Functions

A function f : X → Y is defined by:

The domain, a set X = {x1, x2, . . . , xn}.

The codomain, a set Y = {y1, y2, . . . , ym}.

 

WEEK2

 

Hash Functions

A hash function, h, is an e ciently computable mapping of arbitrarily long strings to short fixed length strings.

Compression (压缩)

h将任意有限bit长度的x映射成特点长度的n作为输出

any number of bits to < 512 bits

例如: MD5, SHA256, SHA512

Ease of computation (方便计算)

给定h和x,容易计算h(x)

Given h and x, h(x) is easy to compute.

Keyed Hash Functions

Take both a key (k) and a message (m)

-> MACk(m) = h(m, k)

Where MAC is Called Message Authentication Codes

 

Secure hash functions

一个安全的哈希加密,必须要满足一下属性:

反逆推算能力

唯一性

 

  • Preimage Resistance (原像不可逆)
    • 对于几乎所有的HASH输出,不可能计算出HASH输入
  • Second Preimage Resistance (二次原像不可逆)
    • 对于任何一个给定的x输入,找到另外一个x’不等于x,且满足h(x) = h(x’) 这种情况在计算上是不可能的。(简单来讲,给你一个HASH值,只能对应一个唯一的x输入)
  • Collision Resistance (抵抗碰撞)
    • 找到两个不同是输入,x和x’,满足h(x) = h(x’),在计算上是不可能(也就是说,一个x[即明文] 只能对应一个HASH值)

One Way Functions

满足上述 Preimage Resistance , Second Preimage Resistance

定义

函数 f : {0, 1} n → {0, 1}m  如果是one way 函数 要有一下属性:

  • 给X,f(x)是易於計算
  • 给f(x) ,x是很難計算

 

Data Encryption Standard Cipher  (DES)

定义: f(x)=DES(m,k)=c

给予c (加密后的密文) 和 m (明文),  k是很难推算

 

collision resistant hash functions

满足上述, Second Preimage Resistance ,Collision Resistance

 

Cryptography

学习如何设计加密算法

study of mathematical techniques related to the design of ciphers.

 

Provides:

  • Authentication 真实性
  • Confidentiality  保密性
  • Integrity 正确性
  • Non-Repudiation 不可否认性

Symmetric Ciphers (對稱密碼)

指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来

cryptosystem

a system consisting of  an algorithm, possible plaintexts, ciphertexts, and keys.

Cryptanalysis (密码分析)

sed to breach cryptographic security systems and gain access to the contents of encrypted messages

Ciphertext only attack (唯密文攻击)

唯密文攻击指的是在仅知已加密文字的情况下进行穷举攻击,此方案同时用于攻击对称密码体制和非对称密码体制。

Known Plaintext Attack (已知明文攻击)

已知明文攻击(Known plaintext attack)是一种攻击模式,指攻击者掌握了某段明文x和对应密文y

Chosen Plaintext Attack (选择明文攻击)

选择明文攻击指的是一种攻击模式。在这种攻击模式中,攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文。

Rubber hose attack (RHA)

对密码发明者,相关人员进行暴力,威胁等方法获取到密文和解码表。

PRNGs & Block Ciphers

XOR (逻辑异或)

异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

真值表

A B
F F F
F T T
T F T
T T F

 

One Time Pad (OTP)一次性密码本

 

一次性密码本(One-time Pad;OTP)是密码学中的一种加密算法。是以随机的金钥(key)组成明文,且只使用一次。

定义:

  • K 必须是无特定规律的,它可以是一串随机数字,一句话,或者一本英文名著。
  • Plaintext(明文) 不可重复
  • Keystream(密钥流)不可重复

two-time pad

这是一种很不安全的方式,例如

c1 = m1 ⊕ k

c2 = m2 ⊕ k

k很容易被2抵消掉即:

c1 ⊕c2 = (m1 ⊕k)⊕(m2 ⊕k)

=m1 ⊕m2 ⊕k⊕k

= m1 ⊕ m2

 

Pseudorandom Number Generators (PRNG) (伪随机数)

计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。

Linear Congruential Generators (线性同余生成方法)

线性同余方法(LCG)是个产生伪随机数的方法

其中A,B,M 是产生器设定的常数。

  • 其中B和M 互质 (如果两个或两个以上的整数的最大公约数是 1,则称它们为互质)
  • M的所有质因数(指能整除给定正整数的质数)都能整除 A-1
  • A,B,N0都比M小
  • A,B是整数

Linear Feedback Shift Registers (线性反馈移位寄存器)

是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

RC4 Stream Cipher

是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。

Tips for using PRNGs

  • extremely careful with PRNG seeds!
  • Hash PRNG inputs with a timestamp or counter (对输入种子进行HASH加密)
  • Reseed the PRNG occasionally (同个种子不宜长时间使用)
  • Use a hash function to protect PRNG outputs if PRNG is suspect (使用HASH加密PRNG的输出)\

Data Encryption Standard

据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统

加密原理

DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 轮循环,使用异或,置换,代换,移位操作四种基本运算。

 

AES, Modes of Operation & Key Management

Advanced Encryption Standard (AES)

AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。美国国家标准与技术研究所(NIST)在2002年5月26日建立了新的高级数据加密标准(AES)规范。AES是一个新的可以用于保护电子数据的加密算法。

  • AES的区块长度固定为128 bit
  • 密钥长度则可以是128,192或256 Bit
  • It is an SP‐network (substitution-permutation network)
  • a single S‐box which acts on a byte input to give a byte output (a 256 byte lookup table):

AES Overview – Rounds

The number of rounds are variable:

  • 10 rounds – 128 bit keys
  • 12 rounds – 192 bit keys
  • 14 rounds – 256 bit keys

Symmetric Cryptography (对称加密)

Secure communication has two parts:

  • Establish a key (public key methods)
  • Encrypt message symmetrically using key

Symmetric encryption is faster

 

Block Cipher Modes of Operation (分组密码工作模式)

密码学中,分组(block)密码的工作模式(mode of operation)允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性。分组密码自身只能加密长度等于密码分组长度的单块数据,若要加密变长数据,则数据必须先被划分为一些单独的密码块。通常而言,最后一块数据也需要使用合适填充方式将数据扩展到匹配密码块大小的长度。一种工作模式描述了加密每一数据块的过程,并常常使用基于一个通常称为初始化向量的附加输入值以进行随机化,以保证安全[1]。

Electronic Code Book (ECB) (电子密码本)

最简单的加密模式即为电子密码本(Electronic codebook,ECB)模式。需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。

 

Cipher Block Chaining (CBC) 密码块链接

在CBC模式中,每个平文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有平文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。

CBC是最为常用的工作模式。它的主要缺点在于加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍。解决后一个问题的一种方法是利用密文窃取。注意在加密时,平文中的微小改变会导致其后的全部密文块发生改变,而在解密时,从两个邻接的密文块中即可得到一个平文块。因此,解密过程可以被并行化,而解密时,密文中一位的改变只会导致其对应的平文块完全改变和下一个平文块中对应位发生改变,不会影响到其它平文的内容。

 

 

 

 

Output Feedback Mode (OFB) 输出反馈

输出反馈模式(Output feedback, OFB)可以将块密码变成同步的流密码。它产生密钥流的块,然后将其与平文块进行异或,得到密文。与其它流密码一样,密文中一个位的翻转会使平文中同样位置的位也产生翻转。这种特性使得许多错误校正码,例如奇偶校验位,即使在加密前计算而在加密后进行校验也可以得出正确结果。

 

Counter Mode (CTR) 计数器模式

与OFB相似,CTR将块密码变为流密码。它通过递增一个加密计数器以产生连续的密钥流,其中,计数器可以是任意保证长时间不产生重复输出的函数,但使用一个普通的计数器是最简单和最常见的做法。使用简单的、定义好的输入函数是有争议的:批评者认为它“有意的将密码系统暴露在已知的、系统的输入会造成不必要的风险”[18]。目前,CTR已经被广泛的使用了,由输入函数造成的问题被认为是使用的块密码的缺陷,而非CTR模式本身的弱点[19]。无论如何,有一些特别的攻击方法,例如基于使用简单计数器作为输入的硬件差错攻击[20]。

GCM Mode

GCM基于并行化设计,因此可以提供高效的吞吐率和低成本、低时延。本质是消息在变形的CTR模式下加密,密文结果与密钥以及消息长度在GF(2^128)域上相乘,计算流程如下所示。其输入输出和CCM基本一致。

Key Distribution

 

Key Establishment

is the process whereby a shared key becomes available to two or more parties for subsequent

cryptographic use.

Key Management

is the set of processes and mechanisms which support key establishment and the maintenance of

on going key relationships between parties, including replacing older keys with newer ones. Includes:

  • Key agreement
  • Key transport

Diffie-Hellman Key Exchange (迪菲-赫尔曼密钥交换)

迪菲-赫尔曼密钥交换(英语:Diffie–Hellman key exchange,缩写为D-H) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。公钥交换的概念最早由瑞夫·墨克(Ralph C. Merkle)提出,而这个密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie)和马丁·赫尔曼(Martin Edward Hellman)在1976年首次发表。马丁·赫尔曼曾主张这个密钥交换方法,应被称为迪菲-赫尔曼-墨克密钥交换

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください