리눅스 커널의 SHA-256 코드가 사용 용이성과 성능 향상을 목표로 한 중요한 개선 작업을 진행하고 있습니다. 새로운 패치 시리즈는 기존의 아키텍처 최적화된 SHA-256 코드를 리팩토링하여, crypto_shash API뿐만 아니라 라이브러리 API를 통해 접근할 수 있도록 하고 있습니다. 이 변화는 CRC32 및 ChaCha와 같은 다른 알고리즘에 대한 유사한 업데이트와 일치합니다.
라이브러리 API 위에 SHA-256 crypto_shash API를 재구현함으로써 성능이 중요한 상황에서도 사용할 수 있게 되며, 이는 주목할 만한 발전입니다. 새로운 설계는 코드베이스를 단순화하여 1200줄 이상의 음수 diffstat을 달성하였으며, 이는 복잡성 감소와 유지보수 용이성을 나타냅니다.
또한, 이번 업데이트는 아키텍처 최적화된 SHA-256이 기본적으로 비활성화되어 있어 사용자가 이를 활성화하는 것을 잊는 경우가 많았던 오랜 문제를 해결합니다. 현재 SHA-256 라이브러리는 crypto_shash 자체 테스트에 의해 잘 지원되고 있으며, 향후 라이브러리에 대한 직접 테스트를 추가할 계획이 있습니다.
이 패치 시리즈는 arm, arm64, riscv 및 x86 아키텍처에서 완전히 테스트되었습니다. 그러나 mips, powerpc, s390 및 sparc에서의 테스트는 해당 플랫폼에서 SHA-256 명령어에 대한 QEMU의 지원 한계로 인해 부분적으로 진행되었습니다. 저자는 관련 시스템에 접근할 수 있는 사용자들이 이러한 아키텍처에서 crypto 자체 테스트를 검증할 것을 권장하지만, 새로운 코드의 간단한 특성으로 인해 문제는 발생하지 않을 것으로 예상하고 있습니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.