highgo119
驱动牛犊
驱动牛犊
  • 注册日期2005-01-22
  • 最后登录2009-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1868回复:18

各位大侠!请问在文件过滤驱动中实现动态加解密是如何实现边界对齐的啊。

楼主#
更多 发布于:2005-03-14 14:43
请问在对文件进行动态加解密时是如何实现边界对齐的啊。
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-14 18:10
不需要边界对其的,我的已经完成了,不要考虑那个,读写都是以512的倍数来做的。不知道你为何要那样,说说看
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-14 21:29
磁盘是块设备 有固定的块大小,但是不同的磁盘是不同的,比如U盘
是由硬件声明的。但是一般都是8的倍数。
---内核开发合作或提供基础技术服务QQ:22863668 ---
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-14 22:55
谢谢zhangshengyu
你能不能把优盘驱动给我一份阿
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-03-15 08:40
没有驱动,是由硬件实现的 ,U盘是无驱的(用系统的)
---内核开发合作或提供基础技术服务QQ:22863668 ---
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-15 11:18
不需要边界对其的,我的已经完成了,不要考虑那个,读写都是以512的倍数来做的。不知道你为何要那样,说说看

最后的尾巴怎么办?
如果你的文件是513字节,最后那个字节怎么处理? :)
不停学习
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-15 13:40
系统会自动读下个扇区的阿,不管他有多少个字节。只要你对称加密
highgo119
驱动牛犊
驱动牛犊
  • 注册日期2005-01-22
  • 最后登录2009-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-15 21:20
先谢谢各位大哥的回复。

读写都是以512个字节的整数倍来读的(是在那一层驱动里实现这一功能的啊),这个读写好像不是通过filedisk中的ZwReadfile和ZwWriteFile来实现的吧。读和写的开始边界和长度好像都不是人工指定的,怎样保证加解密不出错呢?


小弟对底层的东东不太了解,希望各位大哥指点一二。


zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-03-15 21:58
先谢谢各位大哥的回复。

读写都是以512个字节的整数倍来读的(是在那一层驱动里实现这一功能的啊),这个读写好像不是通过filedisk中的ZwReadfile和ZwWriteFile来实现的吧。读和写的开始边界和长度好像都不是人工指定的,怎样保证加解密不出错呢?


小弟对底层的东东不太了解,希望各位大哥指点一二。


 


那就看你在哪一层做的了,如果是磁盘一级,就是整块,偏移和长度都是块的整数倍,是上层磁盘驱动实现的,你不用考虑,但是只能加密整个磁盘或分区。
如果你是在文件过滤中做,嘿嘿,所有的问题都出来了。。。
---内核开发合作或提供基础技术服务QQ:22863668 ---
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-15 22:18
我觉得不一定的文件过滤驱动一样可以做到的,就是加密算法铁苏
highgo119
驱动牛犊
驱动牛犊
  • 注册日期2005-01-22
  • 最后登录2009-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-16 09:16
对于虚拟磁盘来说,filedisk不就是上层磁盘驱动吗,也就是要在它里面实现块的读写吗,是不是把读写的长度改成512字节就可以了。

但是我在论坛上看到有人说改成512字节后也不能加解密成功啊。

这个问题我一直在琢磨,百思不得其解。

谢谢大哥帮忙解答,万分感激!
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-16 09:45
系统会自动读下个扇区的阿,不管他有多少个字节。只要你对称加密
 

但是有的文件系统会将超过长度的部分清除为0;
好像ntfs就是这样的
不停学习
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-03-16 12:05
超过长度的部分我觉得不是清除为0 ,是他本身就是0,一般格式化后,没有分配的单元都是0的,所以读写内存时,通常用memset防止碎片产生。
但是这个不影响我们加密,只要你解密也对称即可
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-03-25 09:40
超过长度的部分我觉得不是清除为0 ,是他本身就是0,一般格式化后,没有分配的单元都是0的,所以读写内存时,通常用memset防止碎片产生。
但是这个不影响我们加密,只要你解密也对称即可

那么对于剩下的不够分组的长度怎么处理,
比如分组为8个字节,文件长度7个字节,
这7个字节如何处理?
不停学习
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-03-25 11:29
不需要边界对其的,我的已经完成了,不要考虑那个,读写都是以512的倍数来做的。不知道你为何要那样,说说看


对磁盘驱动来说,读写是以2 ^ n对齐的,但是对于文件系统来说,
读写是random的
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-03-25 16:06
[quote]不需要边界对其的,我的已经完成了,不要考虑那个,读写都是以512的倍数来做的。不知道你为何要那样,说说看


对磁盘驱动来说,读写是以2 ^ n对齐的,但是对于文件系统来说,
读写是random的 [/quote]
是啊,如果用des加密的话,明文剩下不足8个字节的数据如何处理啊?
 :)
不停学习
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-03-26 10:19
是啊,如果用des加密的话,明文剩下不足8个字节的数据如何处理啊?
 :)


如果整个文件内容不足8字节,那只好换个加密算法或者不加密,

如果整个文件内容多于八个字节,你需要对最后几个字节做特殊处理,

比如文件内容为abcdefghijk,你先对abcdefgh加密,密文ABCDEFGH,然后你再对DEFGHijk加密,密文为XXXXXXXX。最后得到密文ABCXXXXXXXX

解密的时候先对最后八个字节解密,得到DEFGHijk,然后再解密
ABCDEFGH
michaelgz
论坛版主
论坛版主
  • 注册日期2005-01-26
  • 最后登录2012-10-22
  • 粉丝1
  • 关注1
  • 积分150分
  • 威望1524点
  • 贡献值1点
  • 好评度213点
  • 原创分0分
  • 专家分2分
17楼#
发布于:2005-03-27 01:05
The only problem for the above solution I can see is that the last few bytes must be re-encrypted whenever there\'s change before the last few bytes.
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-03-29 09:04
[quote]是啊,如果用des加密的话,明文剩下不足8个字节的数据如何处理啊?
 :)


如果整个文件内容不足8字节,那只好换个加密算法或者不加密,

如果整个文件内容多于八个字节,你需要对最后几个字节做特殊处理,

比如文件内容为abcdefghijk,你先对abcdefgh加密,密文ABCDEFGH,然后你再对DEFGHijk加密,密文为XXXXXXXX。最后得到密文ABCXXXXXXXX

解密的时候先对最后八个字节解密,得到DEFGHijk,然后再解密
ABCDEFGH [/quote]

如果在读写的时候做了这个处理。
那么在响应设置文件长度irp的时候还要处理吗?
 :)
不停学习
游客

返回顶部