<키 생성>
- 서로 다른 임의의 두 소수 p,q를 선택 ( p,q는 클수록 암호화의 안정성이 높아짐)
- n = p*q 두 수를 곱하여 n 을 생성
- 오일러 파이 함수값을 구함 -> (p-1)*(q-1)
. 오일러 파이 함수 : 1 ~n-1 에서 파라미터 N 과 서로소인 정수들의 개수
. 파라미터 N 이 소수라면 result = n-1
. 파라미터 N 이 소수 p,q 의 곱이라면 result = (p-1) * (q-1) - 오파값 ( (p-1) * (q-1) )과 서로소인 e 를 고름 <- 공개 키 ( 1 < e < n-1 ) 주로 0x10001 ( 65537 )
- (e*d)mod오파값 = 1 이 되는 d 를 고름 <- 개인 키 ( 1 < d < 오파값-1 )
- why modulus ? mod를 통해 결과 값을 알기는 쉬우나 결과 값만 주어졌을 때 원래의 값을 찾기 어렵게 함으로써 역방향으로 찾기 힘들게 함.
개인 키 ( n , d ) 공개 키 ( n , e)
<암호화>
C = M ^ e ( mod n ) 공개 키 사용
<복호화>
M = C ^ d( mod n ) 개인 키 사용
-
UI ( Vue.js )
- Session Login
- Add partition , object
- Object attribute map setting
- Show object detail attribute information and permission
- Object Generate
- for each algorithm parameter.
- Object Export
- Object Delete
- Object Modify
- Object En/Decrypt
- for each algorithm parameter.
- Object Sign
- for each algorithm parameter.
- Unicode <-> Hex <-> Base64 converter
- Show Loading processing until backend api over
-
BackEnd ( Gin gonic - golang )
-
Development mocking unit test
- Post
- Modify
- En/Decrypt
- Sign
- Get
- Object List
- Object Detail
- Partition list
- Post
-
Production
- Generate Object
- Modify Object
- Sign / verify
-