阅读:1830回复:5
请教一下有关分组加密的问题!
之前采用简单的流加密算法,之后在处理方式上没有做任何的修改,只是把调用的部分改为调用自己写的分组加密算法,是不是不对,流加密和分组加密的处理机制有很大的不同吗?在流的基础上还需要进行怎么样的修改阿?请各位大牛指教!THANK YOU!
原流算法取反: for (Offset = 0; Offset < CompletionCtx->Length//IRP携带数据量长度; ++Offset) { ((PUCHAR) CompletionCtx->MyBuffer)[Offset] = ~((PUCHAR) CompletionCtx->OldBuffer)[Offset]; } 之后就把这个换成直接调用分组加密算法了 |
|
沙发#
发布于:2007-04-06 15:27
尝试一下我改造的AES加密算法吧,
![]() |
|
|
板凳#
发布于:2007-04-06 16:08
这和算法没有关系吧,主要是在IRP_MJ_READ和IRP_MJ_WRITE中如何处理,算法不就是直接调用吗?在从IRP中获得的数据传给算法,在算法中处理好不够一组的那些数据.我其实是i不太清楚分组和流加密外的处理部分有何不同.
|
|
地板#
发布于:2007-04-06 16:15
根据所加密的数据形式,可以将密钥加密技术分为块加密(Block Cipher)和流加密(Stream Cipher)。
块加密,是指对定长的数据块进行加密,数据块之间的关系不依赖于加密过程。即当两个数据块内容相同时,无论加密过程中的顺序怎样,得到的密文也完全相同。 流加密,是指数据流的加密,加密过程带有反馈性,即前一字节加密的结果作为后一字节加密的密钥。当两个数据块内容相同时,只要加密过程中的顺序不同,得到的密文就有所不同。可见,流加密方式具有更强的安全性。 |
|
|
地下室#
发布于:2007-04-06 16:28
老大, 谢谢你了,可是我真正想知道的是分组加密该如何在IRP的分发例程中处理,和分组处理机制有什么不同,不是块和流的概念有什么不同!
![]() |
|
5楼#
发布于:2009-05-07 09:03
分组加密的数据一定要是对齐的,比如用AES加密的话 块的长度是16,那么文件的长度一定要是16的整数倍,否则加密后的数据的最后一个分组可能会被从中间截断,导致最后一个分组解密不成功,处理的方法可以采用补齐的方法,并在文件中记录真正文件的长度
|
|