# hash function

16개의 포스트
post-thumbnail

Hashing

Hashing Hash Table이란? 해시 알고리즘을 위한 자료구조 key와 value로 저장되며 빠른 검색 속도를 제공 hash function을 이용하여 만들어진 해시 주소를 테이블의 index로 사용하며, 이 index를 통해 자료 저장, 접근 진행 hash table Hash function이란? 데이터의 효율적인 관리를 목적으로 키 값을 hash table의 주소로 변환하는 함수 설계 주의 사항 충돌이 적어야함 해시 함수의 값이 테이블 주소 영역 내에 고르게 분포 계산이 빨라야 함 주로 사용하는 해시 함수 제산 함수: 나머지 연산자를 사용해 나머지를 해시 주소로 사용 폴딩 함수: 키를 여러 부분으로 나누어 더하거

2023년 8월 29일
·
0개의 댓글
·
post-thumbnail

자료구조 정리8 : Hash Tables

해시 테이블 해시 맵이라고도 한다. 매우 자주 사용되는 것들 많은 프로그래밍 언어에 해시 테이블이 내장되어 있다. 배열처럼. 내장되어 있지만 원리를 공부하기 위해 직접 코딩해본다. 해시 알고리즘에 대해서도 공부 해시 테이블에서 충돌이 어떤 의미인지 어떻게 해결하는지 Hash table이란 해시 테이블은 key-value 쌍을 저장하는데 사용된다 해시 테이블의 키는 순서를 가지지 않음. 배열은 인덱스가 0에서 시작하지만 해시 테이블은 아니다 해시 테이블의 장점은 값을 찾거나, 새로운 값을 추가,제거하는데 매우 빠르다 모든 것이 매우 빠름 일반적으로 연속적인 흐름이 있는 데이터가 있다면 배열을 사용하면 된다 그러나 그렇지 않은 데이터는 해시 테이블을 사용한다 여러 프로그래밍 언어에서의 내장 해시 테이블 명칭 Python - Dictionaries JavaScript - Object, Maps Java - Maps Go - Maps -

2023년 4월 4일
·
0개의 댓글
·

BCRYPT HASH

What is bcrypt hash? > ### Hash function bcrypt hash는 Hash function의 일종이다. Hash function은 암호화를 할 때 주로 사용하는 함수인데, 암호화하고자 하는 대상을 인자로 복잡한 함수를 돌리고, 함수에서 나온 결과물을 사용하는 방법이다. 예컨데 다음과 같다. > 우리의 소원은 통일이라니,,,몇 년 전 자료인지 궁금하다. **Hash functi

2022년 10월 13일
·
0개의 댓글
·

Java :: Collection :: Hasing

