프로그래밍/SecureProgramming

* Elliptical Curve Digital Signature Algorithm [Step01] 임의의 Eliptic Curve를 선택합니다. [Step02] 임의의 자연수 d를 비밀키로 선택합니다. (Elliptic Curve의 차수 (n)보다 작아야합니다.) [Step03] 비밀키와 Generator Point (G)를 곱해 공개키 Q Point를 생성합니다. [Step04] Elliptic Curve의 차수 (n)보다 작은 임의의 자연수 K를 선택합니다. (Elliptic Curve의 차수 (n)보다 작아야합니다.) [Step05] kG를 계산해 나온 좌표의 x 좌표를 n으로 나눈 나머지를 r이라고 합니다. [Step06] 서명할 메시지를 자연수로 m이라고 가정합니다. [Step07] Hash를..
AESGalois Field GF(p^n) => GF(2^8) 1Byte를 표현하는 0부터 2^8-1 까지의 2^8개의 원소에만 관심을 가짐        GF(2^8)에서 (+) 연산 Galosis Field에서의 덧셈은 역변환이 가능합니다.  GF(2^8)에서 (x) 연산   닫힌 연산으로 만들기 위해, 인수분해가 불가능한 다항식인 x^8 + x^4 + x^3 + x + 1로 나눕니다.     Add round key 변환앞의 Round의 마지막 4Byte를 왼쪽으로 Rotate합니다.sbox를 이용해 치환합니다.해당 Round의 상수값과 XOR합니다.앞 Round의 첫 4Byte와 XOR합니다. AES Encryption & Decryption AES Decryption [0 Round] Messag..
Elliptical Curve Diffie-Hellman EphemeralDHE과 ECDHE 모두 Key를 한번의 접속에만 사용하고 폐기합니다.도청자가 Key를 알아냈다고 하더라도, 그것으로 풀 수 있는 Message는 한번의 접속에만 해당합니다.계산식 => y^2 = x^3 + ax + b / 4a^3 + 27b^2 ≠ 0 [Step 01] 곡선 위의 임의의 점 P, Q를 선택합니다.                     P( x(p), y(p) )     Q( x(q), y(q) ) [Step 02] P, Q를 지나는 직선이 곡선과 만나는 직선을 정의합니다.                     y = sx + d [Step 03] P, Q, R을 지나는 직선의 기울기를 구합니다.             ..
RSA[Step 01] Prime Number인 p, q를 선택하고 K를 계산                     p, q    K = p X q [Step 02] (p−1)과 (q−1)의 LCM인 φ 를 계산합니다.                     φ=LCM((p−1)×(q−1)) [Step 03] φ와 서로소인 소수 e를 암호화키로 결정합니다.                     e [Step 04] 복호화 키인 d를 결정합니다.                     d×e mod φ = 1 [Step 05] Message Encryption & Decryption                Message Encryption =>  c = m^e mod K                Message ..
Modular InverseA X A^-1 ≡ 1 (modC)(A X A^-1) mod C = 1 mod C(A X A^-1) mod C = 1! C와 서로소인 수만 Modular Inverse (mod C)를 가질 수 있음[Step 01] B의 값을 0부터 C-1까지 설정 [Step 02] B값에 대해 A X B mod C 를 계산 [Step 03] A mod C의 Modular Inverse는 A X B mod C = 1 을 만족하는 B의 값임 ex) 3 (mod 7)       3 X 5 ≡ 15 ≡ 1 (mod 7)       B = 5 Fast Modular ExponentiationA^2 mod C = ((A mod C) × (A mod C)) mod C A mod C 의 결과를 이용하여 연산..
DiffieHellmanRFC 7917를 살펴보면 ffdhe2048의 p, g의 값이 명시되어 있습니다.p를 선택할 때, p가 g와 나눠 떨어지면 안됩니다.[Step01] Alice와 Bob이 하나의 Prime Number인 g를 선택합니다. [Step02] Alice와 Bob은 각각 자신의 비밀키로 사용할 임의의 Prime Number를 선택합니다.                 X(alice)    X(bob) [Step03] Alice와 Bob은 각각 공개키를 생성하며 해당 키를 상대에게 전송합니다.                 y(alice)=g^x(alice) mod p     y(bob)=g^x(bob) mod p [Step04] Alice와 Bob은 상대방의 공개키와 자신의 개인키를 이용하여 ..
류가든
'프로그래밍/SecureProgramming' 카테고리의 글 목록