reddargon
驱动小牛
驱动小牛
  • 注册日期2005-08-05
  • 最后登录2008-07-15
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望101点
  • 贡献值0点
  • 好评度100点
  • 原创分0分
  • 专家分0分
40楼#
发布于:2007-05-17 08:41
既然是分组加密,就不可能出现等长的情况,否则怎么还原.
除非是经过特殊处理,如把分组后剩余的明文+倒数第二组的部分密文,重新构成一个分组.
如果是等长加密的话,只能是流加密,目前还没听说过有等长的分组加密.
bluacat
驱动小牛
驱动小牛
  • 注册日期2004-09-13
  • 最后登录2016-09-25
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望277点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
41楼#
发布于:2007-05-17 18:17
AES 有CTR 模式的,AES的标准里面有的
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
42楼#
发布于:2007-06-21 10:20
楼主提供的算法确实不能实现等长加密,我修改了其中的加解密函数(对于最后16个字节数据不进行加密):
extern "C"
void AESCipher(AES_HANDLE AesHandle, BYTE *input, BYTE *output, ULONG length)
{
    BYTE *pi, *po;
    ULONG i ;
    pi = input;
    po = output;

    for(i = 0; i < length; i+=16)
    {
        if ((length - i) >= 16)
        {
            Cipher(AesHandle, pi, po);
        }
        else
        {
            break ;
        }
        pi+=16;
        po+=16;
    }
}

extern "C"
void AESInvCipher(AES_HANDLE AesHandle, BYTE *input, BYTE *output, ULONG length)
{
    BYTE *pi, *po;
    ULONG i ;
    pi = input;
    po = output;
    
    for(i = 0; i < length; i+=16)
    {
        if ((length - i) >= 16)
        {
            InvCipher(AesHandle, pi, po);
        }
        else
        {
            break ;
        }
        pi+=16;
        po+=16;
    }
}
然后测试了一下,
发现用IrpSp->Parameters.Write.Length作为加密长度输入,肯定不行,因为每次这个长度的值都是0x1000,但实际上我只写入了7个字节,所以还是会对这7个字节加密,这样解密出来以后就得不到正确的结果; 如果我用strlen((char*)Buffer)得到缓冲区的真实长度作为输入来进行加解密操作,那么加密是没有问题的,但读数据时解密又出现问题了,因为系统初始化时都要对每个卷中的目录进行扫描,并从中读出一些数据,这些数据是没有规则的,可能会导致strlen((char *)Buffer)等于0,不能正确的解密意味着不能初始化卷,这样就不能识别卷。
作一名真实,诚实,优秀的科技工作者!
ceabie
驱动牛犊
驱动牛犊
  • 注册日期2006-08-23
  • 最后登录2010-07-21
  • 粉丝0
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值0点
  • 好评度59点
  • 原创分1分
  • 专家分0分
43楼#
发布于:2007-06-21 16:41
好,顶一下
XeChini
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
44楼#
发布于:2007-07-13 09:59
顶,楼主怎么不把话说清楚就撒手不管了,您用这个代码真的做过实验可以等长加密吗?
作一名真实,诚实,优秀的科技工作者!
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
45楼#
发布于:2007-07-13 14:37
感觉分组加密算法实现等长加密有问题。
在孤独和无助中缓慢前行...
minmin0876
驱动牛犊
驱动牛犊
  • 注册日期2007-08-22
  • 最后登录2008-08-18
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
46楼#
发布于:2008-07-11 15:18
收下啦
谢谢啦
正需要呢
shar123
驱动牛犊
驱动牛犊
  • 注册日期2009-05-12
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望461点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
47楼#
发布于:2009-07-29 10:17

   AES是分组算法,你是怎么解决文件的变长处理的?


不管文件大小怎么变化,实际存储的时候在Read和Write中都是固定大小的存取,如4096 32768 。。。。。等等块字节

你可以试验,即使文件大小只有1K 但是读取的时候至少也有4096个字节

所以不管文件大小怎么变化,具体的数据存储区的大小是16的整数倍的
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
48楼#
发布于:2009-07-29 18:14
楼上的兄弟,你确信你试验的很充分吗?
解密是要在read的完成函数中做的,你可以读取一个只有7个字节的txt文档,在read completion里面看看IoStatus.Information是多少。
作一名真实,诚实,优秀的科技工作者!
wwg266543
驱动小牛
驱动小牛
  • 注册日期2007-07-03
  • 最后登录2014-08-27
  • 粉丝3
  • 关注1
  • 积分3分
  • 威望882点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分54分
49楼#
发布于:2009-08-04 11:50
给一个c版本的AES加密库!
附件名称/大小 下载次数 最后更新
kaes.rar (28KB)  54 2009-08-04 11:50
mixia
驱动牛犊
驱动牛犊
  • 注册日期2009-06-18
  • 最后登录2009-08-10
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
50楼#
发布于:2009-08-10 16:01
了解下,,,,
dino200606
驱动牛犊
驱动牛犊
  • 注册日期2008-01-19
  • 最后登录2019-05-19
  • 粉丝3
  • 关注0
  • 积分10分
  • 威望98点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
51楼#
发布于:2009-10-29 13:51
顶起,收藏备用
zengpeng0322
驱动牛犊
驱动牛犊
  • 注册日期2009-04-09
  • 最后登录2010-05-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
52楼#
发布于:2009-11-04 14:32
have a look
daniel_bao
驱动牛犊
驱动牛犊
  • 注册日期2007-04-14
  • 最后登录2010-03-11
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望71点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
53楼#
发布于:2010-03-11 11:01
学习,学习,再学习!
xum2008
驱动牛犊
驱动牛犊
  • 注册日期2009-05-08
  • 最后登录2014-08-10
  • 粉丝0
  • 关注0
  • 积分75分
  • 威望741点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
54楼#
发布于:2010-08-10 11:44
回 49楼(wwg266543) 的帖子
有AES 的 CTR 模式的吗?
lsfwhut
驱动牛犊
驱动牛犊
  • 注册日期2010-11-10
  • 最后登录2012-02-14
  • 粉丝0
  • 关注1
  • 积分22分
  • 威望221点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
55楼#
发布于:2010-11-23 16:39
shenhui ( 做一名诚实、正直、优秀的科技工作者!)  大牛,可以给我一份快加密的程序学习吗?我执意在修改你以前发的那个程序,想把他修改为块加密,可是一直弄不好,急啊!
hnn-xinyao
驱动牛犊
驱动牛犊
  • 注册日期2011-05-22
  • 最后登录2011-06-08
  • 粉丝1
  • 关注1
  • 积分4分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
56楼#
发布于:2011-06-02 18:34
kankan
sandu
驱动牛犊
驱动牛犊
  • 注册日期2011-06-18
  • 最后登录2011-11-13
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
57楼#
发布于:2011-06-21 21:10
学习一下.
sandu
驱动牛犊
驱动牛犊
  • 注册日期2011-06-18
  • 最后登录2011-11-13
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
58楼#
发布于:2011-06-21 21:11
提示附件不存在,下不了.
sandu
驱动牛犊
驱动牛犊
  • 注册日期2011-06-18
  • 最后登录2011-11-13
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
59楼#
发布于:2011-06-21 21:12
版主帮附上附件啊.
上一页 下一页
游客

返回顶部