Java의 정석 3판을 보며 공부한 내용을 정리하였습니다. 남궁성님께 많이 배우고 있습니다. 해싱과 해싱함수 >해싱(Hashing)이란 해시함수(hash function)를 이용해서 데이터를 해시테이블(hash table)에 저장하고 검색하는 기법이다. 해시함수는 다량의 데이터 중에서도 원하는 데이터를 빠르게 찾을 수 있다. 해싱을 구현한 클래스로는 HashSet, HashMap, HashTable 등이 있다. Hashtable은 컬렉션 프레임웍이 도입되면서 HashMap으로 대체되었으나, 이전 소스와의 호환성 문제로 남겨둔 것이다. (가능하면 Hashtable 대신 HashMap을 사용하자!) > 해싱에서 사용하는 자료구조는 다음과 같이 배열과 링크드 리스트의 조합으로 되어 있다. ![배열과 링크드

2022년 9월 18일
·
0개의 댓글
·
post-thumbnail

[Cryptography(암호학)] 4주차-Message Authentication Codes

본 포스팅은 Coursera | Cryptography - Jonathan Katz 강의를 수강하며 정리했습니다. 1-1 Message Integrity Cryptography 4주차 강의정리를 시작하겠습니다. 지난 시간에 PRF(Pseudorandom function)에 대해 살펴보며 key를 굳이 한 번만 사용하지 않더라도 동일한 메시지에 서로 다른 암호화 결과값이 나오는 암호화 scheme을 살펴봤습니다. 대표적인 block cipher의 한 종류로 AES의 여러 운용모델을 비교하며, CCA로부터 안전한지에 대해서도 공부했습니다. 1. Secrecy vs integrity 지금까지 공부한 암호화 scheme들은 message 자체가 알맞은 암호화 과정을 거쳐 잘 암호화되었는지에 대해 초점을 맞췄습니다. 공격 모델 또한 공격자에게 key를 유추할 수 없도록

2022년 8월 8일
·
1개의 댓글
·
post-thumbnail

[DB] 비밀번호를 암호화하여 안전하게 저장하기

우리가 비밀번호를 잊어버렸을 때 크게 2가지 방법으로 계정에 재접근 가능하도록 한다. 비밀번호 재발급 비밀번호 찾기(까먹은 비밀번호 자체를 찾음) 현재 대부분의 사이트에서는 1번 방법인 비밀번호 재발급을 하여 비밀번호를 재설정 후 계정에 재접근할 수 있도록 한다. 비밀번호를 알려주면 편할텐데 왜 굳이 재발급을 받도록하는 것일까? 비밀번호 저장 방법이 다르므로 계정에 재접근하는 방식이 다르다. 비밀번호 재발급 → 단방향 해시함수(one-way hash function)의 다이제스트(digest)된 방식으로 암호 저장 비밀번호 찾기 → 단순 텍스트(Plain Text)로 암호 저장 이러한 암호 저장 방식의 차이가 계정 재접근 방법의 차이를 부른다. 📜 단순 텍스트(Plain Text) 만약에 daisy@naver.com이라는 이메일을 가진 유저가 회원가입을 할 때 비밀번호를 asdf라고 설정했다고 가정해보자. 이럴 경우,

2022년 6월 24일
·
0개의 댓글
·

[Cryptography 5.] Hash function에 대하여

앞서 살펴본 ECDSA에서 random curve를 generate하는 과정에 hash function이 사용됐습니다. 그리고 메시지를 서명하는 과정에서도 hash function이 사용됐습니다. Hash function은 임의의 길이의 입력 데이터를 고정된 길이의 데이터로 mapping하는 함수입니다. Hash function은 출력 데이터로부터 입력 데이터를 알아낼 수 없다는 특성 때문에 암호학에서 매우 중요하게 사용됩니다. 이번 포스트에서는 Cryptographic hash function이 왜 필요한지, 그리고 hash function의 대표적인 예시인 MD5, SHA 알고리즘이 어떻게 설계되었는지 알아보겠습니다. Hash function의 필요성 Hash function은 주로 무결성을 검증하는 것에 사용됩니다. 입력 데이터의 극히 작은 부분만 바꾸어도 Avalanche Effect에 의하여 최종 결과값은 큰 차이를 보이게 됩니다. 따라서 위조, 변조가 불가능하게

2022년 6월 17일
·
0개의 댓글
·
post-thumbnail

Hash Table

정의 Hash Function을 이용하여 변환한 Hash를 Index로 삼아 Key와 Value를 저장하는 자료 구조 특징 저장, 삭제, 검색 과정은 평균적으로 O(1)의 시간복잡도를 가진다. Hash collision(해시 충돌)의 가능성이 있으며 Hash Function의 의존도가 높다. Hash collision이 발생한다면 모든 index를 찾아야 하기 때문에 O(n)의 시간복잡도를 가진다. Hash Function이 복잡하다면 Hash를 만드는데 많은 시간이 소요 대표적인 Hash Algorithm Division Method : Number Type의 키를 저장소의 크기로 나눈 나머지를 이용해 in

2022년 6월 8일
·
0개의 댓글
·
post-thumbnail

[Leetcode]187. Repeated DNA Sequences

📄 Description The DNA sequence is composed of a series of nucleotides abbreviated as 'A', 'C', 'G', and 'T'. For example, "ACGAATTCCG" is a DNA sequence. When studying DNA, it is useful to identify repeated sequences within the DNA. Given a string s that represents a DNA sequence, return all the 10-letter-long sequences (substrings) that occur more than o

2022년 5월 19일
·
0개의 댓글
·
post-thumbnail

Hash Table(1) - 해시테이블/해시함수/해시충돌

0. Hash Table 해시테이블은 키와 값이 하나의 쌍을 이루는 추상자료형이며, 키를 빠르게 저장하고 검색할 수 있는 테이블 형태의 자료구조이다. 결과적으로, 키를 활용하여 값에 직접 접근이 가능한 구조이다. 0.0. Hash 해시는 해시 함수를 통해 나온 값이다. > 해시함수 : 여러 키를 각각의 해시값으로 매칭시키는 역할의 함수 0.1. Hashing 해싱이란, 키와 값을 매핑(mapping)시키는 과정이다. 해싱의 목적은 '검색'인데, 쉽게 말해 다 흩뜨려 놓고, 키와 매칭되는 값을 검색하는 과정이다. 따라서, 해시테이블은 검색 알고리즘의 역할도 한다. 또한, 해싱은 데이터 양에 영향을 덜 받으며 빠른 성능을 보인다. > - 빠른 탐색 빠른 삽입

2021년 12월 1일
·
0개의 댓글
·
post-thumbnail

#Hash #HashTable #HashCollision

Hash 데이터를 다루는 기법 중 하나이다. 우리는 이미 해시라는 단어에 익숙하다. 인스타그램의 '해시태그' 기능 역시 해시 기법을 이용하여 게시물들을 구분하는 것이다. 아래처럼 #맛집 이라고 검색하게 되면, #맛집이라는 해시태그가 달려있는 게시물들이 한 뭉탱이로 묶여서 보여지게 된다. '#맛집' 이라는 데이터로 매핑된 게시물들이다. Hash Function 데이터를 효율적으로 관리하기 위해 어떤 길이의 데이터든 하나로 고정된 길이의 데이터로 매핑하는 함수 매핑 전 원래 데이터를 Key, 매핑 된 후 데이터 값을 Hash Value 혹은 해시코드 라고 한다. → Key-Value 타입으로 매핑되는 과정 자체를 **`Hashi

2021년 10월 4일
·
0개의 댓글
·

SHAttered

SHA-1의 취약성에 대해 구글과 네덜란드 CWI연구소에서 SHA-1 해시함수의 충돌쌍을 생성하는 서비스를 공개하였다. >https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html 다음 블로그에서 관련 내용을 잘 번역하였기에 공유. > https://cpuu.postype.com/post/580053

2021년 4월 10일
·
0개의 댓글
·

Cryptographic Hash Function

Hash Function > $h = H(M)$ 일반적인 Hash Function의 경우 Large input domain -> Small fixed output Well distributed: $P(H(x)=i) \approx \frac{1}{N}$ cryptographic hash function에 충분하지 않음. 그렇기 때문에 cryptographic에 맞게 특성을 추가해 줘야한다. Cryptographic Hash Function Cryptographic Hash Function(암호화 해시 함수)는 해시 함수의 일종으로, 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 성질을 가지는 경우를 의미한다. 추가된 성질 1. Pre-image resistance (역상 저항성) $h = H(x)$가 주어졌을 때, $x$를 찾기 어려워야 한다. 2. Weak Collision resistance

2021년 4월 9일
·
0개의 댓글
·

IM 1W _ 시간복잡도와 자료구조 정리

시간복잡도 중요한 이유? 알고리즘의 시간 복잡도를 나타낼 수 있는 표기법들 big O notation = 최악의 경우를 다루는 표기법 big Omega notation = 최선의 경우를 다루는 표기법 // 거의 쓸 일이 없음 big theta notation = 최악과 최선의 절반 지점의 경우를 다루는 표기법 // 역시 쓸 일이 없음 ex) arr = [100, 102, 105, 1111, 1112, 34124, ..., 1231231, 11111111]에서 55555찾기 arr[parseInt(arr.length/2)] 입력값이 작으면, 별로 차이가 안남 ->입력값이 크면,...? 쓰임새 스택 : 프로그래밍 언어의 런타임에서 함수의 호출을 관리

2020년 10월 27일
·
0개의 댓글
·

Java - 1. JCF - equals(), hashCode()

Hash Function 해시함수 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑해주는 함수 해시함수에 의해 얻어지는 값: 해시값, 해시코드, 해시체크섬 또는 간단하게 해시 Hash- 들의 객체 비교 HashSet, HashMap, HashTable 객체가 서로 같은지를 비교하기 위해 equals()메서드와 hashCode()메서드를 호출 객체가 서로 같은지 여부를 결정하려면 두 메서드를 재정의 해야 한다. HashSet, HashMap, HashTable에서는 객체가 같은지 여부를 데이터를 추가할 때 검사한다. 비교에 쓰이는 두 메서드 equals() 두 객체의 내용(값)이 같은지 비교하는 메서드 hashCode() 두 객체가 같은 객체인지를 비교하는 메서드 equals()와 hashCode()에 관한 규칙 1. 두 객체가 같으면 반드시 같은 hash code를 가져야 한다. 2

2020년 9월 16일
·
0개의 댓글
·
post-thumbnail

[BlockChain] 블록체인 기본 개념

🚀 블록체인이란? 정보를 블록이라고 하는 단위로 저장하여 저장된 블록들을 체인형태로 묶은 저장 기술입니다. ✓ 해시함수(Hash Function) 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다. 해시, 해시 값, 해시 코드 = 해시 함수에 의해 얻어지는 값 데이터를 X, 해시함수를 H라고 표기할 때 해시를 H(X)로 표기 산업에서 가장 널리 쓰이는 해시 함수는 SHA-2(e.g. SHA-256), SHA-3(e.g. Keccak) Rules 하나의 데이터에서 오직 단 하나의 해시가 도출됩니다. 임의의 데이터 X와 Y가 있을 때 if X == Y then H(X) == H(Y)

2020년 9월 2일
·
0개의 댓글
·