Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Generic attacks

Hash Functions With Proofs of Security For H : {0, 1}∗ →{0, 1}n and h : {0, 1}m →{0, 1}n, m > n

attack rough complexity Lars R. Knudsen √ collisions 2n =2n/2 2nd preimages 2n preimage 2n April 21, 2008 Goal: generic attacks are best (known) attacks

1/30 3/30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Number-theoretic, difficult problems

1 Introduction Factoring: given N = pq, find p and q, where p, q big, (odd) prime numbers, p = q 2 Based on number-theoretic problems Recommended that N ≥ 21024 forhighlevelofsecurity 3 VSH A 1024-bit N: 1350664108659952233496032162788059699388814756056670 4 Dakota 2752448514385152651060485953383394028715057190944179 8207282164471551373680419703964191743046496589274256 2393410208643832021103729587257623585096431105640735 0150818751067659462920556368552947521350085287941637 7328533906109750544334999811150056977236890927563

2/30 4/30 Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Number-theoretic, difficult problems (2) Hash based on discrete log (Pfitzmann, Van Heijst)

Discrete logarithm: p−1 Public primes: p, q = 2 ,s.t.DLP(p)ishard given β = αa mod p, find a, Public primitive elements of Zp: α, β (randomly chosen) ∗ where p prime, a chosen random from Zp−1, α ∈ Zp ∗ h : Zq × Zq → Z primitive p

Recommended that p > 21024 forhighlevelofsecurity h(x, y)=αx βy mod p But not all instances of these problems are hard, e.g., if p  q, then factoring N = pq is easy

if p − 1 has only small prime factores then finding discrete logs Find a collision for h ⇒ compute logα(β) modulo p is easy

5/30 7/30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Hash based on factoring (Shamir) Number-theoretic hash functions

N = pq, p = q,largeoddprimes,α fixed, large order mod N.

Public: N,α most schemes slow, e.g., no real speed-up for use in digital ∗ ∗ H : {0, 1} → ZN signature schemes some schemes have unfortunate algebraic properties H(x)=αx mod N (may interact badly with other public- algorithms) open problem to devise efficient “provably” secure hash function Collision: H(x)=H(x) ⇒ x − x = kφ(N).

With N = pq and φ(N)=(p − 1)(q − 1) easy to find p and q

6/30 8/30 Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Newer constructions Example. Dixon’s algorithm with n =4189 √ 4189  64.7

VSH-VerySmoothHash Use the factor base B = {−1, 2, 3, 5, 7, 11, 13} Contini, Lenstra, Steinfeld, 2005 2 2 xj mod n factorisation of xj aj collision ⇒ nontrivial modular square roots of very smooth 2 2 numbers modulo N (composite) 58 mod n −1 · 3 · 5 · 11 (1, 0, 1, 0, 0, 1, 0) 612 mod n −1 · 22 · 32 · 13 (1, 0, 0, 0, 0, 0, 1) efficient collision finder implies fast factoring algorithm 672 mod n 22 · 3 · 52 (0, 0, 1, 0, 0, 0, 0) LASH - A Lattice Based Hash Function 692 mod n 22 · 11 · 13 (0, 0, 0, 0, 0, 1, 1) Bentahar, Page, Saarinen, Silverman, Smart 2006 742 mod n 32 · 11 · 13 (0, 0, 0, 0, 0, 1, 1) based on the problem of finding small vectors in lattices gcd(58 · 61 · 67 · 69 + ((23) · (32) · (52) · 11 · 13), n)=n; gcd(58 · 61 · 67 · 74 + ((22) · (33) · (52) · 11 · 13), n) = 59;

9/30 11 / 30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Factoring - Equal squares Quadratic and number field sieves

∗ Let n = pq, p = q, odd primes. Let x ∈ Zn 4squarerootsofx2 mod n are x, −x, y, −y mod n where Quadratic sieve, advanced variant of Dixon’s algorithm x = ±y mod n Number field sieve(NFS), advanced variant of quadratic sieve mod n mod p mod q NFS currently best known algorithm for factoring large RSA xzw moduli − − − x z w (0.96+O(1))(ln n)1/3(ln ln n)2/3 yz−w Size of factor base: e − − 1/3 2/3 y zw Running time: e(1.923+O(1))(ln n) (ln ln n)

1/3 2/3 Notation: L[n,α]=e(α+O(1))(ln n) (ln ln n) gcd(x + y, n)=q, gcd(x − y, n)=p, 2 2 1 Find (random) a, b s.t. a = b mod n,factorn with prob. 2

10 / 30 12 / 30 Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

VSH - iterated hash function VSH - security, speed

Let N = pq be a public RSA modulus (p = q,bothsecret) Consider VSH with 1024-bit n, which allows for k = 131 k Let p1,...,pk be public primes such that pi < N i=1 Then assumptions imply ⇒ Let m = m1, m2,...,mk be message, mi ∈{0, 1} a collision for VSH a solution to VSSR

x0 =1 a solution to VSSR as hard as factoring an 840-bit modulus 2 m1 m2 ··· mk x1 = x0 (p1 p2 pk )modN Implementation:  2 k mjk+i - 3 modular mult’s per k bits xj+1 = xj i=1 pi mod N - speed-up from precomputation Hash(m) = x

13 / 30 15 / 30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Security of VSH VSH - problems (?)

