일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MVC
- spring
- data structure
- Java
- BFS
- generic class
- JPA
- 암호학
- sql
- dbms
- 알고리즘
- javascript
- DB
- python
- Stack
- 코딩테스트
- Algorithm
- 크루스칼
- Queue
- 공개키 암호화
- 클라우드 컴퓨팅
- 가상컴퓨팅
- cloud computing
- dfs
- 자료구조
- 코테
- jsp
- 자바의정석
- JDBC
- 생성자
- Today
- Total
목록computer science (34)
PLOD
1. Hash의 정의 Hash : 단방향 암호화 기법이다. 해시 알고리즘은 SHA-256, SHA-512를 사용한다. 또 해시 알고리즘은 특정 입력에 대해 항상 같은 해시 값을 return 한다. * pigeonhole principle(비둘기 집의 원리) :n+1 마리 이상의 비둘기를 n개의 집에 넣으려고 할 때, 적어도 하나의 집에는 두 마리 이상의 비둘기가 들어가게 된다. 이를 Hash Crypto에 적용해 보면, M -> h(M) = h(M’) 2^32번 계산을 하면 중복되는 해시값이 50%가 넘는다 . -> 중복되는 Hash 값을 통해 birthday attack 가 발생함 *Dictionary Attack 원문에 대해 미리 계산된 해시값들을 모아서 사전 형태로 만들고 대입해보는 공격방법. 공격..
diffie-hellman은 수학적 난제(Discrete Log Problem)를 기반으로 한 암호화 알고리즘이다. diffie - hellman 알고리즘은 상대방의 공개키와 나의 개인키를 이용해 둘만의 세션키를 만드는 것이다. g와 p 값 그리고 g^k mod p을 알때 g의 지수인 k를 구하는 것이다. 1) Alice는 k를 4를 고르고 bob은 k를 3을 고른다.(k is secret) 2)Alice와 Bob은 각자의 k를 통해 결과값을 구한다(5,8) 3) 결과값을 Alice와 Bob에게 전송 4)Alice와 Bob은 각자의 k로 한번더 계산하여 같은 값을 얻을 수 있음 diffie-hellman의 특징 1. 개체 인증기능을 제공하지 않는다.(Authenticate Fail) 2. 키교환 문제를 ..
1. public key cryptography(공개키 암호화) 비대칭키 암호화 라고도 한다.암호화와 복호화에 동일한 알고리즘을 사용한다. .public key로 암호화를 하고 private key로 복호화를 한다. public key(공개키)를 통해 암호화 하기 때문에 키 교환을 할 필요가 없다. private key(비밀키)는 비밀로 유지한다. 2. 공개키 암호화 알고리즘을 사용하는 이유(Digital Signature(private key)) 1) Confidentiality(기밀성) 2) Authentication(인증) 3) Non-repudiation(부인 방지) RSA public key가 (N,e) 비밀키가 d라고 가정해보자 RSA에서 비밀키 d를 이루는 p,q는 아주 큰 소수로 정한다. ..
"x mod n" Modulo Operation(모듈로 연산) : 어떤 한 숫자를 다른 숫자로 나눈 나머지(mod)를 구하는 연산으로, 나머지 연산이라고 한다. 모듈로 연산을 사용 하기 위해서는 나누는 수와 나누어지는 수가 서로 Relative Primality(서로소) 관계여야 한다. 모듈로 연산을 사용한 Modular Arithmetic(Clock Arithmetic)은 공개키 암호화 알고리즘의 시초이다. 정수 X와 n 이 주어졌을때, x mod n 은 컴퓨터 연산에서 x % n 과 같다. 즉 , 모듈로 연산은 x를 n으로 나눈 나머지를 구하는 연산이다. ex.1) 14 mod 3 = 2 mod 3(14 mod 3과 2 mod 3은 나머지가 같다) ex.2) -2 mod 6 = 4 mod 6( 6 -..
Graph그래프는 정점(데이터)과 간선(데이터 간의 거리)으로 이루어진 자료구조이다. 그래프는 BFS,DFS 같은 순회 알고리즘과 Djikstra 같은 최소경로알고리즘을 구현할 때 알아야 될 필수 자료구조이다.그래프는 정점(vertex,node)와 노선인 간선(edge)으로 이루어져 있다. 그래프는 간선의 방향성을 기준으로 나뉜다.그래프는 방향 그래프(Directed graph)와 무방향 그래프(Undirected graph : 양방향 그래프)가 있다. 그래프는 순환성을 기준으로 나눌 수도 있다. 순환 그래프와 비순환 그래프가 있다.인접 행렬을 통해서 그래프를 만들기인접 행렬2차원 배열을 사용하여 그래프의 정점들 간의 연결 관계를 표현행렬의 (i, j)위치에 간선의 유무를 나타내며,무방향 그래프의 경우 ..
1. BFS(Breadth - First -Search) : 너비우선탐색https://www.codecademy.com/article/tree-traversal Tree Traversal: Breadth-First Search vs Depth-First Search | CodecademyLearn about two standard tree traversal algorithms: breadth-first search and depth-first search.www.codecademy.com 시작 노드에서 인접 노드를 모두 방문하고 방문한 노드에서 인접 노드를 모두 방문하는 것을 반복하게 된다. BFS를 이용하게 되면 가중치가 없다는 가정 하에 처음 방문한 노드들의 집합이 최단 경로가 없다.최대한 넓게 ..