快速回顾
出席: jeremiah, jrand0m, mihi, nop, thecrypto
会议记录
[23:00] ok, topics> x.0: 欢迎 x.1: 规范问题 x.2: elg 问题 x.3: SDK 状态 x.4: 发布计划 x.5: 应用 [23:00] x 是 0、1 还是 2? [23:00] 22/7 [23:01] 我觉得是 0 [23:01] * jrand0m 一直在记录日志,所以,管它呢,开干吧。 [23:01] 0.0: 欢迎。 [23:01] 嗨。 [23:01] 0.1: 规范问题 [23:01] 有人看过这些规范吗? :) [23:02] * mihi 看了。至少是尝试看了 [23:02] 哇,厉害 [23:02] 没有 [23:02] 有哪些新的? [23:02] 偶尔 [23:02] mihi> 试着看了,是因为难读、行文糟糕、结构难以理解,还是纯粹无聊到爆? [23:03] 我对密码学不够熟。前半部分很有意思。 [23:03] jeremiah> 规范都在 CVS 里,发布时我会发到 iip-dev。 当前有:i2cp、i2np、i2p data structures、polling http transport proto [23:03] 但当讲到细节时,你就算在讲怎么煮爱尔兰炖菜我可能都不会注意到 ;) [23:04] 不错 [23:04] 哈哈 mihi [23:05] 虽然格式本身也有点问题——我这儿没有 Open Office,只有老旧的 StarOffice 5.2 [23:05] StarOffice 5.2 读不了? 你更想要 .pdf 还是拼凑的 html? [23:05] (或者 .txt? 虽然 txt 就没有图片和真正的格式) [23:05] 我更喜欢“老”的 .sdw 格式。 [23:05] 能出 PDF 最好 [23:05] 或者 PDF [23:06] PDF 是一键解决方案。 [23:06] * jrand0m 在 Open Office 里编辑,用 PDF 看 [23:06] 或者 AppleWorks [23:06] ;) [23:06] .sxw 只在 StarOffice 6.0 及以上支持 [23:06] 啊好,mihi [23:06] * jrand0m 发 .sxw 是因为上次大家抱怨说想要 .sxw。 当我们发布时会提供 .sxw、.sdw 和 .pdf [23:07] (或者 .doc,如果我想“堕落”一下) [23:07] 我也不介意 .sdw.zip 或 .sdw.gz 或 .sdw.bzw…… [23:07] s/bzw/bz2/ [23:07] 呵呵,肯定会打包压缩的。 [23:08] 数据结构规范可能需要改动,网络协议在发布前需要一些固定的 URL。 [23:08] 对这四份规范,有人有问题吗? [23:09] 目前没有 [23:10] 好。 0.2:elg 问题 [23:10] 我们在数据结构规范第 13 页所述的 ElGamal 加密上遇到了一些问题。 [23:11] 可能与密钥有关、与算法有关,或者与实现有关。 很可能不是实现问题,因为已经对比过两个实现测试过。 [23:11] 如果是算法层面的问题,我们得在发布前更新规范,反映为使其可用所需的任何更改。 [23:12] 如果是实现或密钥生成的问题,我们可以先发布规范,等解决后再修复 SDK。 [23:13] thecrypto> 有什么想法吗,还是等 nop 在列表上回复(或者如果他在这儿且方便的话就在这里聊) [23:14] 我现在正在试着弄清楚 [23:15] *** 退室:mihi(Ping 超时) [23:15] *** mihi_ (~none@anon.iip) 已加入频道 #iip-dev [23:15] 好 [23:15] *** mihi_ 现在名为 mihi [23:15] 我得跑些数学计算,过一遍其它实现,看看问题 [23:15] 我用 ElGamal 从没遇到过问题 [23:15] 上次测试的时候 [23:16] *** 退室:mihi ((null)) [23:17] 用那个基准测试 [23:17] 对,不过那个基准只试了一个密钥 [23:17] 啊哈 [23:17] 我在不改 elg 实现的情况下就能反复复现这个错误 [23:17] 我们之前不是出现过“wrong key”的消息吗? [23:18] 是的,那些现在还会出现 [23:18] *** mihi_ (~none@anon.iip) 已加入频道 #iip-dev [23:18] 偶尔(通常每次生成密钥会出现 2–4 次) [23:18] *** mihi (~none@anon.iip) 已加入频道 #iip-dev [23:18] *** mihi 现在名为 mihi_backup [23:18] *** mihi_ 现在名为 mihi [23:18] 我们仍然会得到坏密钥吗? [23:19] 或者类似的什么。 [23:19] wrong size 测试仅仅是 "if ( (k0.length == PublicKey.KEYSIZE_BYTES) && (k1.length == PrivateKey.KEYSIZE_BYTES) ) {" [23:19] 没有做值校验之类的。 [23:20] 稍等 [23:23] 你能检查一下私钥 x 是否 < p 吗 [23:23] if (m.compareTo(CryptoConstants.elgp) >= 0) [23:23] 已经做了。 [23:23] (throw new IllegalArgumentException("ARGH. Data cannot be larger than the ElGamal prime. FIXME");) 那个异常从未被抛出。 [23:23] 呃 x? 嗯。 [23:24] 好。 也许我们想“借用”一下 bouncycastle 或其它实现的 elg 密钥生成算法 [23:25] 好。 0.3> SDK 问题 [23:26] elg 尚待处理,但除此之外 SDK 已经非常接近 0.8(也就是与规范匹配的发布) [23:26] (只剩 elg 问题和 LeaseSet 的修改) [23:26] 我希望在发布规范时 SDK 0.8 也能就绪,但我觉得我们不该对此作出承诺。 [23:27] 甚至不确定是否需要在规范发布时附带 SDK 0.1。 [23:27] 呃!真烦 [23:28] nop 指给我的 miracl 跟我们做的完全一样 [23:28] 而且他们没有任何检查 [23:28] 不过是无符号的。 [23:28] (因为 miracl 是用 C 写的) [23:28] * jrand0m 猜的 [23:28] 是 [23:29] 但不管怎样,我确保我们不会用带符号的 BigInteger [23:30] BigInteger.toByteArray() 返回的是有符号字节数组 [23:30] 抱歉,继续 [23:30] 好 [23:30] jeremiah,Python 方面有进展吗? [23:31] 嘿 [23:31] 抱歉我在补读聊天记录 [23:31] 呵,嗨 [23:31] 没呢,我还在熟悉类 [23:31] 酷 [23:31] 没问题 [23:31] 我觉得我得去眯一会儿了 [23:31] 好 [23:32] 0.4:发布计划 [23:32] 我们需要在接下来一两天内把 SDK 的问题解决掉,不管用什么办法。 [23:32] 我们需要开始把安全模型“维基化” [23:32] (wiki,汝安在) [23:33] 我们需要把性能模型也弄上来(不成问题,我一两天内搞定) [23:33] 我们需要更新规范,把任何 elg 的修改都包括进去,并加上其他规范的真实 URL。 [23:33] miracl [23:33] 有一个移植版本 [23:33] 到 Java 的 [23:33] 或许我们需要把规范 && / || SDK 放在美国以外托管,考虑出口管制[虽然我不在乎] [23:34] 对,但 miracl 的 Java 移植上次我看还没有 elg 加密。 [23:34] 我再查查。 [23:34] jrand0m,我们不在乎,不过这事儿以后再说 [23:34] jrand0m 如果它有 bigdig() 和 modexp() [23:34] 就行 [23:34] *** yodel (~yodel@anon.iip) 已加入频道 #iip-dev [23:34] 稍等 [23:34] 我想我找到问题了 [23:35] 好,说说啥情况,thecrypto? [23:35] 你能检查一下吗 jrand0m [23:35] 我们的 k 没有检查是否互素 [23:36] 这会导致我们描述的问题吗,thecrypto? 我以为那只会让加密变得不安全(当然这也是个问题) [23:36] 但那就意味着只有用这个密钥的某些消息会失败 [23:36] 这是密钥生成里的某个问题 [23:36] nop> 我们会找到办法解决。 但我在邮件里列出了一些与实现无关的具体问题 [23:36] 好的 thecrypto,我们会在会后处理 [23:37] 那个双密文的问题? [23:37] 好的 [23:37] nop> 那是其中一个问题 [23:37] * nop 去读了 [23:39] nop> wiki 什么时候能起来? 如果只是 DNS 的事,IP 是多少?我好改下我的 hosts 文件开始编辑? [23:40] 快问一下 jrand0m:是在哪里失败?基准测试跑得挺好,而且每次都会生成一对新密钥? [23:41] 我来把它搞起来,等下 [23:41] wiki.invisiblenet.net == jasonclinton.com [64.91.236.103] [23:41] 谢啦,mihi [23:42] thecrypto> 它每次都会生成新密钥。 它会在我调试 ElGamalAESEngine 时写的一个两行测试用例上失败 [23:42] 我能看看这个 ElGamalAESEngine 吗? [23:42] 直接提交到 CVS,我来看看是什么问题 [23:43] 好了,wiki 已经做了 CNAME [23:43] 过一会儿就会传播开 [23:43] * jrand0m 不会提交不能用的东西,不过我会发邮件给你 [23:43] 多谢,nop [23:43] 已经起来了 [23:43] ;) [23:43] (Link: http://wiki.invisiblenet.net)http://wiki.invisiblenet.net [23:43] 在我这儿还没呢 [23:43] ;) [23:44] 我们准备把什么放到 wiki 上 [23:44] ? [23:44] 安全文档,另外一个放规范发布的地方。 [23:44] 也许还包括 i2p 的网站(在 1.0 发布前),但至少要有安全文档。 [23:45] *** 退室:sirk ((null)) [23:45] *** 退室:shardy_(Ping 超时) [23:46] 好。 考虑到发布计划上面的 5 点,我希望最晚周五、周六或周日把规范发出来。 [23:46] *** shardy_ (~shardy@anon.iip) 已加入频道 #iip-dev [23:46] 我找了个做图形的家伙在做网站 [23:47] 为 i2p [23:47] 这个截止时间有问题吗? [周五为截止日期,只有在发生不好的事情时才会推迟] [23:47] 没问题 [23:47] jrand0m:发了吗? [23:47] 好,那就安全文档和 i2p 规范的发布位置 [23:47] 还没有,thecrypto,有六七个文件。 我会在会后发。 [23:47] 好的 [23:48] 我希望早点拿到,因为我们今天要挪桌子,我得很快搬电脑 [23:48] jrand0m,我需要看看你的邮件,很快会回复 [23:48] 正在多任务处理 [23:49] 好。 [23:49] 0.5> 应用 [23:49] 名字服务 AWOL 了,因为 co 不在 ;) [不过我想他也刚回学校了,所以短期内这是意料之中的] [23:49] mihi 有个超棒超棒的 I2PTunnel 应用 [23:50] *** 退室:WinBear_(客户端 EOF) [23:50] 把 `awesome` 去掉一两个吧 ;) [23:50] 呵 [23:51] 嗯,的确令人印象深刻。 还需要加一些东西,但就现在而言,它是个可用的端口转发器,性能也说得过去。 是个很不错的概念验证 [23:51] 它依赖太多我在规范里看不到的东西(比如 GUARANTEED 包按顺序投递) [23:52] GUARANTEED 包并不保证按顺序投递,但 Java 实现会在发送 GUARANTEED 时阻塞,所以如果你用 Java 实现配合 GUARANTEED,且没有多个发送线程,它就会按顺序了。 [23:52] 理想情况下,如果能做 FEC,或者内置排序与重组之类的就很酷 [23:52] (这样就不会在发送时阻塞,也不需要 GUARANTEED) [23:53] 我觉得条件有点太多了…… [23:53] s/bot/bit/ [23:55] 不过也许我会有时间给它加上重排序/重传…… [23:55] 嗯,Java 客户端实现就是这么做的 ;) 不建议在低延迟同步场景中使用 GUARANTEED,因为它需要一个 ack(这本身就是一次完整的消息传递,尽管没有客户端的端到端加密,只有 i2np 的加密) [23:55] 好的 [23:56] 还有其他应用在路上吗? 我们要不要在 wiki 上做个页面,列出应用和应用创意,方便开发者参与? [23:57] * jrand0m 觉得离 yodel 的 XML RPC 能通过 i2p SDK 运行应该不远了(要么通过 mihi 的 tunnel,要么原生) [23:57] 嗯 [23:57] 测试 [23:57] tset [23:57] 还连着吗? [23:57] 是的,先生 [23:58] 我们现在在拔电话线 [23:58] IIP,不惧电话线 [23:58] 呵 [23:58] :) [23:58] 我可以回到 IM 那边并用文件传输 [23:58] 酷毙了 [00:00] 好。 我的议程项目就这些。 [00:00] 有任何评论/问题/担忧/飞盘吗? [00:00] * thecrypto 扔出一个飞盘 [00:00] * jrand0m 被飞盘砸脸 [00:01] 我只想把这些密码学的东西搞定,这样我就能回去优化 elg 了 [00:01] 也希望能对 Python 做同样的优化 [00:01] 好。 我接下来 5 分钟内把代码给你 [00:02] 那太好了 [00:03] * jrand0m 准备好 *baf*er [00:03] * jrand0m 蓄力 [00:03] * jrand0m 用 *baf* 为会议画上句号。