일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- generic class
- dfs
- 코딩테스트
- Java
- spring
- MVC
- 알고리즘
- 공개키 암호화
- 암호학
- dbms
- 자바의정석
- 자료구조
- JPA
- Queue
- DB
- 크루스칼
- python
- sql
- javascript
- cloud computing
- BFS
- Algorithm
- Stack
- jsp
- JDBC
- 클라우드 컴퓨팅
- 가상컴퓨팅
- 생성자
- 코테
- data structure
- Today
- Total
목록분류 전체보기 (128)
PLOD
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 -..
접근 지정자는 접근 제어자라고도 불리며, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다. 클래스나 멤버에서 접근 제어자를 사용하는 이유는 클래스의 내부에 선언된 데이터를 보호하기 위해서이다. 데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를 외부에서 함부로 접근하지 못하도록 하기 위해서는 외부로부터 접근을 제한하는 것이 필요하다. 이것을 데이터 감추기(data hiding)이라고 하고 OOP에서 캡슐화에 해당한다. 자바의 접근 지정자는 클래스 내에서 멤버의 접근을 제한하는 역할을 한다. 접근지정자의 종류는 private , public, protected, default가 있다. 한정자 클래스 내부 동일 패키지 하위 클래스 그 외의 영역 public ● ● ●..
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를 이용하게 되면 가중치가 없다는 가정 하에 처음 방문한 노드들의 집합이 최단 경로가 없다.최대한 넓게 ..