15
Juno [u∶no∶] draw passwords 연세대학교 수학과 설진석

Project Juno: Draw passwords!

Embed Size (px)

Citation preview

Page 1: Project Juno: Draw passwords!

Juno [u∶no∶]draw passwords

연세대학교 수학과 설진석

Page 2: Project Juno: Draw passwords!

Abstract• alternative cryptographic hash function

• image based

• using Life-Like Cellular Automata

• algorithm development

Page 3: Project Juno: Draw passwords!

Preliminaries• Classical Mathematics

• Automata Theory

Page 4: Project Juno: Draw passwords!

Cryptographic Hash Function

• given a function f: X → H, H = L(\w{n})

• f is called cryptographic hash function if

• Pa, b ∈ X (f(a)=f(b)) ≦ p

• for ∀h ∈ H, “answering f -1(h)” is a NP-problem

• where

• X : given set

• p : desired probability

• n : natural number

Page 5: Project Juno: Draw passwords!

Cellular Automata• In n dimensional grid, given a

• S : set of states

• T : transition rule

• B : neighbor

• Each cell’s next state is determined by current state of the cell and neighbor applied by transition rule.

Page 6: Project Juno: Draw passwords!

one-dimensional CA example

• each row denotes step

• each column denotes cell’s state history

Page 7: Project Juno: Draw passwords!

Life-Like Cellular Automata

• In two-dimensional grid

• S : “alive” or “dead”

• T : “survive”, “birth”, or “death” determined by number of “alive” cells in neighbor

• B : Moore neighborhood (adjacent 8 cells)

Page 8: Project Juno: Draw passwords!

LLCA example: Conway’s Game of Life

• rule string B3/S23

• A cell survives if 2 or 3 neighbor is alive, and births if 2 neighbor is alive. Otherwise, it dies.

Page 9: Project Juno: Draw passwords!

Object• drawing password, rather than inserting string

• using LLCA as cryptographic hash function

Page 10: Project Juno: Draw passwords!

Algorithm

Raw Drawing Simplify Hash via LLCA

Encode

Page 11: Project Juno: Draw passwords!

Encoding1 0 0 00 1 1 00 0 0 10 0 0 11 1 0 1

Original Binary

8611d

Hex

8611dResult

fixed sized image = fixed sized string

Page 12: Project Juno: Draw passwords!

LLCA as Hash?• LLCA is a function

• CA itself is a deterministic

• inverse LLCA is NP

• checking answer is P

• using “number of live neighbors”, so inverse can be calculated with non-deterministic turing machine

Page 13: Project Juno: Draw passwords!

Limitations• sparse initial state generates sparse output

• requires minimum alive cells to be meaningful value

• infeasible to control or calculate collision probability p

Page 14: Project Juno: Draw passwords!

Benefits and Applications• At least, it is valid cryptographic hash function

• Calculation can be parallelized

• Easy to control complexity

• changing rule string

• terminating condition

• Can be used for signature authentication, or fingerprints

Page 15: Project Juno: Draw passwords!

Implementation

• Using coffee-script based LLCA library “Plasmid”

• http://nyamukoong.github.io/plasmid/

• Result: https://theeluwin.kr/juno/