VSSR Problem. Let n = pq be a public RSA modulus (p, q c ∗ secret). Let k ≤ (log n) .Findx ∈ Zn such k Algebraic properties, e.g., easy to find messages with hash 2 ei x ≡ pi mod n, values h and 2h i=0 Easy to invert hash for messages of small length where at least one ei is odd. VSH has multiplicative property (Saarinen 2006): VSSR Assumption: The VSSR Problem is hard. ∨ , Computational VSSR Assumption: H(z)H(a b)=H(a)H(b)modn Solving VSSR for n is as hard as to factor an S-bit modulus, where for z the all-zero bit string, a ∧ b = z,and|z| = |a| = |b|. S is least positive integer satisfying L[n, 1.923] Someone must choose n such that p, q remain secret L[2S , 1.923] ≥ . k

,α (α+O(1))(ln n)1/3(ln ln n)2/3 L[n ]=e 14 / 30 16 / 30 Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

VSH - defense Based on factoring (Goldwasser, Micali, Rivest)

Designers of VSH only aim for collision-resistance. N = pq, p = q, large primes, a0, a1 random squares modulo N VSH not to be used as replacement for nor Public: N, a0, a1 SHA-1 “random oracles do not exist in the real world, and therefore relying ∗ ∗ h : {0, 1}×ZN → ZN on them too much is not recommended”

Potential use in schemes which require only 2 h(b, y)=ab y mod N collision-resistance, example, Cramer-Shoup signatures, which relies on strong RSA assumption and collision-resistant hash function Collision gives x, x such that x2 = x2 mod N → factoring One of the best attempts to build hash function on ,..., number-theoretic problem so far.. More efficient variants with more squares a0 ak ,Damg˚ard

17 / 30 19 / 30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

DaKoTa Getting to Dakota

n = pq, p = q, large primes, p ≡ q ≡ 3mod4 DaKoTa, a hash function co-designed by Damg˚ard, Ivan B. Public: n, f Knudsen, Lars R. h : {0, 1}×SQ(n) → SQ(n) Thomsen, Søren S. Uses combination of modular arithmetic and symmetric crypto f : {0, 1}→SQ(n)

h(b, y)=f (b) y 2 mod n

18 / 30 20 / 30 Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Getting closer to Dakota Arriving at Dakota

n = pq, p = q, large primes, p ≡ q ≡ 3mod4 n = pq, p = q, large primes, p ≡ q ≡ 3mod4

Public: n, f Public: n, f

h : {0, 1}k × SQ(n) → SQ(n) h : {0, 1}k × SQ(n) → SQ(n)

k k f : {0, 1} → SQ(n) f : {0, 1} → Zn

h(x, y)=f (x) y 2 mod n h(x, y)=(f (x) y)2 mod n

21 / 30 23 / 30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Getting even closer to Dakota Dakota- an iterated hash function

n = pq, p ≡ q ≡ 3mod4, public: n, f

k k h : {0, 1} × SQ(n) → SQ(n) f : {0, 1} → Zn n = pq, p = q, large primes, p ≡ q ≡ 3mod4 h(x, y)=(f (x) y)2 mod n Public: n, f ∗ 2 Choose r ∈ Zn,lets = r mod n h : {0, 1}k × SQ(n) → SQ(n) Split padded message x into k-bit words, x1,...,xt k f : {0, 1} → Zn Set y0 = s, then compute 2 2 2 h(x, y)=f (x) y mod n yi = h(xi , yi−1)=(f (xi )y) mod n

Hash of x is then yt . 22 / 30 24 / 30 Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Dakota- an iterated hash function Dakota-Proposal1forf h(x, y)=(f (x)y)2 mod n h(x, y)=(f (x)y)2 mod n

k f : {0, 1} → Zn Assumption  Consider probabilistic polynomial time algorithm with input f , n, Let n and n be 1025-bit resp. 1024-bit RSA moduli and output x, x˜, z. Probability is negligible that Let k = 1022 x =˜ xandf(x)/f (˜x)=±z2 mod n Let u = x2 mod n,wherex < n/2

Let v = Eκ1 (u)=v1 |···|v8,whereE is CBC Theorem using AES Hash function H is collision intractable under Assumption Let f (x)=Eκ2 (v8 |···|v1) find collision with prob  → break Assumption with prob /2. f is one-way, collision-resistant 25 / 30 27 / 30

Introduction Based on number-theoretic problems VSH Dakota Introduction Based on number-theoretic problems VSH Dakota

Dakota- Assumption h(x, y)=(f (x)y)2 mod n Dakota-Proposal2forf h(x, y)=(f (x)y)2 mod n

Assumption f : {0, 1}k →{0, 1}k Consider probabilistic polynomial time algorithm with input f , n, and output x, x˜, z. Probability is negligible that Let n be 1025-bit RSA-modulus, let k = 1024 x =˜ xandf(x)/f (˜x)=±z2 mod n f (x)=g(x) ⊕ x,whereg is permutation of 1024 bits

proposal for g: f must be one-way: choose z, x˜,computex tranform x into 8 × 8 matrix A with 16-bit values

f must be coll. resistant: find collision for f ,letz =1 Do 4 times A ← E(A)T , no circular argument?, since f does (need to) not compress where E is AES encryption (fixed key) of every column

26 / 30 28 / 30 Introduction Based on number-theoretic problems VSH Dakota

Dakota- Performance

Hash function Approximate speed (cycles/byte) 32-bit 64-bit SHA-256 20 20 VSH 840 ? Dakota (Proposal 1) 385 170 Dakota (Proposal 2) 330 170

29 / 30

Introduction Based on number-theoretic problems VSH Dakota

Concluding remarks

1980s: Hash functions based on block ciphers 1990s: Dedicated, faster hash functions (Rivest-kickoff) Many broken based hash function proposals 2000s: Many dedicated schemes have been broken in later years Many new constructions

Renaissance of block cipher based proposals

Renaissance of constructions with proofs of security

SHA-3, likely to become “big SHA-1”, speed issue

30 / 30