Cipher Techniques
Chapter 12
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-1
Cipher Techniques Chapter 12 Computer Security: Art and Science , 2 - - PowerPoint PPT Presentation
Cipher Techniques Chapter 12 Computer Security: Art and Science , 2 nd Edition Version 1.0 Slide 12-1 Overview Problems What can go wrong if you naively use ciphers Cipher types Stream or block ciphers? Networks Link vs
Chapter 12
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-1
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-2
environment, in which cipher will be used
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-3
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-4
BUY, or enciphered SELL
m1 = { BUY } eBob, m2 = { SELL } eBob
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-5
such plaintexts
small enough for precomputation attacks
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-6
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-7
intended order; then sign each block
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-8
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-9
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-10
Alice Bob n || Alice || Bob || { r1 || n || Alice || Bob } kA Cathy Bob n || Alice || Bob || { r1 || n || Alice || Bob } kA || { r2 || n || Alice || Bob } kB Cathy Bob n || { r1 || ks } kA || { r2 || ks } kB Alice Bob n || { r1 || ks } kA
kB
knows this
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-11
what the component is
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-12
enough to be secure
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-13
cycle of k1k2 …
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-14
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-15
m = 00101 k = 10010 c = 10111
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-16
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-17
r0 rn–1 … mi … … Å ci r0´ rn–1´ … ri´ = ri–1, 0 < i ≤ n r0t0 + … + rn–1tn–1
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-18
ri ith bit of register ti ith bit of tap sequence mi ith bit of message ci ith bit of ciphertext
r ki new bit computation new r 0010 01Å00Å10Å01 = 0 0001 0001 1 01Å00Å00Å11 = 1 1000 1000 11Å00Å00Å01 = 1 1100 1100 11Å10Å00Å01 = 1 1110 1110 11Å10Å10Å01 = 1 1111 1111 1 11Å10Å10Å11 = 0 0111 1110 11Å10Å10Å11 = 1 1011
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-19
Note same operation as LFSR but more general bit replacement function
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-20
r ki new bit computation new r 1100 (1 & 0) | 0 = 0 0110 0110 (0 & 1) | 0 = 0 0011 0011 1 (0 & 1) | 1 = 1 1001 1001 1 (1 & 0) | 1 = 1 1100 1100 (1 & 0) | 0 = 0 0110 0110 (0 & 1) | 0 = 0 0011 0011 1 (0 & 1) | 1 = 1 1001
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-21
message enciphered
a register
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-22
XTHEBOYHASTHEBA
THEBOYHASTHEBAG
QALFPNFHSLALFCT
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-23
XQXBCQOVVNGNRTT
THEBOYHASTHEBAG
QXBCQOVVNGNRTTM
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-24
incorrectly; but after that, the ciphertext bits decipher correctly
k Ek(r) r … E … Å mi ci
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-25
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-26
then encipher
where I is the initialization vector
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-27
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-28
authentication simultaneously
encrypted
length 0
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-29
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-30
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-31
16-octet blocks, with 0 padding if needed
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-32
x1 = Ek(B0) xi+1 = Ek(xi ⊕ Bi) for i = 1, . . ., m
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-33
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-34
Phase 2:
Phase 3:
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-35
that computed T is incorrect
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-36
value can be computed with cost proportional to number of changed bits
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-37
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-38
/* multiply X and Y to produce Z in GF (2128 ) */ function GFmultiply(X, Y: integer ) begin Z := 0 V := X; for i := 0 to 127 do begin if Yi = 1 then Z := Z ⊕ V; V = rightshift(V, 1); if V127 = 1 then V := V ⊕ R; end return Z; end
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-39
Y, so Y127 is the rightmost bit of Y
to shift V right 1 bit, and bring in 0 from the left
followed by 120 0 bits
GHASH(H, A, C) computed as follows: 1. X0 = 0 2. for i = 1, . . ., m–1, Xi = (Xi–1 ⊕ Ai) · H 3. Xm = (Xm–1 ⊕ Am) · H
4. for i = m+1, . . ., m+n–1, Xi = (Xi–1 ⊕ Ci) · H 5. Xm+n = (Xm+n–1 ⊕ Cn) · H
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-40
This computes C and T: 1. H = Ek(0128) 2. If IV is 96 bits, Y0 = IV || 0311; otherwise, Y0 = GHASH(H, !, IV)
3. for i = 1, . . . n, Ii = Ii-1 + 1 mod 232; set Yi = Li-1 || Ii
4. for i = 1, . . . n–1, Ci = Mi + Ek(Yi) 5. Cn = Mn + MSBu(Ek(Yn))
6. T = MSBt(GHASH(H, A, C) + Ek(Y0))
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-41
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-42
Strength depends on certain properties
from that, H can be determined (enabling undetectable forgeries)
easier
than when the length is not restricted
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-43
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-44
Physical Data Link Network Transport Session Presentation Application Physical Data Link Network Physical Data Link Network Transport Session Presentation Application
Link Protocol End-to-End (or E2E) Protocol
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-45
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-46
decipherment occur only at these hosts
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-47
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-48
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-49
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-50
MTA UA MTA UA MTA UA User Agents Message Transfer Agents
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-51
1. Confidentiality
2. Origin authentication
3. Data integrity
4. Non-repudiation of origin
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-52
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-53
messages)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-54
Alice Bob { m } ks || { ks } kB
Confidentiality
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-55
Alice Bob m { h(m) } kA
Integrity and authentication:
Non-repudiation: if kA is Alice’s private key, this establishes that Alice’s private key was used to sign the message
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-56
Alice Bob { m } ks || { h(m) } kA || { ks } kB
Confidentiality, integrity, authentication:
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-57
– Format meets SMTP requirements
needed
character
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-58
end of line character
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-59
MD2, MD5 as hash functions
tagged “binary”
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-60
secrecy
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-61
installed; when the list is used up, another list is generated
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-62
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-63
Symmetric key generation:
First stage:
k = HMAC_SHA256(s, x) Second stage:
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-64
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-65
SSPKAlice = {SPKpub,Alice } IKpriv,Alice
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-66
Alice W { IKpub,Alice || SPKpub,Alice || SSPKAlice || OPKpub,Alice,1 || OPKpub,Alice,2 || . . . } where OPKpub,Alice,1, OPKpub,Alice,2, . . . are the ephemeral one-time pre-key public keys
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-67
Alice W message requesting Bob’s pre-key bundle Alice W { IKpub,Bob || SPKpub,Bob || SSPKBob || OPKpub,Bob,I }
ms = ECDH(IKpriv,Alice, SPKpub,Bob) || ECDH(EKpriv,Alice, IKpub,Bob) || ECDH(EKpriv,Alice, SPKpub,Bob) || ECDH(EKpriv,Alice, OPKpub,Bob,i)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-68
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-69
mode for encryption and HMAC_SHA256 for authentication
was used
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-70
Alice Bob { IKpub,Alice || EKpub,Alice || pre-key indicator || C }
private keys and Alice’s public keys
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-71
a hash ratchet to change message key for each message: km,i+1 = HMAC_SHA256(kc,i, 1) kc,i+1 = HMAC_SHA256(kc,i, 2)
key: x = HKDF(kr, ECDH(EKpub,Bob, EKpriv,Alice)) where EKpub,Bob in received message, EKpriv,Alice private key associated with EKpub,Alice that Alice sent in message Bob is replying to
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-72
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-73
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-74
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-75
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-76
TLS Record Protocol TLS Handshake Protocol TLS Change Cipher Spec Protocol TLS Alert Protocol TLS Application Data Protocol
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-77
TLS Heartbeat Extension
cryptographic checksums
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-78
parameters
Diffie-Hellman
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-79
HMAC_hash(secret || A(2) || seed) || HMAC_hash(secret || A(3) || seed) || …
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-80
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-81
hash(MAC_ws, seq || TLS_comp || TLS_vers || TLS_len || block)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-82
Message Compressed blocks Compressed blocks, enciphered, with MAC MAC
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-83
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-84
cryptosystem
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-85
1. Create TLS connection between client, server 2. Server authenticates itself 3. Client validates server, begins key exchange 4. Acknowledgments all around
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-86
Server { vC || r1 || s1 || ciphers || comps || extC }
Server { v || r2 || s2 || cipher || comp || ext}
vC Client’s version of SSL v Highest version of SSL that client, server both understand r1, r2 nonces (timestamp and 28 random bytes) s1 Current session id (empty if new session) s2 Current session id (if s1 empty, new session id) ciphers Ciphers that client understands comps Compression algorithms that client understand cipher Cipher to be used comp Compression algorithm to be used extC List of extensions client supports ext List of extensions server supports (subset of extC)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-87
Server { certificate chain } If server not going to authenticate itself, only last message sent Second step is for Diffie-Hellman with RSA certificate Third step omitted if server does not need client certificate KS, kS Server’s Diffie-Hellman public, private keys ctype Certificate type accepted (by cryptosystem) sigalgs List of hash, signature algorithm pairs server can use gca Acceptable certification authorities
Server { p || g || KS || { h(r1 || r2 || p || g || KS) } kS }
Server {ctype || sigalgs || gca }
Server { server_hello_done }
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-88
Server { pre } KS pre Premaster secret KS Server’s public key kC Client’s private key
Server { hash(all previous messages) } kC
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-89
Server { client_certificate }
Server
{ PRF(master || “client finished” || hash(all previous messages) } change_cipher_spec
Server
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-90
Server
{ PRF(master || “server finished” || hash(all previous messages) } change_cipher_spec
Server change_cipher_spec Begin using cipher specified
received
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-91
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-92
response is received
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-93
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-94
master = MD5(premaster || SHA(‘A’ || premaster || r1 || r2) || MD5(premaster || SHA(‘BB’ || premaster || r1 || r2) || MD5(premaster || SHA(‘CCC’ || premaster || r1 || r2)
key_block = MD5(master || SHA(‘A’ || master || r1 || r2) || MD5(master || SHA(‘BB’ || master || r1 || r2) || MD5(master || SHA(‘CCC’ || master || r1 || r2) || . . .
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-95
MAC for each block computed differently: hash(MAC_ws || opad || hash(MAC_ws || ipad || seq || SSL_comp || SSL_len || block))
changes)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-96
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-97
9’. Client Server { hash(master || opad || hash(all previous messages || master || ipad)) } 11’. Client Server { hash(master || opad || hash(all previous messages || 0x434C4E54 || master || ipad)) } 13’. Client Server { hash(master || opad || hash(all previous messages || 0x53525652 || master || ipad)) }
Department of Defense
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-98
checked
the number of bytes of random padding (b – 1)
number of random bytes (so if block is b – 1 bytes, one padding byte added and it is 0)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-99
initialization vector
bytes
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-100
GET / HT TP/1.1\r\n Cookie: abcdefgh \r\n\r\nxxxx MAC •••••••7
last block
ends in 7
December 9, 2014 ECS235A, Lecture 18 101
accepting messages
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-102
detection
dest gw2 gw1 src IP IP+IPsec IP security gateway
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-103
encrypted data body IP header
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-104
encrypted IP header IP header
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-105
encrypted data body
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-106
message unchanged)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-107
src 192.168.2.9, dest 10.1.2.3 to 10.1.2.103, port 25, discard src 192.168.19.7, dest 10.1.2.3 to 10.1.2.103, port 25, bypass dest 10.1.2.3 to 10.1.2.103, port 25, apply IPsec
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-108
(security parameter index, or SPI)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-109
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-110
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-111
destination addresses and ports, protocol, etc.
match on SPI, destination address; if none, use just SPI or both SPI, protocol; if none, discard packet
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-112
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-113
secret from other people in A.org and B.org
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-114
hostA.A.org gwA.A.org gwB.B.org hostB.B.org SA in tunnel mode (outer tunnel) SA in tunnel mode (inner tunnel)
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-115
enciphered and authenticated, etc.
IP header from hostA Transport layer headers, data ESP header from hostA AH header from hostA IP header from hostA ESP header from gwA AH header from gwA IP header from gwA
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-116
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-117
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-118
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-119
…
current window
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-120
(October 2017) unacceptable
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-121
cipher, for example
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-122
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-123
SA in SAD
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-124
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-125
may not be decipherable
implementations of symmetric systems
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-126
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-127
use that
channels as well as connections
layer mechanism such as PGP or Signal needed
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-128
Version 1.0 Computer Security: Art and Science, 2nd Edition Slide 12-129