应用密码学协议算法与c源程序
❶ 混沌密码学的分类和特征
混沌流密码研究
胡汉平1 董占球2
(华中科技大学图像识别与人工智能研究所/图像信息处理与智能控制教育部重点实验室
中国科学院研究生院,)
摘要:在数字化混沌系统和基于混沌同步的保密通信系统的研究中存在一些亟待解决的重要问题:数字化混沌的特性退化,混沌时间序列分析对混沌系统安全性的威胁等,已严重影响着混沌流密码系统的实用化进程。为此,提出了通过变换的误差补偿方法克服数字混沌的特性退化问题;构建混沌编码模型完成对混沌序列的编码、采样,由此得到满足均匀、独立分布的驱动序列;引入非线性变换,以抵抗对混沌流密码系统安全性的威胁。
关键词:混沌流密码系统;特性退化;非线性变换;混沌时间序列分析
1. 引言
随着以计算机技术和网络通信技术为代表的信息技术的不断发展和迅速普及,通信保密问题日益突出。信息安全问题已经成为阻碍经济持续稳定发展和威胁国家安全的一个重要问题。众所周知,密码是信息安全的核心,设计具有自主知识产权的新型高性能的密码体制是目前最亟待解决的重要问题。
混沌是确定性系统中的一种貌似随机的运动。混沌系统都具有如下基本特性:确定性、有界性、对初始条件的敏感性、拓扑传递性和混合性、宽带性、快速衰减的自相关性、长期不可预测性和伪随机性[1],正是因为混沌系统所具有的这些基本特性恰好能够满足保密通信及密码学的基本要求:混沌动力学方程的确定性保证了通信双方在收发过程或加解密过程中的可靠性;混沌轨道的发散特性及对初始条件的敏感性正好满足Shannon提出的密码系统设计的第一个基本原则――扩散原则;混沌吸引子的拓扑传递性与混合性,以及对系统参数的敏感性正好满足Shannon提出的密码系统设计的第二个基本原则――混淆原则;混沌输出信号的宽带功率谱和快速衰减的自相关特性是对抗频谱分析和相关分析的有利保障,而混沌行为的长期不可预测性是混沌保密通信安全性的根本保障等。因此,自1989年R.Mathews, D.Wheeler, L.M.Pecora和Carroll等人首次把混沌理论使用到序列密码及保密通信理论以来,数字化混沌密码系统和基于混沌同步的保密通信系统的研究已引起了相关学者的高度关注[2]。虽然这些年的研究取得了许多可喜的进展,但仍存在一些重要的基本问题尚待解决。
1.1 数字混沌的特性退化问题
在数字化的混沌密码系统的研究方向上,国内外学者已经提出了一些比较好的数字混沌密码系统及其相应的密码分析方法:文献[3]提出基于帐篷映射的加解密算法;文献[4]1998年Fridrich通过定义一种改进的二维螺旋或方形混沌映射来构造一种新的密码算法;文献[5,6]提出把混沌吸引域划分为不同的子域,每一子域与明文一一对应,把混沌轨道进入明文所对应的混沌吸引域子域的迭代次数作为其密文;在文献[7]中,作者把一个字节的不同比特与不同的混沌吸引子联系起来实现加/解密;文献[8]较为详细地讨论了通过混沌构造S盒来设计分组密码算法的方法;文献[9,10]给出了混沌伪随机数产生的产生方法;英国的SafeChaos公司将混沌用于公钥密码体制,推出了CHAOS+Public Key (v4.23)系统[11];等等。但是,这些数字混沌系统一般都是在计算机或其它有限精度的器件上实现的,由此可以将混沌序列生成器归结为有限自动机来描述,在这种条件下所生成的混沌序列会出现特性退化:短周期、强相关以及小线性复杂度等[12-15],即数字混沌系统与理想的实值混沌系统在动力学特性上存在相当大的差异。它所带来的混沌密码系统安全的不稳定性是困扰混沌密码系统进入实用的重要原因[16]。尽管有人指出增加精度可以减小这一问题所造成的后果,但其代价显然是非常大的。
1.2 对混沌流密码系统的相空间重构分析
目前,对混沌保密通信系统的分析工作才刚刚起步,主要方法有:统计分析(如周期及概率分布分析和相关分析等)、频谱分析(包括傅立叶变换和小波变换等)和混沌时间序列分析[17]。前两者都是传统的信号分析手段,在此就不再赘述,而混沌时间序列是近20年来发展的一门扎根于非线性动力学和数值计算的新兴学科方向。
从时间序列出发研究混沌系统,始于Packard等人于1980年提出的相空间重构(Phase Space Reconstruction)理论。众所周知,对于决定混沌系统长期演化的任一变量的时间演化,均包含了混沌系统所有变量长期演化的信息(亦称为全息性),这是由混沌系统的非线性特点决定的,这也是混沌系统难以分解和分析的主要原因。因此,理论上可以通过决定混沌系统长期演化的任一单变量的时间序列来研究混沌系统的动力学行为,这就是混沌时间序列分析的基本思想。
混沌时间序列分析的目的是通过对混沌系统产生的时间序列进行相空间重构分析,利用数值计算估计出混沌系统的宏观特征量,从而为进一步的非线性预测[18](包括基于神经网络或模糊理论的预测模型)提供模型参数,这基本上也就是目前对混沌保密通信系统进行分析或评价的主要思路。描述混沌吸引子的宏观特征量主要有:Lyapunov指数(系统的特征指数)、Kolmogorov熵(动力系统的混沌水平)和关联维(系统复杂度的估计)等[17]。而这些混沌特征量的估计和Poincare截面法都是以相空间重构以及F.Takens的嵌入定理为基础的,由此可见相空间重构理论在混沌时间序列分析中的重大意义。
1.3 对混沌流密码系统的符号动力学分析
我们在以往的实验分析工作中都是针对混沌密码系统的统计学特性进行研究的,如周期性、平衡性、线性相关性、线性复杂度、混淆和扩散特性等,即使涉及到非线性也是从混沌时间序列分析(如相图分析或分数维估计等)的角度出发进行研究的。然而,符号动力学分析表明,混沌密码系统的非线性动力学分析同样非常主要,基于实用符号动力学的分析可能会很快暴露出混沌编码模型的动力学特性。基于Gray码序数和单峰映射的符号动力学之间的关系,文献[20]提出了一种不依赖单峰映射的初始条件而直接从单峰映射产生的二值符号序列来进行参数估计的方法。分析结果表明,基于一般混沌编码模型的密码系统并不如人们想象的那么安全,通过对其产生的一段符号序列进行分析,甚至能以较高的精度很快的估计出其根密钥(系统参数或初始条件)。
上述结论虽然是针对以单峰映射为主的混沌编码模型进行的分析,但是,混沌流密码方案的安全性不应该取决于其中采用的混沌系统,而应该取决于方案本身,而且单峰映射的低计算复杂度对于实际应用仍是非常有吸引力的。因此,我们认为,如果希望利用混沌编码模型来设计更为安全的密码系统,必须在混沌编码模型产生的符号序列作为伪随机序列输出(如用作密钥流或扩频码)之前引入某种扰乱策略,这种扰乱策略实质上相当于密码系统中的非线性变换。
该非线性变换不应影响混沌系统本身的特性,因为向混沌系统的内部注入扰动会将原自治混沌系统变为了非自治混沌系统,但当自治混沌系统变为非自治混沌系统之后,这些良好特性可能会随之发生较大的变化,且不为设计者所控制。这样有可能引入原本没有的安全隐患,甚至会为分析者大开方便之门。
上述非线性变换还应该能被混沌编码模型产生的符号序列所改变。否则,分析者很容易通过输出的伪随机序列恢复出原符号序列,并利用符号动力学分析方法估计出混沌编码模型的系统参数和初始条件。因此,非线性变换的构造就成了设计高安全性数字混沌密码系统的关键之一。
2. 混沌流密码系统的总体方案
为克服上述问题,我们提出了如下的混沌流密码系统的总体方案,如图1所示:
在该方案中,首先利用一个混沌映射f产生混沌序列xi,再通过编码C产生符号序列ai,将所得符号序列作为驱动序列ai通过一个动态变化的置换Bi以得到密钥流ki,然后据此对置换进行动态变换T。最后,将密钥流(即密钥序列)与明文信息流异或即可产生相应的密文输出(即输出部分)。图1中的初始化过程包括对混沌系统的初始条件、迭代次数,用于组合编码的顺序表以及非线性变换进行初始化,初始化过程实质上是对工作密钥的输入。
在图1所示的混沌编码模型中,我们对实数模式下的混沌系统的输出进行了编码、采样。以Logistic为例,首先,以有限群论为基本原理对驱动序列进行非线性变换,然后,根据有限群上的随机行走理论,使非线性变换被混沌编码模型产生的驱动序列所改变。可以从理论上证明,我们对非线性变换采用的变换操作是对称群的一个生成系,所以,这里所使用的非线性变换的状态空间足够大(一共有256!种)。
3. 克服数字混沌特性退化的方法
增加精度可以在某些方面减小有限精度所造成的影响,但效果与其实现的代价相比显然是不适宜的。为此,周红等人在文献[22]中提出将m序列的输出值作为扰动加到数字混沌映射系统中,用于扩展数字混沌序列的周期;王宏霞等人在文献[23]中提出用LFSR的输出值控制数字混沌序列输出,从而改善混沌序列的性质;李汇州等人在文献[24]中提出用双分辨率的方法解决离散混沌映射系统的满映射问题。上述方法又带来新的问题:使用m序列和LFSR方法,混沌序列的性质由外加的m序列的性质决定;使用双分辨率时,由于输入的分辨率高于输出的分辨率,其效果与实现的代价相比仍然没有得到明显的改善。
为此,我们提出了一种基于Lyapunov数的变参数补偿方法。由于Lyapunov数是混沌映射在迭代点处斜率绝对值的几何平均值,所以,可以将它与中值定理结合对数字混沌进行补偿。以一维混沌映射为例,该补偿方法的迭代式为:
(1)
式中, 为Lyapunov数,ki是可变参数。
参数ki的选择需要满足下面几个条件:
(1)ki的选取应使混沌的迭代在有限精度下达到满映射;
(2)ki的选取应使混沌序列的分布近似地等于实值混沌的分布;
(3)ki的选取应使混沌序列的周期尽可能的长。
根据上述几个条件,我们已经选取了合适的80个参数,并且以Logistic为例对该变参数补偿方法输出的混沌序列进行了分析。在精度为32位的条件下,我们计算了混沌序列的周期,其结果如下:
除周期外,我们还对复杂度、相关性和序列分布进行了检测。从结果可知,该变参数补偿方法,使得在不降低混沌的复杂度基础上,增长其周期,减弱相关性,使其逼近实值混沌系统。该方法不仅非常明显地减小了有限精度所造成的影响,使数字混沌序列的密度分布逼近实值混沌序列的理论密度分布,改善数字混沌伪随机序列的密码学性质,而且极大地降低实现其方法的代价。
4. 非线性变换
为克服符号动力学分析对混沌密码系统的威胁,我们根据有限群上的随机行走理论提出了一种非线性变换方法,并对引入了非线性变换的混沌密码系统进行了符号动力学分析,分析结果表明,引入了非线性变换的模型相对一般混沌编码模型而言,在符号动力学分析下具有较高的安全性。以二区间划分的模型为例,我们选用Logistic映射作为图1中的混沌映射f,并根据符号动力学分析中的Gray码序数[20,21]定义二进制码序数,见2式。
(2)
二值符号序列S的二进制码序数W(S)∈(0, 1)。注意,这里的Wr(xi)并不是单值的,因为同样的状态xi可能对应不同的置换Bi。
图2 在2区间划分下产生的二值符号序列的Wr(xi)分析
图2中的Wr(xi)为参数r控制下从当前状态xi出发产生的二值符号序列的二进制码序数。图2(a)是未进行非线性变换时的情形,可以看出,其它三种进行非线性变换时的情形都较图2(a)中的分形结构更为复杂。由此可见,引入了非线性变换的混沌模型相对一般混沌编码模型而言,在符号动力学分析下具有较高的安全性。
5. 混沌流密码系统的理论分析和数值分析结果
5.1 理论分析结果
密钥流的性质直接关系到整个流密码系统的安全性,是一个极为重要的指标。我们对密钥流的均匀、独立分布性质和密钥流的周期性质给出了证明,其结果如下:
(1)密钥留在0,1,…,255上均匀分布。
(2)密钥流各元素之间相互独立。
(3)密钥流出现周期的概率趋向于零。
(4)有关密钥流性质的证明过程并不涉及改变非线性变换的具体操作,也不涉及具体的驱动序列产生算法,仅仅要求驱动序列服从独立、均匀分布,并且驱动序列和非线性变换之间满足一定的条件,这为该密码系统,特别是系统驱动部分的设计和改进留下余地。
总之,该密码系统可扩展,可改进,性能良好且稳定。
5.2 数值分析结果
目前,基本密码分析原理有:代替和线性逼近、分别征服攻击、统计分析等,为了阻止基于这些基本原理的密码分析,人们对密码流生成器提出了下列设计准则:周期准则、线性复杂度准则、统计准则、混淆准则、扩散准则和函数非线性准则。
我们主要根据以上准则,对本密码系统的密钥流性质进行保密性分析,以证明其安全性。分析表明:混沌流密码系统符合所有的安全性设计准则,产生的密钥序列具有串分布均匀、随机统计特性良好、相邻密钥相关性小、周期长、线性复杂度高、混淆扩散性好、相空间无结构出现等特点;该密码系统的工作密钥空间巨大,足以抵抗穷举密钥攻击。并且,由于我们采用了非线性变换,所以该密码系统可以抵抗符号动力学分析。
6. 应用情况简介
该混沌流密码系统既有效的降低了计算复杂度,又极大的提高了密码的安全强度,从而为混沌密码学及其实现技术的研究提供了一条新的途径。该系统已于2002年10月30日获得一项发明专利:“一种用于信息安全的加解密系统”(00131287.1),并于2005年4月获得国家密码管理局的批准,命名为“SSF46”算法,现已纳入国家商用密码管理。该算法保密性强,加解密速度快,适合于流媒体加密,可在银行、证券、网络通信、电信、移动通信等需要保密的领域和行业得到推广。该加密算法被应用在基于手机令牌的身份认证系统中,并且我们正在与华为公司合作将加密算法应用于3G的安全通信之中。
参考文献
[1] Kocarev L, Jakimoski G, Stojanovski T, Parlitz U, From chaotic maps to encryption schemes, In Proc. IEEE Int. Sym. CAS. 1998, 4: 514-517
[2] Kocarev L, Chaos-based cryptography: A brief overview, IEEE Circuits and Systems, 2001, 1(3): 6-21
[3] Habutsu T, Nishio Y, Sasase I, Mori S, A secret key cryptosystem by iterating a chaotic map, in Proc. Advances in Cryptology-EUROCRYPT’91, Springer, Berlin, 1991, 127-140
[4] Fridrich J, Symmetric ciphers based on two-dimensional chaotic maps, Int. J. Bifurcation Chaos, vol.8, no.6, 1998, 1259-1284
[5] Baptista M S, Cryptography with chaos, Phys. Lett. A., 1998, 240: 50-54
[6] Wai-kit W, Lap-piu L, Kwok-wo W, A modified chaotic cryptographic method, Computer Physics Communications, 2001, 138:234-236
[7] Alvarez E, Fernandez A, Garcia P, Jimenez J, et al, New approach to chaotic encryption, Phys. Lett. A, 1999, 263: 373-375
[8] Jakimoski G, Kocarev L, Chaos and cryptography: Block encryption ciphers based on chaotic maps, IEEE Tran. CAS-I, 2001, 48: 163-169
[9] Stojanovski T, Kocarev L, Chaos-based random number generators—Part I: Analysis, IEEE Tran. CAS-I, 2001, 48(3):281-288
[10] Stojanovski T, Pihl J, Kocarev L, Chaos-based random number generators—Part II: Practical Realization, IEEE Tran. CAS-I, 2001, 48(3):382-385
[11] http://www.safechaos.com/chpk.htm
[12] 王育民,信息安全理论与技术的几个进展情况,中国科学基金,2003,2,76-81
[13] Borcherds P.H., Mccauley G.P., The digital tent map and the trapezoidal map, Chaos, Solitons & Fractal, 1993, 3(4): 451-466
[14] Palmore L, et al, Computer arithmetic, chaos and fractals, Physica, 1990, D42:99-110
[15] Shujun L, Qi L, Wenmin L, Xuanqin M and Yuanlong C, Statistical properties of digital piecewise linear chaotic maps and their roles in cryptography and pseudo-random coding, Cryptography and Coding, 8th IMA International Conference Proceedings, LNCS, vol.2260, pp.205-221, Springer-Verlag, Berlin, 2001
[16] 王育民,混沌序列密码实用化问题,西安电子科技大学学报,1997,24(4):560-562
[17] 吕金虎,陆君安,陈士华,混沌时间序列分析及其应用,武汉大学出版社,2002
[18] 冯登国 着,密码分析学,北京:清华大学出版社,2000
[19] B.Schneier着,吴世忠等译,应用密码学-协议、算法与C原程序,北京:机械工业出版社,2000
[20] Xiaogang Wu, Hanping Hu, Baoliang Zhang, Parameter estimation only from the symbolic sequences generated by chaos system, Chaos, Solitons & Fractals, 2004, 22(2):359-366
[21] Hanping Hu, Xiaogang Wu, Zuxi Wang, Synchronizing chaotic map from two-valued symbolic sequences, Chaos, Solitons & Fractals, 2005, 24(4):1059-1064
[22] Zhou H., Ling X.T., Realizing finite precision chaotic systems via perturbation of m-sequences, Acta Electron. Sin, 1997, vol.25, no.7, 95-97
[23] 王宏霞,虞厥邦,Logistic-map混沌扩频序列的有限精度实现新方法,系统工程与电子技术,2002,vol.24, no.2
[24] Zhou L.H., Feng Z.J., A new idea of using one-dimensional PWL map in digital secure communications—al resolution approach, IEEE Tran. On Circuits and Systems—II: Analog and Digital Signal Proceedings, 2000, vol.47, no.10, Oct.
❷ 请高手推荐几本密码学的入门书籍
欧密会、美密会1981-1997年全部论文
http://maths.utime.cn:81/Crypt1981-1997/
欧密会、美密会、亚密会、PKC、FSE五大会议1998-2003年全部论文
http://maths.utime.cn:81/Crypt1998-2003/contents.htm
现代密码学理论与实践,[英]Wenbo Mao着 王继林 伍前红等译,电子工业出版社,2004
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2831&page=1
Modern Cryptography - Theory And Practice,现代密码学 理论与实践,英文版,毛文波
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2847&page=1
密码学基础,[以]戈德里克(Goldreich,O.)编着 温巧燕 杨义先译,2003,人民邮电出版社
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2845&page=1
密码学基础(英文版),[以色列]戈德赖克(Goldreich,O.)着,电子工业出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2844&page=1
密码学原理与实践(第二版),[加]斯廷森(Stinson,D_R_)着 冯登国译,电子工业出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2839&page=1
密码学与网络安全:原理与实践(第2版)[英文版],[美]斯托林斯着,清华大学出版社,2002
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2841&page=1
《应用密码学:协议、算法与C源程序》中文翻译电子版,WhitField Diffie着
http://maths.utime.cn:81/bbs/dispbbs.asp?b...6&ID=517&page=1
《密码学导引》电子版,冯登国、裴定一编着
http://maths.utime.cn:81/bbs/dispbbs.asp?b...6&ID=429&page=1
代数和编码 修订版 ;万哲先 又名《代数与编码》
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2704&page=1
密码学引论,张焕国 刘玉珍编着,武汉大学出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2842&page=1
密码学概论(中文版),[美]Wade Trappe Lawre,人民邮电出版社,2004
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2846&page=1
密码学与网络安全技术基础,汤惟主编,机械工业出版社,2004
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2840&page=1
ICSA密码学指南,[美]尼科尔斯(Nichols,R_K_)主编 吴世忠 郭涛
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2838&page=1
计算机密码学——计算机网络中的数据保密与安全 (第3版),卢开澄编着,清华大学出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2837&page=1
计算机密码学及其应用,赖溪松 肖国镇,国防工业出版社,2000
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2836&page=1
密码学,宋震等编着,中国水利水电出版社,2002
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2835&page=1
频谱理论及其在密码学中的应用,冯登国着,科学出版社,2000
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2834&page=1
现代密码学,沈鲁生 沈世镒编着,科学出版社,2002
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2833&page=1
现代密码学,杨波编着,清华大学出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2832&page=1
现代密码学中的布尔函数,温巧燕 钮心忻 杨义先,科学出版社,2000
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2830&page=1
隐显密码学,[美]沃纳(Wayner,P_)着 杨力平等译,电子工业出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2829&page=1
应用密码学,孙淑玲编着,清华大学出版社,2004
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2828&page=1
应用密码学,王衍波 薛通编着,机械工业出版社,2003
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2827&page=1
应用密码学教程,胡向东魏琴芳编着,电子工业出版社,2005
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2826&page=1
战争中的数学 军事密码学,李长生 邹祁编着
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2717&page=1
密码分析学(冯登国)
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2716&page=1
《组合密码学》,沈世镒
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2461&page=1
《对称密码学》,胡予濮等编着,机械工业出版社,2002
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2065&page=1
密码学进展——CHINACRYPT’92第二届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...6&ID=412&page=1
密码学进展——CHINACRYPT’94第三届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...6&ID=419&page=1
密码学进展——CHINACRYPT’96第四届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...6&ID=420&page=1
密码学进展——CHINACRYPT’98第五届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...6&ID=421&page=1
密码学进展——CHINACRYPT'2000,第六届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2334&page=1
密码学进展——CHINACRYPT'2002,第七届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2333&page=1
密码学进展——CHINACRYPT'2004,第八届中国密码学学术会议论文集
http://maths.utime.cn:81/bbs/dispbbs.asp?b...&ID=2843&page=1
http://www.smatrix.org/
❸ 计算机专业都学些什么
计算机专业大概可以分三个方向:
计算机科学与技术、网络工程、还有软件工程。好多课程这三个专业都要学习。
1、计算机科学与技术高级语言程序设计(C、C++等)、汇编语言程序设计、离散数学、数据结构与算法、计算机组成原理、编译原理、操作系统、面向对象程序设计、计算机网络组成原理等。
2、网络工程高级语言程序设计、汇编语言程序设计、离散数学、面向对象的系统分析与程序设计、数据结构与算法分析、微机系统与接口技术、操作系统、数据库原理、计算机组成与原理、计算机网络、JAVA技术、编译原理、互联网技术、信息系统安全等。
3、软件工程计算机组成原理、计算机网络、高级语言程序设计、汇编语言程序设计、数据结构、离散数学、软件开发原理等。
❹ 求助 关于计算机科学与技术专业 经典书籍
1、Java
Java编程语言(第三版)---Java四大名着----James Gosling(Java之父)
Java编程思想(第2版)----Java四大名着----Bruce Eckel
Java编程思想(第3版)----Java四大名着----------------Bruce Eckel
JAVA 2核心技术 卷I:基础知识(原书第7版)---Java四大名着-----Cay Horstmann
JAVA 2核心技术 卷II:高级特性(原书第7版)----Java四大名着-----Cay Horstmann
Effective Java中文版------Java四大名着--------Joshua Bloch
精通Struts:基于MVC的Java Web设计与开发---孙卫琴
精通Hibernate:Java对象持久化技术详解---孙卫琴
Tomcat与Java Web开发技术详解------------孙卫琴
Java与模式------------------------------阎宏
2、c#
C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑”
C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑”
.NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王
c#Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王
.NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王
.NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王
3、C++
C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”
C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman
C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis
C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”
深度探索C++对象模型---c++八大金刚----Stanley B.Lippman
Essential C++中文版---c++八大金刚---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers
More Effective C++中文版----c++八大金刚------Scott Meyers
C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel
C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel
C++程序设计--------------------------谭浩强
C++ 程序设计教程(第2版)--------------钱能
C++ Primer Plus(第五版)中文版---Stephen Prata
广博如四库全书The c++ programming language、c++ Primer
深奥如山重水复Inside the c++ object model
程序库大全The c++ standard libray
工程经验之积累Effective c++、More Effective c++、Exceptional c++
c++八大金刚:
1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者
2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++网络全书代表,圣经。
3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++网络全书代表。
4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。
5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。
6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。
7、The c++ standard libray---c++标准库的网络全书。
8、设计模式:可复用面向对象软件的基础------good!
4、c
C程序设计语言(第2版·新版)---c语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父”
C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata
C程序设计(第三版)---------------------------谭浩强
C语言大全(第四版)---------------------------HERBERT SCHILDT
C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON
C语言参考手册(原书第5版)--------------------------Samuel P.Harbison
C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱与缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师”
Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山北斗”---
.NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北斗”---,Francesco Balena“vb首席大师”
Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师”
Visual Basic.NET 从入门到精通-------------------------Petroutsos,E.
高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架构剖析)----------李维
Delphi 7高效数据库程序设计--------------李维
面向对象开发实践之路(Delphi版)----------李维
7、VC
Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”---
Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”---
Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”---
深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷
MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff Prosise
Visual C++ 技术内幕(第4版)--MFC四大天王”--------David Kruglinski
深入解析MFC-------------MFC四大天王”-----------George Shepherd
Visual C++.NET 技术内幕(第6版)-MFC四大天王”------------David Kruglinski
8、VF
Visual Foxpro程序设计参考手册-------------------张洪举
专家门诊——Visual FoxPro开发答疑160问-------------------张洪举
Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举
Visual FoxPro软件开发模式与应用案例-------------------张洪举
9、黑客
应用密码学(协议算法与C源程序-----------Bruce Schneier
网络信息安全的真相-----------Bruce Schneier
黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE
软件加密技术内幕------------看雪学院
加密与解密——软件保护技术与完全解决方案------------看雪学院
加密与解密(第二版)--------段钢
10、汇编
Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey
80*86、奔腾机汇编语言程序设计---------Barry B. Brey
Windows环境下32位汇编语言程序设计(第2版)-----------罗云彬
IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵
IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL着,沈美明 温冬蝉译
11、驱动开发
Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant
Windows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河
WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河
12、网络
计算机网络第四版中文版----网络编程三剑客--------------Andrew S.Tanenbaum
TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客
UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客
用TCP/IP进行网际互联-----------Douglas E. Comer
高级TCP/IP编程-------------------Jon C. Snader
C++网络编程-----------------------Douglas Schmidt
UNIX环境高级编程(第2版)--------------------Richard Stevens
13、算法
计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑
算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑
离散数学及其应用----------Kenneth H.Rosen
具体数学—计算机科学基础--------Donald.E.Knuth
14、图形编程
Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书
15、数据结构
数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东 沈官林
数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林 孙晓东等机械工业出版社
16、软件工程
设计模式--可复用面向对象软件的基础
重构—改善既有代码的设计
17、操作系统
深入理解计算机系统(修订版)-------RANDAL E.BRYANT
18、Unix
UNIX 网络编程 卷I 套接字联网API(英文版 第三版
UNIX 编程艺术
UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经
UNIX环境高级编程(英文影印版)(第2版)
99-UNIX环境高级编程(第2版)
UNIX环境高级编程(第2版)---UNIX编程“圣经
UNIX网络编程 第1卷:套接口API(第3版)
UNIX网络编程卷2:进程间通信(第2版)(英文影印版)
UNIX 网络编程(第二版)第2卷:进程间通信
UNIX编程环境
UNIX 网络编程 卷I 套接字联网API(英文版 第三版
UNIX系统编程
UNIX环境高级编程
UNIX环境高级编程(英文影印版
88-linux内核分析及编程
UNIX 网络编程 卷I 套接字联网API(英文版 第三版)
UNIX网络编程 第1卷:套接口API(第3版)
UNIX 网络编程(第二版)第2卷:进程间通信
UNIX网络编程卷2:进程间通信(第2版)(英文影印版)
UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API
UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)
UNIX环境高级编程
UNIX 环境高级编程(英文版)
UNIX环境高级编程(第2版)
Unix技术手册
19、Linux
Linux内核设计与实现
Linux内核完全注释
LINUX内核分析及编程
GNU/Linux 编程指南(第二版)
Linux设备驱动程序(第三版)
嵌入式设计及Linux驱动开发指南——基于ARM 9处理器
Linux设备驱动程序 第三版(英文影印版)
Linux内核设计与实现(第2版)
Linux内核设计与实现(英文影印版)(第2版)
linux技术手册
20、游戏编程
Windows游戏编程大师技巧(第二版
游戏之旅--我的编程感悟
OpenGL超级宝典:第三版
OpenGL编程指南(第四版)
Java 游戏高级编程
J2ME手机游戏编程入门
游戏之旅——我的编程感悟
游戏开发中的人工智能(英文影印版)
3D游戏:卷2 动画与高级实时渲染技术
面向对象的游戏开发
Java 游戏高级编程
3D游戏编程大师技巧
游戏编程精粹
面向对象的游戏开发
3D游戏 卷1:实时渲染与软件技术
3D游戏:卷2 动画与高级实时渲染技…
J2ME手机游戏编程入门
Direct3D游戏编程入门教程(第二版…
21、移动开发
Windows Mobile手机应用开发
SYMBIAN OS C++手机应用开发
68-Windows Mobile手机应用开发--傅曦 齐宇 徐骏
48-SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON着,周良忠 王伯欣译
68-SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON着,周良忠译
Windows CE.net内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林
嵌入式系统Windows CE 开发技巧与实例--傅曦
Palm OS编程实践---绝版
❺ C语言源程序是由什么构成的
C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出、运算构成。
1、数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
5、字符串
C语言的字符串其实就是以'