Bouncy Castle Java库中ASCON XOF实现的问题分析与修复
2025-07-01 17:41:41作者:尤辰城Agatha
问题背景
在密码学领域,可扩展输出函数(XOF)是一种能够产生任意长度输出的哈希函数。Bouncy Castle作为Java平台广泛使用的密码学库,其ASCON XOF实现被发现存在一个重要的功能缺陷。
问题描述
ASCON XOF实现(包括AsconXof128和AsconCXof128)在处理多部分输出时存在行为异常。具体表现为:
- 当前实现将doOutput()方法与doFinal()方法功能等同化
- 每次调用doOutput()后都会自动执行reset()操作
- 这与其他XOF实现的行为不一致,其他实现都支持通过doOutput()方法进行部分输出
技术影响
这种实现方式限制了ASCON XOF的功能性,使其无法:
- 分批次获取XOF输出
- 在流式处理场景中使用
- 与其他XOF实现保持行为一致性
修复方案
项目维护者已经确认并修复了这个问题。修复后的实现将:
- 允许通过多次调用doOutput()获取部分输出
- 保持内部状态直到显式调用reset()或doFinal()
- 与其他XOF实现保持行为一致性
验证方法
可以通过以下方式验证修复后的实现:
- 准备随机输入数据
- 分别获取完整输出和分批次输出
- 比较两种方式的结果是否一致
结论
这次修复确保了ASCON XOF实现的正确性和一致性,使其能够更好地适应各种密码学应用场景。对于使用Bouncy Castle库中ASCON XOF功能的开发者来说,这一修复将提高代码的可靠性和互操作性。
登录后查看全文
热门项目推荐
相关项目推荐
暂无数据
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
539
3.76 K
Ascend Extension for PyTorch
Python
349
414
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
889
609
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
338
185
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
986
252
openGauss kernel ~ openGauss is an open source relational database management system
C++
169
233
暂无简介
Dart
778
193
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
114
140
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.35 K
758