Blowfish 암호화 알고리즘은 느리고 불확실한 DES 알고리즘에서 달성하도록 설계된 대칭 블록 암호입니다. Blowfish는 1993년에 Bruce Schneier가 발명하고 공개 도메인에 있는 키가 있는 대칭 암호화 블록 암호입니다.
대칭 암호화는 개별 암호화 키를 사용하여 정보를 암호화하고 해독합니다. 민감한 정보와 대칭 암호화 키를 암호화 알고리즘 내에서 사용하여 민감한 정보를 암호문으로 변환합니다. Blowfish는 SplashID와 같은 수많은 암호 제품군 및 암호화 제품에 포함되어 있습니다.
블록 암호는 일반적으로 일정량의 일반 텍스트를 가져와 암호화된 텍스트 또는 암호 텍스트로 변환하는 컴퓨터 루틴입니다. 블록이라고 하는 텍스트 청크에서 이 루틴을 구현합니다. 그리고 전송의 반대편에서 텍스트가 디코딩되도록 하려면 함수도 암호 텍스트의 잠금을 해제하는 키를 만들어야 합니다.
Blowfish는 또한 대중이 사용하는 가장 빠른 블록 암호 중 하나이므로 휴대 전화, 노트북 및 데스크톱 컴퓨터에서 발견되는 다양한 프로세서에서 작동하는 SplashID와 같은 제품에 이상적입니다.
Blowfish는 64비트 블록 크기와 32비트에서 448비트 사이의 키 길이를 갖습니다. 16라운드 Feistel 암호이며 큰 키 종속 S-박스가 필요합니다. 고정 S-box가 필요한 CAST-128의 구조와 동일합니다.
Blowfish 알고리즘은 가장 인기 있는 알고리즘 중 하나이지만 너무 많은 공격자를 잡아먹게 만드는 일부 요소와 함께 필수적인 계산 능력이 필요했습니다. "s-box"의 크기를 줄일 수 있으므로 신경망(NN)에서 설계하고 구현할 수 있습니다.
신경망에 대한 입력은 텍스트(평문 또는 암호문)이고 네트워크에서 얻은 출력은 동일한 텍스트이며 암호화 및 암호 해독에 사용되는 키는 역전파 네트워크를 사용하여 훈련된 신경망의 원래 가중치입니다. .
Blowfish는 특정 형태의 키 생성을 사용합니다. Blowfish 루틴의 두 번째 요소는 최대 448비트의 단일 키를 4168바이트 크기의 하위 키 테이블로 변환하는 키 확장입니다. 해커가 원래 키 이상을 해독해야 하기 때문에 하위 키를 생성하면 보안이 더욱 향상됩니다.
복어 알고리즘의 내구성은 하위 키 생성과 기본 혼란 및 확산 설계에 달려 있습니다. Blowfish는 Feistel 네트워크에 의존하는 대칭 마스터 암호 시스템입니다.
Bruce Schneider가 알고리즘을 도입했습니다. 64비트 블록 크기 암호이며 완전한 버전은 블록 암호를 완성하는 데 16라운드가 필요하며 많은 수의 하위 키, 32비트에서 448비트까지의 가변 길이 키를 사용합니다.