快速回顾

出席: arj, co, cohesion, dm, hezekiah, jeremiah, jrand0m, luckypunk, nop, some_random_guy, thecrypto, WinBear

Meeting Log

--- 日志开启 Tue Jul 29 16:54:31 2003 17:11 <@hezekiah> Tue Jul 29 21:11:18 UTC 2003 17:11 <@hezekiah> 第51次(我想)iip-dev 会议。 17:11 <@hezekiah> 议程: 17:11 <@hezekiah> 1.) 欢迎 17:11 <@hezekiah> 2.) jrand0m 的事项 17:11 <@hezekiah> 3.) 其他开发者的事项 17:11 <@hezekiah> 4.) nop 到了/如果他来了要补充的任何内容 17:12 <@hezekiah> 5.) 来自那群永远热切的围观群众的提问与评论 ;-) 17:12 <@hezekiah> 好! 17:12 <@hezekiah> 欢迎大家来到第51次(我想)iip-dev 会议 17:12 <@hezekiah> 第二项! 17:12 <@hezekiah> jrand0m 的事项 17:12 -!- thetower [none@anon.iip] 加入了 #iip-dev 17:12 * hezekiah 把话筒交给 jrand0m 17:12 <@jrand0m> 子议程: 17:12 <@jrand0m> 2.1) I2CP 规范与开发状态 17:12 < co> 第50次会议的日志在哪? 17:12 <@jrand0m> 2.2) SDK 计划 17:12 <@jrand0m> 2.3) 加密 17:12 <@jrand0m> 2.4) 路线图 / 网络协议状态 17:13 <@hezekiah> co: cohesion 正在把它们发布上去 17:13 <@jrand0m> (顺便说一下,microphone 的缩写是“mic”) 17:13 <@hezekiah> jrand0m: 抱歉。:) 17:13 <@hezekiah> jrand0m: (而且我还是搞音频技术的,竟然犯这种错!) 17:13 -!- luckypunk [~yetalohe@anon.iip] 加入了 #iip-dev 17:13 -!- odargur [odargur@anon.iip] 加入了 #iip-dev 17:13 <@jrand0m> 2.1) I2CP:规范已提交到 CVS,并对一条消息(MessageStatusMessage)做了微调 17:14 <@jrand0m> 欢迎大家随时对 I2CP 提出意见,越早越好。 17:14 <@hezekiah> jrand0m: 规范在 CVS 里的哪里?……在 SF 的 CVS 上也有吗? 17:14 <@jrand0m> 之所以说越早越好,是因为我们到周五就会有一个可用的 Java 客户端实现。 17:14 -!- some_random_guy [~dan@anon.iip] 加入了 #iip-dev 17:14 * thecrypto 为此暗暗祈祷 17:14 <@jrand0m> 另外我希望在周末结束前能有一个仅本地的 router 17:15 <@jrand0m> 不,hez,只在 cathedral 上 17:15 <@jrand0m> 说得好,thecrypto。 17:15 <@jrand0m> 但有个提醒: 17:15 <@hezekiah> 唉。我还是用不了 cathedral 的 CVS。 17:15 <@jrand0m> 有些加密还不是 100% 完成,但都做了 stub,之后可以插入更完整或其他实现 17:15 <@jrand0m> hezekiah> 会后我们给你弄好。 17:15 <@hezekiah> jrand0m: 谢啦。:) 17:16 <@jrand0m> 规范在 i2p/doc/specs/data_structure_spec/datastructures.html 17:16 <@jrand0m> thecrypto> 关于 Java 实现你还有什么要补充的吗? 17:16 -!- ArdVark [simple1@anon.iip] 加入了 #iip-dev 17:16 <@jeremiah> 你提到的仅本地 router 是 Python 的那个对吧?还是也有 Java 的? 17:17 <@jrand0m> 看情况而定 :) 17:17 <@jrand0m> jeremiah/hezekiah> Python 客户端和仅本地 router 进展如何? 17:17 <@thecrypto> 没啥,除了我们待会儿要谈的加密问题 17:17 <@jrand0m> 明白,thecrypto。 17:17 <@hezekiah> jrand0m: 还行。我昨天终于把 TCP 传输部分搞定了。 17:17 <@jeremiah> 看起来还不错,我觉得更多取决于 hezekiah 的开发速度,不是我的 17:17 <@hezekiah> jrand0m: Jeremiah 在消息结构方面弄得挺好。 17:18 <@hezekiah> hezekiah: 我希望我们能赶上最后期限。 17:18 <@jrand0m> 很好。 17:18 <@jeremiah> 还有……周五我过生日,所以那天我不打算在电脑前 17:18 <@hezekiah> jeremiah: 可以理解。:) 17:18 <@hezekiah> jeremiah: 先预祝生日快乐。:) 17:18 <@jeremiah> 谢谢 17:18 <@jrand0m> 稍微跳到 2.4> 我们大概什么时候能有 Python 仅本地 router?实际点讲呢? 17:19 <@jrand0m> 话说在前头,要是你周五还在写代码我就揍你 17:19 <@jrand0m> 至少是“虚拟”地揍 17:19 <@hezekiah> jrand0m: 我以为这就是我在写的。Python 的仅本地 router。 17:19 <@jrand0m> 是的,就是你写 17:19 <@hezekiah> 截止日期是 8 月 1 日。 17:19 <@jeremiah> 我们现在在做消息与二进制格式的互转部分 17:19 <@hezekiah> 那不难。 17:19 <@jeremiah> 对 17:19 <@hezekiah> 我希望一两天内能做好。 17:20 <@jrand0m> 那就是周五 :) 17:20 <@jrand0m> 太好了 17:20 <@hezekiah> 我希望能在 8 月 1 日前完成。现实点讲可能会晚几天,但希望不要。 17:20 <@jrand0m> 好,那我就先别碰 Java 的仅本地那部分,等 Java 客户端 API 稳定后 去做网络规范。 17:20 <@hezekiah> 好。规范很重要。 17:21 <@hezekiah> 它们让我的工作轻松很多!:) 17:21 <@jrand0m> 没错。 17:21 <@jrand0m> 我也会写一篇两段的小文,讲一下 Java I2CP 测试框架 17:21 <@jrand0m> 我今晚就发出去 17:22 <@hezekiah> jrand0m: 我喜欢你写规范这么快。 17:22 <@hezekiah> 这很有趣。:) 17:22 <@jrand0m> 好,hez/jeremiah/thecrypto> 关于 I2CP 还有别的吗? 17:22 <@jrand0m> lol 17:22 -!- dm [~hifi@anon.iip] 加入了 #iip-dev 17:22 <@hezekiah> 嗯…… 17:22 <@hezekiah> 我想要加密规范! 17:22 < dm> 欢迎 17:22 * hezekiah 学小孩撅嘴 17:22 <@hezekiah> ;-) 17:23 <@hezekiah> 认真说……我想不到什么了。 17:23 <@jrand0m> 那是议程 2.3 17:23 <@thecrypto> 还在等 2.3 开始 17:23 <@hezekiah> 要是我想到了,就上来在线骚扰你问问题,jrand0m。:) 17:23 <@jrand0m> 好的。 17:23 <@jrand0m> 好。2.2) SDK 计划 17:23 <@hezekiah> 我们刚刚结束的是议程的哪个点? 17:23 <@hezekiah> 2.4? 17:23 <@hezekiah> 2.1 我们结束了吗? 17:23 <@jrand0m> 2.1 17:24 <@jrand0m> 现在 2.2> SDK 17:24 <@hezekiah> 好。 17:24 < dm> 议程里现在有小数点了?我已经看到进步了。 17:24 <@hezekiah> 我现在找到方向了(相对之前迷路)。 17:24 <@thecrypto> 我们可能还有两个小数点呢 :) 17:25 <@jeremiah> SDK 除了各种 API 之外还有什么? 17:25 <@jrand0m> SDK 包括:客户端 API(有多少提供多少)、仅本地 router、一个非常简单的示例应用,以及一些如何使用这些 API 的文档。 17:25 <@hezekiah> jrand0m: 我可以认为文档由你来写对吧?:) 17:26 <@jrand0m> 我希望尽快发布 SDK,这样第三方(甚至第二、第一)开发者可以编写并测试将来能在 I2P 上运行的应用,这样一旦网络可运行,我们就能一开始就全速推进。 17:26 <@jrand0m> hezekiah> 其实我更希望不要我来写。 17:26 <@jrand0m> hezekiah> 不是我不想写文档,而是我离它太近了。 17:26 <@hezekiah> jrand0m: 好。 17:26 <@jrand0m> 我们应该让一个没有真正实现代码的人来写这份文档,这样没写过 I2CP 规范的人也能看懂 17:26 <@hezekiah> jrand0m: 等到了那一步我们再说。 17:26 <@jrand0m> 但必要时,我会上的。 17:26 <@jrand0m> 好。 17:27 < dm> 在网络还不能运行时,人们有什么动力去写应用?他们又怎么测试呢。 17:27 <@hezekiah> jrand0m: 或者由设计协议的人先写,再找一个从没接触过它的人来过一遍,直到让它说得通? 17:27 <@jrand0m> 好的,曾讨论过做一个简单的“talk”风格应用。 17:27 <@jrand0m> dm> 人们可以用 SDK 来测试。 17:27 <@thecrypto> 其实我在想,如果它只能本地的话,那有什么用 17:28 <@jeremiah> dm: 想法是实现一个简单的网络,不是完全功能,但能传消息 17:28 <@thecrypto> 你只能和自己说话 17:28 <@jeremiah> 它其实不是仅本地,它只包含 client-router,不包含 router-router 代码 17:28 <@jrand0m> thecrypto> 你可以跟其他 Destination 通信。I2P 与位置无关——本地和远端一样。 17:29 <@thecrypto> 好的 17:29 < dm> 挺好,但我看不出除了你们 3-4 个人以外,会有人在只能本地测试的情况下写东西。不管怎样,无所谓。 17:29 <@jrand0m> 所以一个 talk 应用可以开两个实例,跟自己聊天,等等 17:30 <@thecrypto> 但当我们加上远程那部分后,这个应用应该就能直接用 17:30 <@jrand0m> dm> 对,这只是让其他人写应用的前置条件。 17:30 <@jrand0m> 没错。 17:30 <@jrand0m> 应用完全不用改就能用 17:30 < co> dm: 这是个测试应用。一旦 router-router 代码写好了,你就可以和别人说话了。 17:30 <@jeremiah> 有仅本地让我们可以并行开发 17:30 < dm> 是啊,但如果应用假定 10ms 延迟,结果是 12 秒,那就不太好了 :) 17:31 <@jrand0m> 同意 dm 17:31 < dm> 顺便问下,对延迟有什么估计吗?:) 17:31 <@jrand0m> 如果我们有 12 秒延迟,那我们就还有很多要做。 17:31 <@jrand0m> 不过我们不会那样。 17:31 <@jrand0m> 估计是 0.6-2.7 秒 17:31 <@jrand0m> 对一个有 5,000,000 个 router 的网络。 17:31 <@hezekiah> 对了,这让我想起——我们得谈谈 ElGamal。 17:31 <@thecrypto> 最久的是建立阶段 17:31 <@jrand0m> (参见 iip-dev 邮件存档里的粗略模型) 17:32 < dm> 更小的网络会更低还是更高? 17:32 <@jrand0m> hezekiah> 2.3:加密。 17:32 <@thecrypto> 之后时间会急剧下降 17:32 <@jrand0m> dm> 更低。 17:32 <@thecrypto> hezekiah: 你大概跟我想到同一个问题 17:32 <@jrand0m> thecrypto> 没错,不过建立时间对消息传递是离线的 [也就是在发消息前先建立 tunnel] 17:32 < dm> 好的,就这么确认你一下 ;) 17:32 <@jrand0m> 呵 17:33 <@jrand0m> 好。SDK 的最后一部分——应用 17:33 <@jrand0m> co/thecrypto:关于 Java 版 talk 实现呢?可行性?时间?计划?兴趣? 17:34 <@thecrypto> 一旦 API 可用,我们大概一周能做出一个 talk,最多两周,co 同意吗? 17:34 <@jeremiah> 聊天可以作为一个 jabber router 来实现,对吧? 17:34 < co> 这应该挺容易做。 17:34 < co> thecrypto: 我同意。 17:34 <@jrand0m> jeremiah> 我不懂 jabber,但如果 jabber 能跑在这个 API 上,那很好 17:35 <@jrand0m> 好的,co 和 thecrypto 17:35 <@jrand0m> jeremiah> 注意这只是一个微不足道的应用,用来做概念验证,不是一个超棒的匿名 IM 系统 :) 17:35 <@jeremiah> 还没到那一步 ;) 17:35 <@thecrypto> 我们以后可以加上那些功能 17:35 <@jeremiah> 好 17:36 <@jrand0m> 呵 17:36 <@thecrypto> 让我们从小处开始 17:36 * jrand0m 把“添加功能:变得超棒”写进日程表 17:36 < some_random_guy> 呵 17:36 < some_random_guy> 好功能 :) 17:36 -!- dm2 [~hifi@anon.iip] 加入了 #iip-dev 17:37 <@jeremiah> jrand0m: 我可能错过了 2.1,不过对把 kademlia 用作 DHT 有何看法?它需要的维护比 Chord 少 17:37 -!- nop [nop@anon.iip] 加入了 #iip-dev 17:37 < nop> 抱歉 17:37 <@jrand0m> 另外,哪天我们需要让 IIP 重设计也跑在这个之上。 17:37 -!- dm [~hifi@anon.iip] 退出 [Ping timeout] 17:37 < nop> 啥? 17:37 < nop> 谁 17:37 < nop> 哪里 17:37 < nop> 何时 17:37 < nop> ? 17:37 -!- dm2 现在名为 dm 17:37 <@jrand0m> 嘿,说曹操曹操到 17:37 < WinBear> 为什么? 17:37 < WinBear> 算了 17:37 < nop> 我其实是个天使 17:37 <@hezekiah> lol 17:38 <@thecrypto> 谁来给 nop 发个日志 17:38 < WinBear> azrel 17:38 <@jrand0m> jeremiah> kademila 是个不错的 DHT,我们一定会在网络规范里审查它以及 chord/tapestry 阵营,还有 sloppy DHTs。 17:38 <@jeremiah> jrand0m: 好的 17:38 <@hezekiah> thecrypto: 我在弄了。:) 17:38 < nop> 我听说有一个很厉害的 17:38 < nop> 叫 chord/middle 17:38 -!- hif [~hifi@anon.iip] 加入了 #iip-dev 17:39 < nop> 不过有个很合适的人可以聊,叫 brandon wiley 17:39 * jrand0m !thwaps nop 17:39 < nop> 我就知道会疼 17:39 <@hezekiah> lol 17:39 <@hezekiah> Brandon Wiley 是谁? 17:39 < nop> 我敢肯定 jrand0m 已经跟他讨论过很多次了 17:39 < nop> :) 17:39 < nop> 谁给我发个日志邮件 17:39 < dm> Brandon 就是 jrandom 的真名,被我抓到了! 17:39 <@hezekiah> 我在弄了。 17:40 <@hezekiah> 别急,nop。:) 17:40 < nop> 哈哈 17:40 < dm> Brandon Wiley 是 Freenet 的第一位程序员,和系统的发明者 Ian Clarke 一起 创立了开发工作 17:40 < nop> userx 在吗 17:40 < WinBear> 你可以跟我的 brandon wiley 聊 17:40 <@hezekiah> 好。我发过去了……如果我的邮件客户端肯配合把一个 15K 的附件发出去的话。 17:41 <@thecrypto> 我们聊过很多次 :) 17:41 <@hezekiah> nop: UserX 不在这边也不在那边。 17:41 <@hezekiah> 好! 17:41 <@hezekiah> 日志发出去了,nop!去看吧。:) 17:41 <@thecrypto> 现在我们等他 17:41 <@jrand0m> 好,趁给 nop 一会儿补进度,大家有没有关于 SDK 的想法?;) 17:41 <@hezekiah> jrand0m: 现在我把日志的事搞定了……kademlia 是啥? 17:42 <@jrand0m> 又一个学术派的 DHT :) 17:42 <@hezekiah> 有 kademlia 的网页链接吗? 17:42 -!- Erazerhead [JohnDoe@anon.iip] 加入了 #iip-dev 17:42 <@jeremiah> http://kademlia.scs.cs.nyu.edu/ 17:42 <@hezekiah> 谢谢。:) 17:42 <@thecrypto> YAADHT? 17:42 <@hezekiah> lol 17:42 <@hezekiah> 现在的名字啊……真是的! 17:43 <@jrand0m> 如果提到了你不懂的计算机科学内容,就去 citeseer.nj.nec.com/cs 看看 17:43 < WinBear> klamidia? 17:43 <@hezekiah> 好。 17:43 < nop> jrand0m: 我正要说 citeseer 呢 17:43 < dm> SDK 的预计时间? 17:44 * jrand0m 避免把性病带进 I2P 17:44 * jrand0m 希望 SDK 下周能出。也许下周五? 17:44 * thecrypto 又交叉起一双手指 17:45 <@jrand0m> 好。进入 2.3) 加密。 17:45 * hezekiah 想象 thecrypto 交叉了大约 13 双手指……然后意识到现在应该用完了。 17:45 <@hezekiah> 耶! 17:45 * jrand0m 戳了戳 nop 确认他在不在 17:45 <@hezekiah> 加密! 17:45 <@hezekiah> 我先抛个话题。:) 17:46 <@thecrypto> 我也有个话题 17:46 <@thecrypto> 我先来!:) 17:46 * jrand0m 没有,所以你们俩争吧 17:46 <@hezekiah> 让 thecrypto 先来吧。:) 17:46 <@jrand0m> thecrypto> 请讲 17:46 <@jrand0m> :) 17:46 <@thecrypto> 好,说说 ElGamal 17:47 <@thecrypto> 我们得确定要不要用共同的 p 和 alpha 17:47 -!- some_random_guy [~dan@anon.iip] 退出 [BitchX: the original point-and-click interface.] 17:47 <@thecrypto> 用共同的 p 和 alpha 的问题在于我们得想办法让所有人的密钥同时更换 17:48 <@jrand0m> 也就是:非常糟糕。 17:48 < co> thecrypto: 抱歉,p 和 alpha 是什么? 17:48 <@thecrypto> 优点是我们可以挑特别优化过的,而且公钥传输的数据量很小 17:48 * jrand0m 觉得除了省点儿比特外,没有理由用共同的 p 和 alpha 17:48 <@thecrypto> co: 简单说,就是特殊的大数 17:49 <@jrand0m> thecrypto> 我们仍然可以针对经常加密到的目标的 p 和 alpha 做优化 17:49 <@thecrypto> 还是需要我解释一下 elgamal 的工作原理 17:49 <@thecrypto> jrand0m: 对 17:49 < co> thecrypto: 好的。 17:49 <@thecrypto> 我们也可以让每个人拥有不同的 p 和 alpha 17:50 <@jeremiah> 给感兴趣的人: http://www.wikipedia.org/wiki/ElGamal_discrete_log_cryptosystem 17:50 <@thecrypto> 这意味着传输的数据量会大很多,我们得想办法把它打包进去 17:50 <@jrand0m> 好的,谢谢 jeremiah 17:50 <@jrand0m> 大很多? 17:50 <@jrand0m> 我以为如果 p 和 alpha 可变,我们可以用更小的 p 和 alpha? 17:51 <@thecrypto> 不再是 160 位的数,而是两个 1024 位和一个 160 位 17:51 <@thecrypto> 总共 2308 位 17:51 <@hezekiah> 288 字节 17:51 <@hezekiah> 小意思。 17:52 <@jrand0m> 好,这不算太糟。我们本来规划是 256 字节 17:52 <@hezekiah> 这些密钥也不是那么频繁传输,对吧? 17:52 <@jrand0m> 再多 32 字节问题不大 17:52 <@jrand0m> hezekiah> 它们会插入到 DHT 里 17:52 <@hezekiah> 啊! 17:52 <@hezekiah> 这就是为什么我们想让它小。 17:53 <@thecrypto> 还有,ElGamal 可能还有另一个问题我们也要考虑一下 17:53 <@jrand0m> 嗯,如果 RouterInfo 结构大概 10K 左右也不是什么问题 17:53 -!- mrflibble [mrflibble@anon.iip] 加入了 #iip-dev 17:53 <@jrand0m> 好的,什么问题 thecrypto? 17:53 <@thecrypto> 消息膨胀是 2,亦即一次加密或签名的大小是消息大小的两倍 17:54 <@jrand0m> ElG 只对 AES 密钥做加密 17:54 <@jrand0m> ElG 签名只对 SHA256 的哈希做 17:55 <@thecrypto> 好,只是也提一下 17:55 <@hezekiah> jrand0m: 这让我非常困惑。 17:55 <@thecrypto> 回到最初的问题,我们要不要共享 p 和 alpha,还是每个人用不同的 p 和 alpha? 17:55 <@jrand0m> hezekiah> 嗯?你看了数据结构规范里的 #Payload 吗? 17:55 <@jrand0m> 对此你有什么想法/问题吗 hezekiah? 17:55 * dm 现在懂 DHT(分布式哈希表)是怎么工作的了。 17:55 <@jrand0m> nop> 有想法吗? 17:55 <@jrand0m> 太好了 dm 17:55 <@hezekiah> 如果签名是被签数据大小的两倍,那为什么 IC2P 规范里说签名是 128 字节? 17:56 < nop> 没有 17:56 < nop> 共享 p 17:56 <@hezekiah> 不应该是 512 吗? 17:56 <@thecrypto> 是对字节的哈希 17:56 < nop> 和 alpha 17:56 < dm> 似乎加入一个 DHT 要做很多工作,但我想它能运作。 17:56 < nop> 共享基数,共享 p 17:56 <@jrand0m> hezekiah> 位 / 字节。 17:56 < nop> 这会消除很多风险 17:56 <@thecrypto> 那我们要多大? 17:56 <@hezekiah> 嗯 17:56 <@jrand0m> nop> 三年后,我们会希望所有人同时更换他们的 p 和 alpha 吗? 17:56 < nop> 并让我们的协议符合标准 17:57 <@thecrypto> 因为这确实打开了针对 p 和 alpha 的巨大攻击面 17:57 < nop> jrand0m: 现在有所谓的“熟化的素数(cooked primes)”,我看的就是现在这个时间点 17:57 <@thecrypto> 一旦成功,整个网络就会垮掉 17:57 < nop> 我相信我们可以与时俱进 17:57 < nop> 但建议使用一个静态的、Oakley 认可的素数 17:57 < nop> 因为它们经过了充分的安全审查 17:58 < nop> 这比我们关于生成素数(还是概率素数)的任何假设都更靠谱 17:58 <@thecrypto> 如果它不是素数,加密或签名都不会工作,我们就把它扔掉 17:59 <@jrand0m> 同意,他们的素数更好。所以当这些素数被分解时,所有使用它们的人都会暴露,对吗? 17:59 < dm> 呃,我得走了。这有记录吧? 17:59 < nop> jrand0m: 对 17:59 <@thecrypto> 是的 17:59 < nop> jrand0m: 发生这种事我们都会知道 17:59 < nop> 我不想冒生成素数的风险 17:59 -!- dm [~hifi@anon.iip] 退出 [it better be] 17:59 <@thecrypto> 我们怎么知道? 17:59 < nop> 另外这也增加了我们的计算时间 17:59 -!- hif [~hifi@anon.iip] 退出 [] 17:59 < nop> thecrypto: 如果你用标准定义的 Oakley 素数集,当它被攻破时你会知道 18:00 <@thecrypto> 怎么知道? 18:00 < nop> 因为那会是非常公开的新闻 18:00 <@jrand0m> nop> 除非是 NSA 攻破,我们才会知道。 18:00 < co> nop: 有多少这样的素数?如果不多,用它们是个风险。 18:00 <@thecrypto> 是啊,被动窃听仍然是威胁 18:00 <@thecrypto> 我可以写个程序来生成 p 和 alpha 并在大约一小时内测试它们 18:00 <@jrand0m> nop> 除非关系到国家安全,否则一定是非常公开的新闻。 18:00 < co> 等等……不对,这是个蠢问题。算了。 18:01 < nop> 的确如此,但我从密码学界的多个联系人那里得知,如果被攻克,也会在 NSA 之前被攻克 18:01 < nop> 我们自己生成素数并不能因此更安全 18:01 < nop> 如果他们把那些素数攻破 18:01 < nop> 你不如考虑用新的算法 18:01 <@jrand0m> 好。 18:02 < nop> 请用静态的,这会减少密码分析的问题,并降低我们在加密上犯错的风险 18:02 <@jrand0m> 我本来还在犹豫,使用共享的、大家认可的素数我也可以。 18:02 <@thecrypto> 好,那我们挑个素数吧 18:02 <@jrand0m> nop> 我们在甘特图上还是安排你来做加密规范 18:02 <@thecrypto> 他们给这些素数配了生成元吗? 18:02 < nop> 有 18:02 < nop> 我有 18:03 < nop> 2 18:03 < nop> 这是我会拿到的那些素数的一个本原根 18:03 < nop> 你们要多大位数的素数? 18:03 <@thecrypto> 我想在 2048-4096 之间 18:03 <@hezekiah> 我们用的是 2048 的密钥,对吧? 18:03 < nop> 对,所以素数用 4096 或更大 18:04 <@thecrypto> 因为共享意味着我们暴露在明面上 18:04 <@thecrypto> 如果这个东西流行起来,这会是个非常值得攻破的素数 18:04 * cohesion 错过了会议 18:04 < co> 你们在 ElGamal 里用这个素数,对吧? 18:04 <@hezekiah> 那密钥会是 4096 位? 18:04 <@cohesion> 有人记录了吗? 18:04 < nop> co 对 18:04 < nop> 不,hezekiah 不会 18:04 < nop> 密钥会是 2048 17:04 <@cohesion> 好的 18:04 < nop> 素数会大于 4096 18:04 * cohesion 回去继续工作 18:04 <@hezekiah> 好,请原谅我糟糕的理解力。:) 18:04 < nop> 马上回来 18:05 <@thecrypto> p 和 alpha 可以固定,alpha 用 2,p 用我们选的素数 18:05 < nop> 好,我发邮件给你们一些素数候选 18:05 < nop> 给我几个小时,我有点工作要处理 18:05 * jeremiah 去吃晚饭,回头看日志 18:05 <@thecrypto> 秘密密钥是 a,一个在 0 到 p - 2 之间的数 18:05 <@thecrypto> 公钥是 2^a mod p 18:06 < nop> 我们能转到下一个话题,等会儿再回来吗?这样我能在的时候一起讨论,我马上回来,在上班,得赶紧处理个任务 18:06 <@hezekiah> 好,你把我的“x”叫做“a” 18:06 <@hezekiah> ……把我的“g”叫做“alpha”。 18:06 < nop> 请把算法解释挪到私聊里 18:06 <@hezekiah> thecrypto: 对吧? 18:06 <@thecrypto> 对 18:06 <@jrand0m> 好,那 thecrypto、nop 和 hezekiah 稍后把算法细节敲定。 18:06 < nop> 好 18:06 < nop> 没问题 18:06 <@hezekiah> 好……那 thecrypto,你的问题说完了吗? 18:06 <@thecrypto> 那我们继续吧 18:06 < nop> 我会把素数发出来 18:06 <@thecrypto> 是 18:06 <@thecrypto> 的 18:06 <@hezekiah> 好,轮到我了!:) 18:07 <@hezekiah> 我们为什么要用 ElGamal 来做签名? 18:07 <@jrand0m> 好。2.4) 路线图 / 网络协议状态 18:07 <@jrand0m> 还不行,hez :) 18:07 <@jrand0m> 哦 hez 18:07 <@hezekiah> 我什么时候能问? 18:07 -!- dm [~hifi@anon.iip] 加入了 #iip-dev 18:07 <@jrand0m> 既然我们已经有 ElG 公钥,你建议用什么? 18:07 <@thecrypto> 等 nop 回来 18:07 <@jrand0m> 不,你说得对,我说错了。现在就是合适的时间。 18:07 < co> 下一个话题吧。 18:07 <@hezekiah> jrand0m: 问题是这个: 18:07 <@hezekiah> 速度 18:08 <@hezekiah> 我今天玩了一下加密这块,结果大吃一惊。 18:08 <@hezekiah> ElGamal 在验证签名上比 DSA 或 RSA 慢得离谱。 18:08 <@jrand0m> hezekiah> 这是库实现的问题还是算法问题? 18:08 <@hezekiah> 我不清楚。 18:09 <@hezekiah> 但我看了《Applied Crypto》,看到至少部分问题在 ElGamal 本身。 18:09 <@hezekiah> AC 有 DSA、RSA、ElGamal 的签名与验证所需时间的表格。 18:09 <@jrand0m> 那你是建议我们用 RSA 来做加密、解密和签名吗? 18:09 <@hezekiah> 我 18:09 <@hezekiah> 我现在没有十分明确的建议。 18:09 <@jrand0m> ……不过我们可以在 RouterInfo 结构里加一把第二签名公钥 18:10 <@hezekiah> 我只是说,AC 上列出 ElGamal 验证是 9.30 秒。 18:10 <@hezekiah> RSA 是 0.08 秒 18:10 <@thecrypto> 对 1024 位来说 18:10 <@jrand0m> 靠。 18:10 <@hezekiah> DSA 是 1.27 秒 18:10 <@hezekiah> 你现在看到我的问题了吧。 18:10 <@hezekiah> ElGamal 慢得要命…… 18:10 <@jrand0m> 我们需要 <100ms 的验证。 18:10 <@jrand0m> 最好 <10ms 18:10 <@hezekiah> ……而我的 CPU 是 333MHz。 18:11 <@hezekiah> 顺便说,这些计算是在 SPARC II 上做的 18:11 <@hezekiah> 我这边是 AMD K6-2 333MHz。 18:11 <@jrand0m> SPARC 2 是 40MHz 的机器。 18:11 <@hezekiah> 用我的 Python 模块(后端用 C,但感觉有点问题)验证一个 ElGamal 签名。 18:11 < luckypunk> 天啊 18:11 < luckypunk> 好吧 18:11 <@hezekiah> jrand0m: 好的,我对 SPARC 不熟。 18:11 <@hezekiah> 不管怎样,花了大概 20 秒。 18:12 <@hezekiah> 也许稍微更多。 18:12 < luckypunk> 有 1GHz - 2GHz 处理器的人不用担心。 18:12 < co> hezekiah: 那在现代电脑上,验证应该能接受。 18:12 <@hezekiah> DSA 和 RSA 几乎是瞬间完成。 18:12 <@jrand0m> hezekiah> 我知道。SPARC 2 在 1992 年可是快的 18:12 <@hezekiah> 总之,这就是我提出这个问题的原因。 18:12 <@hezekiah> 我们可以加一把 DSA 密钥,但那就意味着两把密钥 18:12 <@thecrypto> 我们还是要考虑一下没有超快机器的用户 18:12 <@hezekiah> 或者我们用 RSA。 18:12 <@jrand0m> 我记得我们选择 ElG 而不是 RSA 的理由并不强。 18:13 <@hezekiah> 或者我们接受更长的验证时间,用 ElG。 18:13 <@jrand0m> thecrypto> 绝对要考虑。 18:13 <@thecrypto> 当初是 nop 说“用 elgamal 吧” 18:13 <@hezekiah> thecrypto: 正是。最终普通用户也会透明地使用 I2P。 18:13 <@jrand0m> 我们会需要能在 386 上启动的发行版,也会需要 applet 内实现。 18:13 <@hezekiah> 普通用户不可能用最先进的硬件。 18:13 < luckypunk> 哦天啊 18:14 < luckypunk> 谁会想用这个,至少也有个 p100 吧。 18:14 < co> 我们不要因为速度快而选择更弱的算法,牺牲安全性。 18:14 <@hezekiah> co: 我不是这个意思。 18:14 <@thecrypto> elgamal 和 DSA 是等价的 18:14 <@jrand0m> 好,那我们重新审视一下 RSA/ElG 的选择。改代码问题不大。 18:14 < luckypunk> 他们可以忍受。 18:14 <@hezekiah> co: RSA 和 DSA 的声誉不比 ElGamal 差。 18:14 < luckypunk> lol 18:14 < luckypunk> 如果你在乎匿名性 18:14 <@hezekiah> thecrypto: 恰恰相反。 18:14 < luckypunk> 你就不会太在乎速度。 18:14 <@thecrypto> hezekiah: 它们都属于同一类通用算法的实现 18:14 < dm> 这很明显应该有人把两个算法的 CPU 占用实际测出来 :) 18:14 <@jrand0m> dm> 如果《Applied Crypto》上 RSA 验证是 ElG 的百分之一,那对我来说就够了。 18:15 <@thecrypto> 我们可以用 ElG 做加解密,用 DSA 做签名/验证 18:15 <@jrand0m> 选项是转到 RSA,或者在 RouterInfo 结构里加一把 DSA 密钥(~再多 256 字节) 18:15 <@hezekiah> 对。但现在 DHT 里就有两把公钥。 18:16 <@jrand0m> 那又怎样? 18:16 < co> 我们只要一把公钥,会少些混乱。 18:16 <@hezekiah> co: 只会让开发者“混乱”……我们需要知道自己在做什么。:) 18:16 <@thecrypto> 我觉得这个也等 nop 来了再讨论 18:16 <@hezekiah> 对。 18:16 <@jrand0m> 但如果它慢 100 倍…… 18:16 <@jrand0m> 不管怎样,我们会把加密设计的讨论放到线下继续。 18:17 <@hezekiah> jrand0m: 发邮件到邮件列表上,好吗? 18:17 < luckypunk> jrand0m: 天,我不介意,如果你连等 40 秒页面加载都受不了,那就滚吧。 18:17 <@thecrypto> 或者等会议主体结束后再说 18:17 <@jrand0m> 我几乎每天都给列表发邮件的 :) 18:17 <@jrand0m> 呵 lucky 18:17 -!- hif [~hifi@anon.iip] 加入了 #iip-dev 18:17 <@jrand0m> 好。 18:17 <@jrand0m> 好的> 2.4) 路线图 / 网络协议状态 18:17 -!- hif 现在名为 dm2 18:18 <@jrand0m> 我在网络协议方面做得很少,除了回复 co 的邮件,因为我一直在做 Java 和 I2CP。 18:18 <@jrand0m> 路线图看起来还在计划上。 18:18 <@jrand0m> 路线图有什么需要改的吗? 18:19 <@jrand0m> 好。如果有,随时邮件列表。 18:19 <@hezekiah> 对。 18:19 -!- dm [~hifi@anon.iip] 退出 [Ping timeout] 18:19 <@jrand0m> 路线图 roadmap.xml 现在在 i2p 的 cvs 模块 i2p/doc/projectPlan 18:19 -!- dm2 现在名为 dm 18:20 <@hezekiah> jrand0m: 让我猜猜……这也在 cathedral 上? 18:20 < nop> 我回来了 18:20 < nop> 抱歉 18:20 <@jrand0m> 好,这部分就这样(我们可以在提问环节再回到网络协议问题)。 18:20 <@jrand0m> 我没有其他子项了 18:20 <@jrand0m> hezekiah> 我不用 sf 18:20 <@thecrypto> 好,既然 nop 回来了,我们快速回到速度问题 18:20 <@hezekiah> 好。 18:21 < nop> 哪个速度问题 18:21 <@thecrypto> ElGamal 验证很慢 18:21 < nop> 对 18:21 < nop> 但 rsa 也慢 18:21 <@jrand0m> nop> 《Applied Crypto》上的基准是 RSA 验证比 ElG 的签名快 100 倍。 18:21 < nop> 嗯 18:22 <@hezekiah> 对我来说,RSA 和 DSA 几乎是瞬间。 18:22 <@hezekiah> ElG 要 20 秒。 18:22 < nop> DSA 就是 el gamal 18:22 <@jrand0m> 所以我们可以转到 RSA,或在 RouterInfo 结构里加一把 DSA 密钥 18:22 < nop> DSA 18:22 < nop> 我对所有带 R 的东西都反感 18:22 < nop> ;) 18:22 * jrand0m 不记得我们选择 ElG 而非 RSA 有什么特别强的理由 18:22 * jrand0m 感到不爽 18:22 <@hezekiah> nop: 能给我们讲讲吗?我们为什么不用 RSA? 18:22 <@hezekiah> 细节越多越好。:) 18:23 < nop> 原因在这里,而且这点有争议,但是 18:23 < dm> 有人有空把 iip-dev 的 URL 私聊给我吗。 18:23 < nop> 破解 RSA 的方法是因式分解 18:23 < dm> 我说的是 iip-dev 邮件列表。 18:23 < luckypunk> RSA 被破解过。 18:23 < luckypunk> 实战中。 18:23 < nop> 是的,512 位的 RSA 被破解过 18:23 < luckypunk> 还是 DES? 18:23 < luckypunk> 呃。 18:23 <@hezekiah> DES 被破解过。 18:23 < nop> 我想你说的是 DES 17:23 < co> luckypunk: 只是特定大小的密钥被攻破。 18:23 <@hezekiah> RSA 还没到那一步。 18:24 < nop> 不管怎样 18:24 < luckypunk> 但可能会。 18:24 < nop> 回到我的观点 18:24 <@hezekiah> 但问题是:2048 或 4096 的 RSA 密钥在今天安全吗? 18:24 <@thecrypto> 等一下 18:24 < nop> 512 位的 RSA 密钥用办公电脑都被破解过 18:24 <@jrand0m> 我们看的是 2048 位的 RSA 或 ElG 18:24 < nop> hezekiah: 会是安全的,但精彩的部分来了 18:24 < nop> 如果你能因式分解 18:24 < nop> 你就能破解 RSA 18:24 < nop> 如果你能计算离散对数,你就能破解 RSA 和 EL gamal 18:24 < nop> 我们离能因式分解更近 18:24 < nop> 比起能计算离散对数 18:24 < nop> 就目前来说 18:24 < luckypunk> 离散对数不是更难吗? 18:25 <@hezekiah> 如果你能快速因式分解,你就能破解 RSA。 18:25 <@hezekiah> luckypunk: 这就是 nop 在说的。 18:25 < luckypunk> 量子计算机。 18:25 < luckypunk> 已经快能用了。 18:25 <@hezekiah> lol 18:25 < nop> 而且在离散对数里,公钥位数的强度比 RSA 的更强 18:25 < nop> 举例来说,768 位的密钥不被 Diffie-Hellman 变体建议使用,但它还没有被证明攻破 18:25 <@hezekiah> 所以结论是我们加一把 DSA 密钥。 18:25 <@thecrypto> nop,别像比尔·盖茨那样说错了,是分解大 n,n = pq 18:25 < nop> 而 512 位的 RSA 密钥已经被攻破 18:25 <@thecrypto> 因为分解素数很容易 18:25 < nop> 谢谢 18:25 < nop> 抱歉 18:25 <@jrand0m> hezekiah> 看起来是这样。 18:26 < nop> 我是想让大家都能听懂 18:26 < nop> 抱歉 18:26 <@thecrypto> 只是澄清一下 18:26 <@jrand0m> 好的 nop,没问题,谢谢 18:26 <@hezekiah> 好。 18:26 < nop> 那就 DSA 18:26 < nop> 吧 18:26 <@hezekiah> 那我们加一把 DSA 密钥? 18:26 < nop> 它也是 Diffie-Hellman 变体 18:26 <@jrand0m> 好,既然这样,我们把加密细节线下继续。 18:26 < nop> 我支持“对数”而不是“因子分解” 18:27 < nop> ;) 18:27 <@hezekiah> 顺便问一下,我们还需要哪些事情继续推进? 18:27 < co> dm: URL 是 http://news.gmane.org/thread.php?group=gmane.comp.security.invisiblenet.iip.devel 18:27 <@thecrypto> hezekiah: 选“魔法素数” 18:27 <@hezekiah> 哦,对了! 18:27 < dm> 谢谢 co,我找到了 jrand0m 的规范。现在我需要的是一台墨粉充足的打印机。 18:27 < nop> 我会发出来 18:27 <@jrand0m> hezekiah> 更新数据结构规范,补上 DSA 的信息,规定 DSA 的密钥大小,等等。 18:27 < nop> 我们线下搞 18:27 <@jrand0m> 呵 dm。 18:28 <@hezekiah> 好,那你还有别的要说的吗,jrand0m? 18:28 <@jrand0m> 好,我的部分说完了。hezekiah> 你有第 3 项? 18:28 <@hezekiah> 对。 18:28 < dm> 呃,图片没显示。 18:28 <@hezekiah> 3.) nop 想加到议程里的东西。 18:28 < dm> jrand0m: 有带图片的‘I2P Network Spec Draft 2003.07.23’可下载吗? 18:29 < co> dm: 是的,我也遇到过这个问题。 18:29 <@jrand0m> dm/co> 去拿第一版的网络规范(两周前的 zip),里面有 png。 18:30 <@jrand0m> (它也在 cvs 里,但还没有匿名/公开) 18:30 < arj> 什么时候会公开?:) 18:30 <@hezekiah> 哇! 18:30 <@hezekiah> 现在 CVS 很快! 18:31 <@jrand0m> arj> 我们尽量避免炒作,所以一旦准备好了就会公开,但会尽量保持低调直到那时。 18:31 < nop> hezekiah: 是 cathedral 那个吗? 18:31 <@jrand0m> arj> 不过我们做的一切目前都是 GPL。 18:31 <@hezekiah> nop: 对 18:31 <@hezekiah> ! 18:31 < dm> 两周前是哪个 zip? 18:31 <@jrand0m> 哦好,你搞定了 hezekiah? 18:31 < arj> jrand0m: 只是想看最新的规范 18:31 <@jrand0m> dm> network_spec_*.zip 我记得是这个 18:31 <@hezekiah> jrand0m: 是的!:) 18:31 < dm> 我也是,要带图片的! 18:31 <@thecrypto> iip-dev 上大部分都有 18:32 <@jrand0m> arj> http://article.gmane.org/gmane.comp.security.invisiblenet.iip.devel/292 几乎包含了全部,只有一个很小的改动没在里面。 18:32 <@jrand0m> (嗯,除了客户端接入层,它现在在一个不同的规范里) 18:33 < arj> 好的谢谢 18:33 <@jrand0m> 客户端接入层规范是 http://article.gmane.org/gmane.comp.security.invisiblenet.iip.devel/298 18:33 < dm> 好,那带图片的 zip 的链接呢? 18:33 <@jrand0m> 好。nop 你有什么要说的吗,还是我们“5) 向群众开放提问/想法”? 18:34 -!- mihi [none@anon.iip] 退出 [Ping timeout] 18:34 * jeremiah 回来了并看完了 backlog 18:34 <@jrand0m> dm> 等下,我找一下 18:34 <@jrand0m> http://article.gmane.org/gmane.comp.security.invisiblenet.iip.devel/269 18:35 < dm> 谢谢 18:35 <@jrand0m> 好,有什么问题/想法吗? 18:35 -!- arj [anders@anon.iip] 退出 [EOF From client] 18:35 < co> 有。 18:35 <@jrand0m> 不客气 18:35 < co> 我们现在到第 5 项了吗? 18:35 * jrand0m 知道你肯定有,co :) 18:35 < co> 目前,客户端到 router 的通信(外发)没有加密。 18:35 <@jrand0m> 是的,因为 nop 比较慢 :) 18:35 <@jrand0m> (该死的有工作的人) 18:36 <@hezekiah> lol 18:36 < co> 假设我有个信任的朋友,想用他的 router 来发出消息。 18:36 <@hezekiah> jrand0m: 你知道的。不是每个人都能承受没有生活。 18:36 <@jrand0m> co> 基本正确。消息的 payload 是加密的,但 I2CP 的其他部分不是 18:36 < co> 那我岂不是有被抓取消息的风险。 18:37 <@hezekiah> 是的。它们会以明文在网上传输。 18:37 <@hezekiah> 除非你通过 ssh tunnel 到他的 router 或类似的方式。 18:37 <@jrand0m> 如果你有个信任的朋友并连接到他的 router,他可以知道你发了或收了消息,但他不知道你发了什么。 18:37 <@jeremiah> 消息不还是会用公钥加密吗? 18:37 <@hezekiah> 哎呀。 17:37 <@hezekiah> 我的错。 18:37 < dm> 我打算用 I2P 来学新东西,不让 9 到 5(Windows 管理、VB 工具)的工作把我变成僵尸。 18:37 <@jrand0m> 我也同意加上 SSL 监听支持,而不是只有 TCP 监听。 18:37 <@hezekiah> 我忘了客户端之间是端到端加密。 18:37 < co> 你的假设是我运行一个本地信任的 router,但如上所述,我可能不想那样做,这样消息就不会和我关联在一起。 18:37 <@jrand0m> 是的 jeremiah,但那只是 payload 18:37 <@jrand0m> 呵 dm 18:37 -!- mihi [none@anon.iip] 加入了 #iip-dev 18:38 <@jrand0m> 嗯。 18:38 <@hezekiah> jrand0m: 为什么不晚些时候再加上客户端到 router 的加密支持? 18:38 <@jrand0m> 你其实最好总有一个本地信任的 router。你也可以让它连接到另一个可信的、非本地的 router。 18:39 < co> 确实,但我想附议 hezekiah 的建议。 18:39 <@jrand0m> hezekiah> 我同意之后加(“之后”的定义:t=0...releaseDate ;)) 18:40 <@jrand0m> 我完全不介意为 I2CP 加上 DH+AES 支持 18:40 < nop> 好 18:40 <@jrand0m> 其实,这些功能也可以按 router 逐个添加 18:41 < nop> jrand0m: 我觉得还需要多态密钥轮换以及干扰(chaff)流量 18:41 < nop> 我确信我们会在之后的会议讨论 18:41 < nop> 只是我的一个旁注 18:41 < nop> 使用密钥集合 18:41 <@jrand0m> 是的,当我们谈 router-router 通信的时候。 18:41 <@jrand0m> (1-2 周后) 18:41 < co> nop: 目前我没在规范里看到干扰流量,但加上会很好。 18:42 <@jrand0m> 有“干扰”,从 router 和 tunnel 参与者测试自身及其对等体这个意义上说。 18:42 -!- arj [~anders@anon.iip] 加入了 #iip-dev 18:42 <@jrand0m> 再加上 DHT 请求相对于 payload 消息来说也是干扰 18:42 < nop> jrand0m: 我会深入研究一下如何规避流量分析并避免泄露任何已知明文 18:42 <@jrand0m> 以及每种传输都会有自己的干扰风格(例如 http 传输会定期去查询 google 上的“cute puppy dogs”,之类的) 18:43 < nop> 那种干扰很好,但我也指加密的干扰 18:43 < nop> 这有助于轮换会话密钥 18:43 < nop> 还能在你的节点不活跃时保持忙碌 18:43 < dm> 也许把那个换成硬核儿童色情,更像“真实”的干扰 18:43 <@jrand0m> 好的。 18:43 < dm> 开玩笑的! 18:43 <@hezekiah> dm: 好,否则我就要 !thwack 你了。 18:43 <@hezekiah> :) 18:44 <@jrand0m> DHT(链路加密)和测试消息(自由路径混合,类似 onion/garlic)不会有已知明文问题 18:44 < nop> 因为新节点在刚启动时流量会少 18:44 <@jrand0m> 而且我们会支持恒定比特率的传输 18:44 < nop> garlic 真棒 18:44 < nop> :) 18:44 < nop> jrand0m: DC-net 风格 :) 18:44 * jrand0m 会议结束后要去做一份加很多大蒜的意面 18:45 < nop> jrand0m: 我指的是 garlic routing 18:45 <@hezekiah> lol! 18:45 <@jrand0m> 我知道 ;) 18:45 < nop> jrand0m: 不管怎样,可以用分组加密来强制恒定比特率,因为 AES 生成 128 位分组 18:45 < nop> ;) 18:45 < nop> 所以我们可以把所有数据都填充成每条消息 16 字节 18:45 <@jrand0m> co> 我对你邮件的回复有道理吗? 18:47 <@jrand0m> *ping* 18:47 <@hezekiah> *pong* 18:47 <@thecrypto> *pong 18:47 <@thecrypto> * 18:47 <@jrand0m> 还有别人有问题吗,还是我的 iproxy 断了? 18:47 <@jrand0m> 呵,好 18:47 <@hezekiah> thecrypto: 分片数据包! 18:47 <@hezekiah> lol 18:48 <@thecrypto> 刚丢了尾巴 18:48 <@thecrypto> 我这 MTU 比较小 :) 18:48 <@hezekiah> jrand0m: 我没有问题了。 18:48 < co> jrand0m: 有,你的回答有道理。 18:48 < co> 我没有更多问题了。 18:48 < dm> 我明天看规范的时候再生问题。 18:49 <@jrand0m> 好,希望你以后还有更多 :) 18:49 <@jrand0m> 太好了 dm 18:49 < dm> 可能一开始会觉得很棒。 18:49 < dm> 好,我走了。祝你们好运! 18:49 -!- dm [~hifi@anon.iip] 退出 [] 18:50 <@jrand0m> 我们在计划里还有一个为期两周的同行评审期,不过在此之前的评审也很欢迎(即使所有细节还没完全写进去) 18:51 <@jrand0m> 好。还有别的问题吗?或者我们把第 52 次会议收尾为一个 102 分钟的会议? 18:52 <@thecrypto> #51 18:52 <@hezekiah> 呃,我看的是 1:57 分钟。 18:52 <@hezekiah> 呃。 18:52 <@hezekiah> 我傻了 18:52 <@hezekiah> 别理我。 18:52 <@hezekiah> 我没问题…… 18:52 <@hezekiah> 有问题的! 18:52 * jrand0m 从来不会加法…… 18:52 <@hezekiah> 现在发言,否则安静到下周二! 18:52 <@hezekiah> 第一次! 18:53 <@hezekiah> ……第二次! 18:53 <@thecrypto> 成交,卖给那个穿扣领衬衫的先生 18:53 <@hezekiah> 成交! 18:53 * jrand0m 走向厨房去做一顿拖了很久的晚餐 18:53 <@jrand0m> 谢谢各位先生女士 18:53 <@hezekiah> 再见各位! 18:53 <@jeremiah> 我该在走之前把源码 checkout 一下 18:53 <@hezekiah> 下周二见! --- 日志关闭 Tue Jul 29 18:53:55 2003