sim卡安全问题

2023-11-17

USIM:存储支持鉴权密钥K(是整个UMTS安全体系的核心)。接受参数有:随机数(RAND),鉴权标志参数(AUTN),并计算生成消息鉴权码(XMAC)、响应参数(RES)、完整性保护密钥(IK)、鉴权密钥(CK)。


GSM的SIM卡仅是一种单应用卡,它仅遵循GSM11.11规范(注1),该规范中定义 SIM卡上只能有一个应用,即GSM应用。因此,它不能直接添加额外的应用,而我们平时在使用的移动炒股、移动银行等应用都是通过STK(SIM卡应用工 具包)来实现的。要不然,就是需要再在手机当中安装额外的应用卡片来实现其它应用,技术的复杂可想而知。而3G的USIM卡则不存在这种问题,它实现了平 台和应用的分离。为此,3GPP组织专门制定了UICC多应用平台规范。USIM应用只是UICC平台上的第一个应用,象以上提到的非电信应用或电信的增 值应用其实就可以完全建立在这个平台上,而且每个应用都可以遵循各自的行业规范,如EMV、PBOC、社保规范,无需再安装其它的卡片,这种好处是显而易 见的。


  为了实现USIM卡对多应用的支持,除了定义UICC平台外,USIM卡的相关规范中还定义了其它一些变化。


  1. 传输协议和平台特性:除支持T=0外还要求支持T=1;平台可以支持4逻辑通道。


  2. 应用和文件结构:引进了ADF的概念和DIR文件结构。


  3. PIN管理模式:采用通用PIN、应用PIN、本地PIN的分级管理模式。


  4. 命令:各命令参数、状态字的变化;引入短文间标识符(SFI),增加MAMAGE CHANEL命令以支持多逻辑通道。


  这些变化使USIM卡更加符合智能卡ISO 7816规范,从而使多种应用添加在UICC平台上成为可能。


USIM卡并不是只能做单纯的认证功能,事实证明它正在逐步向移动商务平台、乃至最后的多应 用平台过渡,在手机上实现电子钱包、电子信用卡、电子票据等其它应用已不再是难事。这一特点使USIM卡成为了不同行业跨领域合作、相互渗透经营的媒介, 如银行可以参与电信的经营,反之亦然。


  除能够支持多应用之外,USIM卡还在安全性方面对算法进行了升级,并增加了卡对网络的 认证功能,这种双向认证可以有效防止黑客对卡片的攻击。同时,USIM卡的电话簿功能更为强大,最多可存入500个电话号码,并且针对每个电话,用户还可 以选择是否录入其它信息,如电子邮件、别名、其它号码等。


关于无线网络GSM--SIM卡体系结构


 


 


第一节   SIM卡系统描述


SIM卡(Subscriber Identity Module)即用户身份模块,除某些特殊情况(例如紧急呼叫),在没有SIM卡时,GSM用户不能接入GSM服务。该模块可以说是GSM用户功能实体, 它包含了所有的用户数据,特别是鉴别用户过程和与用户有关的信息。SIM卡应符合ISO7816标准,该标准确定了机电特性和微电路卡功能,常被称为“跳 蚤”卡。


在Phase2+中GSM建议定义了一个控制底板,SIM卡能将其联于手机。人们说SIM卡为“前激活”。SIM卡通过与网络发送的短消息相结合,提供了一些重要的能力,即确定了对每个运营者的特殊服务。


第二节   总线拓朴结构





第三节   物理接口


3.1   幅面


人们通过尺寸区别两种形式的SIM卡:大的ID-1型SIM卡和小的plug-in型SIM卡


· ID-1型SIM卡,其尺寸与信用卡一样。它符合规范IOS7810和7811,嵌入和取出这种卡比Plug-in型SIM卡要快。


· Plug-in型SIM卡,其尺寸小。这种卡是手机常用的形式。它在手机中的嵌入和取出不如ID-1型SIM卡那么简单。


“规范”中规定了基站可同时接受ID-1型和Plug-in型两种SIM卡。对手机来 说,ID-1型SIM卡在呼叫期是嵌入的,那么它只用到呼叫结束。如果ID-1型SIM卡被取出,则Plug-in型SIM卡可接入使用。最后,在呼叫期 间如果取出ID-1型SIM卡,呼叫则自动中断。


3.2 内部结构


SIM卡是围绕着处理器组织的。它包括了几种存储器【44】


·ROM(Read Only Memory),典型容量为16K字节,含有卡的开发系统,算法A3和A8(也可能A38)是专有使用;


·EEPROM(Electricaly Erasable Programmable Read Only),储存多少电话号码取决于卡的EEPROM的容量,典型容量为8K字节,它包含了全部GSM规范定义域和与专有使用有关的数据;


·RAM(Random Access Memory),其容量还可以减小,典型值是数百字节,它包含与专有使用有关的数据。


使用电可编程只读存储器EEPROM的SIM卡能保存手机关机时所存储的信息,并在必要时提取这些信息。使用者只要保存好SIM卡,即使更换手机仍可按同样身份使用。


·SIM卡是带有微处理器的芯片卡,内有5个模块,每个模块对应一个功能:CPU(8位)、 程序存储器ROM(6-16kbit)、工作存储器RAM(128-256kbit)、数据存储器EEPROM(2-8kbit)和串行通信单元,这5个 模块集成在一块集成电路中。SIM卡在与手机连接时,最少需要5个连接线:


*电源(Vcc)


*时钟(CLK)


*数据I/Q口(Data)


*复位(RST)


*接地端(GND)


·电源开关时,SIM卡电气性能为:当开启电源期间,按以下次序激活各触点:RST低电平状 态;Vcc加电;I/O口处于接收状态;Vpp加电;提供稳定的时钟信号。当关闭电源时,按如下次序工作:RST低电平状态;CLK低电平状态;Vpp去 电;I/O口低电平状态;Vcc掉电。


第四节   电   源


l          供电电压Vcc


SIM卡的供电电压应该如下表所示:


标识


最小


最大


单位


Vcc


4.5


5.5


V


Icc


 


10


mA


SIM卡所消耗的电压不能超过上表所示的电压范围。


当SIM卡处在IDLE状态时,所消耗的电流不能超过 200 µA(条件:1 MHz 、25°C),


l          REST(RST)


手机在操作SIM卡时候RST电压范围如下表:


标识


条件


最小


最大


VOH


IOHmax = +20 µA


Vcc-0,7


Vcc (note)


VOL


IOLmax = -200 µA


0V (note)


0,6V


tR tF


Cout = Cin = 30 pF


 


400 µs


NOTE: To allow for overshoot the voltage on RST shall remain


between -0,3 V and Vcc+0,3 V during dynamic operation.


一个卡有8个电接点,其中只有5个用于GSM phase2   阶段(对于ISO卡有6个用于phase1)。SIM卡由手机供电,电压范围位4.5至5V。在正常工作状态耗电约10mA,在守候状态下总耗电不会超过 200mA(带1MHz时钟)。为了减少耗电,新开发的卡用3V供电。最终5V卡被淘汰。


时钟信号是由手机提供的;频率在1MHz至5MHz之间,典型值时3.579545MHz。一个接点可以在终端和SIM卡之间交换数据,速率时时钟频率的1/372即典型值位9.6kb/s。在phase2+中,速率将大大提高,在初始化期间可以选择。


插脚可以通过手机使SIM卡初始化。在输入输出插角上,手机可以同时发送卡的结构。手机和卡遵循一定的会话协议交流消息,不同的协议事实上对于卡来说是标准化了,多种特性和字符相混杂是比较少见和复杂的,方向是模块化。


第五节   总线协议


5.1交流协议


手机和SIM卡交流数据遵循ISO7816-3规范的“T=0”协议,它定义了一批SIM卡。这是一个简单的协议,它采用了带错误检测的字符异步发送,在出错时,借助于偶数位并立即重复。


会话总是发生在手机初始化时。最后发出命令,SIM卡回复这些命令。


一条命令占开头5个字节,


·指令级别CLA确定了应用类型(A0值在GSM中是十六进制);


·域INS给出指令;


·域P1和P2,必要时用来确定指令参数;


·域P3,给出长度、命令长度,或待回复长度。


数据域可能在命令中表示。


回复包含在尾部两个字节SW1和SW2(Status Word)中,它指示命令的成败。如果命令不包括它们的话,也可能在数据域前面。码SW1一般值在90和9F之间(十六进制,90意味着正结算),或60 和6F之间,后者指出应用中的问题。在拒绝执行命令的情况下,码SW2一般确定原因(例如CHV未复原)。


最靠左的字节总是首先发送。


用“T=0”交流协议时,在两个方向上用一个回复命令是不行的。为了避免这个缺陷,定义了一 个特别的命令EGT RESPONSE。终端首先发出带接入数据的命令;卡通过SW1和SW2运行,SW1取值9F,SW2给出要发送的数据长度,然后终端发出命令GET RESPONSE,但无数据,从而使卡能发出其数据。


5.2安全特性


SIM卡内有一定数量的安全字符。作为“跳蚤”卡,它具有一个密钥集,用以保障不同介入者的个性安全(制造商、运营者……)。SIM卡还有密钥和GSM专用的验证算法,它用了4至8个数字密码,称之为CHV1和CHV2。


CHV1码(Card Holder Verififccation1)用于用户身份。它常常在GSM的Phase1中使用,以个人身份码PIN(Personal Identity Number)来表示。一个有缺陷的码在服务预订期内由供应商负责。这个码可由使用者修改,使用者可以决定使用或者不使用CHV1功能。在CHV1免激活 功能不用的情况下,这个码在每次插入SIM卡或每次加电时要为用户申请。


CHV2码(在Phase1中称为PIN2)指出了身份的附加部分,例如运营公司方面的信 息。如果网络运营者需要的话,他就可以使用CHV2码。这个码具有CHV1码相同的特征,但不能免激活。在CHV1和CHV2之间不存在任何等级关系。使 用CHV1只授予了关于这个码的功能,而不授予关于CHV2的功能,反之亦然。


当使用者引入了一定次数的错码时,CHV(CHV1或CHV2)被阻塞。阻塞就是把SIM卡 置于禁止手机有任何激活的状态。只有通过CHV解阻塞密钥才可能解除CHV的阻塞。CHV1和CHV2解阻塞密钥有8个数字,在Phase1中称为个人身 份码解锁密钥PUK(PIN Unblocking Key),在Phase2中称为解锁CHV。如果有一个错码进入,将给用户一个指示。在10次失败后,解阻塞密钥在回路内封锁,即使连续试验,手机也处于 关机状态。这样卡就完全无用了。


   5.3   稳定性





5.4 差错控制


在收到ATR(Answer to Reset)指令后,那些不遵循协议的信号,比如ATR强制信号或所传输的字节太少,手机都将会执行复位,除非在手机接收到至少连续三个错误的ATR指令后,手机才不会拒绝同SIM卡通信。


第六节   系统配置


命令集


1. 数据接入指令


好几个命令建立了SIM卡的开发系统:


·SELECT,它允许选择标有字头的文件,然后SIM卡在收到GET RESPONSE中指出所选文件的状态(它可能是一个目录);


·STATUS,用它可以获得选用的通用文件的状态,这个中性命令为手机用来周期性查询激活前的SIM卡,以便知道SIM卡是否要发出某个命令;


·READ BINARY和READ RECORD,由SIM卡分别激励文件中记录的字节组发送;


·UPDATE BINARY和UPDATE RECORD,分别修改字节或通用文件中的记录;


·SEEK,搜索所选通用文件中的某字节序列(仅对于不透明文件);


·INCREASE,可以周期性给初始文件加一些记录。


2. 与安全有关的指令


好几个命令可以管理不同的通行字:


·VERIFY CHV,CHV1/2的检验(检验用户号码CHV1/运营者号码CHV2);


·CHANGE CHV,修改CHV1/2;


·DISABLE CHV,去激活CHV1;


·ENABLE CHV,重新激活CHV1;


·UNBLOCK CHV,释放CHV1/2。


有以下几个指令管理着附加安全功能:


·INVALIDATE,取消某类文件,这类文件对READ命令而言已不值一读了;


·REHABILITATE,恢复一个文件;


·RUN GSM ALGORITHM,执行算法A3。


3. 与会话有关的指令


“T=0”协议是十分有限的,命令总是由终端引入的,而且不能双向交流数据。为了避免这些缺陷,定义和使用了好几条指令,特别针对激活前的SIM卡:


·GET RESPONSE,询问包含有接入参数的前一命令的结果。这个命令是在9FXX完整回复后被使用,例如在SELECT、INCREASE、SEEK和RUN GSM ALGORITHM;


·ENVELOPE,在激活前的SIM卡中转移SIM卡应用数据(见12.5节);


·FETCH,询问SIM卡,以便它转移SIM应用命令;


·TERMINAL RESPONSE,转移终端回复给SIM卡发出的预激活命令;


·TERMINAL PROFILE,给SIM卡发送由终端支持的功能,引导SIM卡应用。


l          预激活SIM卡


当在一个GSM手机上可以引入激活时,这个SIM卡被叫做预激活。一个命令集在建议11.14中被确定,并且在SIM卡应用项中被重新编组。


1   预激活命令交换的一般原则


     尽管预激活SIM卡能引入激活,但它总是停留在“T=0”协议方向的手机命令上。当SIM卡想发送一个预激活命令时,它就通过91(十六进制)位置的SW1字节标记它,任何命令的正回复均如此。


SIM卡发的预激活命令总是被包装于“T=0”协议层的回复中。这些回复由手机发送 FETCH命令后随即发送。通过TERMINAL RESPONSE“T=0”命令,手机回复了SIM卡的各种命令,在TERMINAL RESPDNSE命令中,它放置了必要的数据,或者指出命令失败。手机保持有规律地查询SIM卡,为了知道它是否联动激活,可以使用命令STATUS。


若干预激活命令引入会话中


·MORE TIME,使SIM卡在处理时间需要特别长时可以申请更多的时间,在手机激活引起错误时,SIM卡也可申请更多的时间;


·POLL INTERVAL,可调整两个STATUS命令之间的最大间隔,STATUS命令是在守候状态由手机发出的;


·POLL OFF,取消先发出的所有POLL INTERVAL命令;


·REFRESH,允许SIM卡指出在应用过程中形状的可能变化。


2   向SIM卡转移短消息


由于有短消息,所以网络可以与SIM卡会话。之所以短消息可以由网络向SIM卡转移,是由于 在传输层TL上有一个专用身份鉴别器。手机收到短消息后并不显示它,而是直接打包在预激活命令SMS-PP DOWNLOAD中发给SIM卡命令本身被打包于SIM命令ENVELOPE中。SIM卡执行完命令(正向或负向),手机发出一个消息RP-ACK(正或 负)给网络。


短消息同样能够通过网络传送给在小区中的用户SIM卡。过程于点免计费发送相类似。


3   用卡发送预激活命令


SIM卡可以激活通信服务。


在预激活命令SET UP CALL条件下可建立呼叫(或在手机未通信情况下单位建立,或正在通信处于等待状态,或者中断后建立)、发送短消息和发送附加业务命令。


好几个预激活命令允许SIM卡用屏幕和手机键盘来管理人机会话。SIM卡可以传送160字符 以下的短文并显示于手机屏幕上,显示可以是短暂的,也可以一直显示到用户自行删去;SIM卡同样也可以要求手机发出一定的音调,显示一个短文和置于字符显 示等待状态,字符可以是纯数字的,也可以是字母数字混合的,还可以是字符串。


SIM卡同样能够通过预激活命令SET UP MENU向手机传送一个菜单和短文,供选项用。该菜单被手机纳入菜单集。当用户在菜单中作了一个有效的选择时,手机发出一个命令ENVELOPE,该命令 包含一个信息单元MENU SELECTION,它确定了选择。SIM卡启动于预激活阶段并着手合适的激活。


由于呼叫控制服务,在SIM卡的控制下安排呼叫集合是可能的。手机应该在释放呼叫前有步骤地 通知SIM卡,手机发出一个预激活命令CALL CONTROL(包装于ENVELOPE命令中),它确定了被号码和支持的服务类型(等效于信息单元BEARER CAPABILITY)。SIM卡应答,若呼叫被接受,应答为正,若指示号码更换或服务类型不同,应答为负。手机应该与SIM卡的回复相一致。附加业务的 使用者可用相同方式激励SIM卡,SIM卡给出或不同意所要求的服务。这样的功能允许考虑实现一种预付费SIM卡,当卡内不再有存款时,所有呼叫被禁止。


最后,SIM卡还可以向终端咨询本地信息,像所选的网络(移动业务国家号码MCC和移动网编码MNC)、定位和小区指示以及手机的IMEI。这些数据在预激活SIM卡中的应用程序,应该是必要的。


第七节   数据流类型


7.1   SIM卡数据的一般构成


存储器的内部组成由SIM卡生产者来确定,不是由“规范”确定的。然而,外观数据结构采取经营系统典型的分级树形结构。安全命令在接入方法和结构中均予以考虑。


树根总是由主卡MF(Master File)组成,MF可以包括子卡EF(Elementary File)或专用卡DF(Dedicated File)。DF卡就是目录索引,它本身可以包括其他的DF卡或EF卡。


整个卡片首先在2个字节上形成鉴别和附加信息,它附和由卡片制造者选择的插入信息。第1个鉴 别字节决定了卡片的类型(MF、DF、MF派生的EF),第2个字节确定了范围内的联接方式。卡片EF包括了起始和内容。这内容可能就是一个记录,记录的 长度在起始中指示,或者是同样长度的记录的集合(记录数量和长度均在起始中确定)。在循环卡片中,与线性卡片比较,后一个记录冲掉了较前的记录(即前一个 记录或最前的记录)。


每一个卡片联着一个接入等级,条件是输入一个通行字,这样能保护读写数据。


数据通道通过定点实现,在SIM卡的初始化中,定点在主目录中。通过一套控制,手机能够改变 定点值,同时保留原有等级,也可以下降或提升等级。当在基本EF卡片上定点时,可以通过移位来读或写一个特殊的记录,也可以直接指示卡片的序列号码。另外 的插入可能性也存在,例如用好几个点取代一个定点。


7.2   SIM卡的数据结构


SIM卡的根目录MF包含EF、卡片中的序列号、与通信服务有关信息编组目录(缩位号码表、最后合成号码、收或发的最后一个短消息等)以及与GSM有关的数据目录(IMSI、优先语言、优先序列的PLMN网表、定位范围等)。


在SIM卡中存储的数据有不同的接入权限。可分为5个接入等级:


·ALW(always),数据可通行,即使没有任何通行字输入;


·CHV1,数据可通行,条件时通行字被免激活或者SIM卡中有通行字;


·CHV2,数据可通行,条件时通行字CHV2在SIM卡中;


·ADM,数据可通行,已建立一套卡片的管理实体,也就是GSM运营者;


·NEV,数据从未读出。


对SIM卡而言,四种接入类型都是可能的:阅读、修改、作废、复原。对每套卡片,每种类型都确定了接入等级。阅读和修改类型的接入等级是不同的。像SIM卡的序列号,总是必读的(ALW级别),但决不会修改(NEV级别)。作废时允许卡片接入(读或写),复原即恢复通道。


一般来说,为了阅读接入卡片都有CHV1级别,作废和复原级别都是ADM。写通道少应有内容的数据类型。


7.3   在SIM 卡中存储的信息表


1. 安全数据


SIM卡中有安全数据和计数装置。然而,它们没有包括在12.3.2节所介绍的卡片结构中,因为READ/WRITE类型(见12.4.3节)的输入输出命令不能让它们接入。


这些数据如下:


·CHV1用户个人通行字;


·CHV1的激活或免激活指针;


·CHV1的错误计数;


·CHV1的解锁密钥;


·解锁密钥的错误计数;


·Ki,用户鉴权密钥。


2. GSM目录的强制性数据


在根目录中,SIM卡的身份鉴别IC符合ITU-T的E.118建议。有关SIM卡的序列号时鉴别服务提供者的,此域不可修改。


好几个文件应强制性存在与GSM目录中,并应由SIM卡管理。下述文件明确了接续的结构,并且只有在ADM级别上(即运营者)才能修改。


·管理信息,该参数允许好几个移动运算形式。例如运营者可以做一些网络测试用的SIM卡;


·SIM卡GSM阶段的识别(Phase1,Phase2或Phase2+);


·IMSI,用户身份的国际同一性;


·接入控制级别,该参数可以限制用户的接入(即在RACH信道上发出申请),可限制在原始国内、原始网内或给他授权的范围内;


·命名网络的搜寻周期,该值用分钟表示,当手机漫游到原始国之外时,该值用来强制手机周期性地返回其命名网络;


·SIM服务表,指示由中继授权选择地功能并由使用者激活。


下面的文件记录了手机使用中最近发生的情况,一旦使用者进入了CHV1码,通过终端可修改以下数据。


·定位信息,该记录包括TMSI、LAI、当日周期性定位记时和当日状态;


·频率表,当手机选择一个小区时,优先在表中寻找信标频道。该频率表包括有常有小区的相邻小区的信标频道,从而减少了搜寻时间;


·四个网络表,是最近试图登录和被拒绝登录的网络表;


·密钥Kc和密钥号码;


后一个文件允许存储一个优先语言表,该表在人机界面上由用户选用。这个文件使移动终端可以在用户语言上自动显示于屏幕。用户可以改变有缺陷的语言。


3. GSM目录的可选性数据


有些数据可存储于SIM卡中,但不是强制性的,它们是:


·PLMN网络选择器,在优先级递减顺序中优先PLMN网络表(用户可修改);


·短消息类型,手机可收到的短消息;


·运营商名(仅由管理模块修改)。


好几个文件与收费通知单的附加业务有联系,如单位计数器、单价表、等。另一些文件被引入phase2阶段,以便对企业网络提供专门服务,也就是确定用户组合的可能性。


4.   电信目录的可选性数据


一定数量的数据与电信服务相联系或组合在电信目录中。


下列文件记录了在用户终端上新近活动或它选择的结构。它们均可在CHV1平台上修改。


·最近的被叫号码;


·缩位号码表和附加业务控制表;


·结构、容量参数,它给出了支持服务所必须的容量;


·MSISDN号码(该号码手机不能使用但能帮助掩盖用户存储的漏洞)。


好几个文件与短消息相连。事实上SIM卡存储着短消息(甚至指定手机而不专门指定卡),这些短消息由手机接收或是要发向网络。一个文件最多包括一个参数表,该表可以帮助使用者发送短消息,例如常用的SC服务器地址。


在号码资源有限时限制GSM手机的接入时可能的(例如在一个企业网中),一个基本的文件包含号码表;只有在CHV2平台上才可以修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sim卡安全问题 的相关文章

  • 第十一届蓝桥杯 ——七段码

    题目描述 小蓝要用七段码数码管来表示一种特殊的文字 上图给出了七段码数码管的一个图示 数码管中一共有 7 段可以发光的二极管 分别标记为 a b c d e f g 小蓝要选择一部分二极管 至少要有一个 发光来表达字符 在设计字符的表达时
  • python seaborn 散点图矩阵_python数据可视化之seaborn

    seaborn importmatplotlib as mplimportmatplotlib pyplot as pltimportnumpy as npimportpandas as pd 解决坐标轴刻度负号乱码 plt rcParam
  • iOS开发问题之:Xcode打包失败IPA processing failed

    打包发现失败了 提示IPA processing failed 查看日志 IDEDistribution standard log image png 发现是因为项目中使用的SDK支持i386 x86 86这个架构 猜测是iOS13强制不支
  • 代码检视/代码审查/Code Review

    目录 一 代码检视的目的 二 代码检视前的准备 三 代码检视九句箴言 四 代码检视checklist 经验检查项 五 代码检视结果度量 六 代码质量衡量指标 七 高质量代码 一 代码检视的目的 代码检视是一种用来确认方案设计和代码实现的质量
  • Kotlin之高阶函数

    一 定义高阶函数 高阶函数和Lambda的关系密不可分 在Lambda编程的基础知识 使用的一些与集合相关的函数式API用法 如map filter函数等 又比如Kotlin的标准函数 如run apply函数等 这几个函数都有一个共同的特
  • 用python进行FamaMacBeth回归

    from linearmodels import FamaMacBeth import pandas as pd import numpy as np 生成所用面板数据集 该数据集在不同的日期有不同的个体 期望回归模型 Y 3 6 X1 4
  • 前端例程20221227:下雪动画

    演示 动图太大了不好上传 这里就放个静态图吧 实际上这里是雪花从上到下飘落的效果 代码
  • 分集 复用 多址

    1 分集 是在多条独立路径上传输相同的数据 接收端通过分集合并技术 抵抗信道衰落 提高传输可靠性 降低误码率 复用 是在多条独立路径上传输不同数据 充分利用系统资源 提高系统容量 即总数据率 2 分集 是一个信号通过多条路径送达接收端 好处
  • UVA-11212 编辑书稿 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题目在书上的 迭代加深搜索 章节出现 即是采用迭代加深搜索的方法来做 但是咋一看题目 我认为用广度优先搜索也合适 因为题目要求
  • python爬虫系列X--小知识汇总

    X系列不针对专门技术 只是一些辅助 内容零散添加 1 为爬虫运行状态设置邮件提醒 使用python smtp email模块完成 from email mime text import MIMETextfrom email header i
  • 【第63篇】CSI-Net:统一的人体特征和姿态识别

    摘要 https arxiv org pdf 1810 03064 pdf 我们构建了CSI Net 一个统一的深度神经网络 DNN 来学习WiFi信号的表示 使用CSI Net 我们共同解决了两个身体特征问题 生物特征估计 包括身体脂肪
  • 【美国大学生数学建模比赛】2020C题(总结和原创参赛论文)百度云请自取

    最新想法 本学期选修了下大数据 发现其实本题的解法还涉及到数据库 大数据各个层次数据处理和分布式数据流blabla 而之前那几天美赛做的还停留在最基础的数据处理层 而且我现在觉得如果要做大的话不应该在这个层里面进行深度学习 前面的数据库处理
  • 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?实现 int sqrt(int x) 函数。

    今天我们来爬一爬楼梯 假设你正在爬楼梯 需要 n 阶你才能到达楼顶 每次你可以爬 1 或 2 个台阶 你有多少种不同的方法可以爬到楼顶呢 注意 给定 n 是一个正整数 示例 1 输入 2 输出 2 解释 有两种方法可以爬到楼顶 1 阶 1
  • 为啥 Python 运行速度这么慢 ?

    作者 Anthony Shaw 是 Python 软件基金会成员和 Apache 基金会成员 近来Python可谓人气骤升 这门编程语言用于开发运维 DevOps 数据科学 网站开发和安全 然而 它没有因速度而赢得任何奖牌 Java在速度方
  • javascript防抖(Debouncing)和节流阀(Throttling)

    中文原文链接 https jinlong github io 2016 04 24 Debouncing and Throttling Explained Through Examples 英文原文链接 https css tricks c
  • C++ 生命周期

    C 程序的生命周期要经过编码 Coding 预处理 Pre processing 编译 Compiling 和运行 Running 四个阶段 编码即coding阶段 这阶段主要是定义变量 写语句 实现各种数据结构 函数和类 预处理是 C C
  • Qt::带返回值的信号发射方式

    一般来说 我们发出信号使用emit这个关键字来操作 但是会发现 emit并不算一个调用 所以它没有返回值 那么如果我们发出这个信号想获取一个返回值怎么办呢 两个办法 1 通过出参形式返回 引用或者指针的方式带回 比如emit sig int
  • 【SHELL脚本】MYSQLDUMP备份数据库,含忽略数据表

    背景介绍 项目的数据库十分重要 必须保证数据不能丢失 项目组的数据库为mysql5 7 12 采用备份工具mysqldump 开发需求 备份指定多个数据库 部分数据库的部分数据表需要指定忽略 打包上传到go FastDFS文件管理器 下面为
  • jvm 内存分配

    1 任何对象都是以8字节为粒度进行对齐的 2 类属性按照如下优先级进行排列 长整型和双精度类型 8字节 整型和浮点型 4字节 字符和短整型 2字节 字符类型和布尔类型 1字节 最后时引用类型 3 不同类型继承关系类的成员不能混合排列 首先按
  • 程序员究竟还需要读书么?

    近来看了2篇和读书有关的文章 一篇提到Joel讲现在程序员不太读书了 主要靠在网上找各种参考资料 一篇则是马总说的 成功与情商有关 与读书多少关系不大 一定程度上这两个观点都有点道理 可以靠StackOverflow com和搜索引擎找到各

随机推荐

  • 1 FFmpeg从入门到精通-FFmpeg简介

    1 FFmpeg从入门到精通 FFmpeg简介 2 FFmpeg从入门到精通 FFmpeg工具使用基础 3 FFmpeg从入门到精通 FFmpeg转封装 4 FFmpeg从入门到精通 FFmpeg转码 5 FFmpeg从入门到精通 FFmp
  • 一个人开发APP系列之实战1 制作APP产品启动图标

    声明 写这个博客系列也是为了清晰思路 新手写的不好 请大神们指导指导 建议想学的还是先去android develops官网看看相关资料吧 好了 不闲扯了 进入正题 今天的目的是使用Android Studio自带的工具Image Asse
  • TencentOS-tiny 功耗管理 (二十 二)- tickless(低功耗)

    一 功耗管理 tickless 概述 TencentOS tiny的tickless机制提供了一套非周期性时钟的方案 在系统无需systick驱动调度的情况下 停掉systick 初级功耗管理方案下 因为还有系统systick的存在 因此系
  • python机器人编程——差速AGV机器、基于视觉和预测控制的循迹、自动行驶(下篇)

    目录 一 前言 二 基于轨迹与路面重心偏离度误差的预测自动差速小车循迹控制策略 三 轨迹图像的处理要点 四 本篇部分核心控制策略python代码 五 结论 一 前言 基于最近的测试 得到了一种粗略控制的算法 其控制效果适合单线路和急转弯的情
  • DevExpress控件手册

    https www evget com article 2018 7 17 28180 html 手册是全英文的 有chm和pdf两种格式 winform手册有两百来兆 内容的确是很详细了 每个控件还有入门的详细例子 建议下载CHM格式的
  • 【AUTOSAR】CCP协议的代码分析与解读(二)----CCP协议格式和命令代码

    CCP协议介绍 CCP的全称是CAN Calibration Protocol CAN标定协议 是基于CAN总线的ECU标定协议规范 CCP协议遵从CAN2 0通信规范 支持11位标准与29位扩展标识符 CCP通信方式 CCP协议采用主从通
  • 单链表的增删改查

    链表的增 改 查 删 public class LinkLIST int size 节点个数 NewNode head 头节点地址 class NewNode int val 存放具体数据 NewNode next 存下一个节点的地址 pu
  • python全排列库_python——全排列数的生成方式

    问题描述 输入整数N 1 lt N lt 10 生成从1 N所有整数的全排列 输入形式 输入整数N 输出形式 输出有N 行 每行都是从1 N所有整数的一个全排列 各整数之间以空格分隔 各行上的全排列不重复 输出各行遵循 小数优先 原则 在各
  • 基于STM32、OV2640及ESP8266的无线图传

    一 简介 本文利用STM32F407单片机 OV2640摄像机模块以及ESP8266 WIFI模块 并基于C 编写的TCP上位机服务 来实现图像的无线传输 本文受启发于博客 ESP8266 STM32F407 OV7670实现图片传输 在此
  • python3安装pyhanlp (中文自然语言处理的工具包) 超详细。

    第一步 首先要有个python的环境 还得有个java的环境 安装jdk8以上 并配置好环境变量 自己想办法 第二步 下载jpype的安装包 下载完成后切换到下载路径 直接用pip装 pip3 install JPype1 0 6 3 cp
  • 外观(Facade)模式

    什么是 Facade 模式 Facade 外观 模式为子系统中的各类 或结构与方法 提供一个简明一致的界面 隐藏子系统的复杂性 使子系统更加容易使用 出自百度文库 即当子系统复杂或者繁锁时 我们让子系统提供一个窗口 程序中称为接口 其它程序
  • BeanFactory和FactoryBean的区别

    区别 https liayun blog csdn net article details 110391066 BeanFactory是个Factory 也就是IOC容器或对象工厂 而FactoryBean就是个Bean 在Spring中
  • 30个iPhone和iPad应用程序界面设计实例

    6月 5 日消息 据国外媒体报道 在今天的现代技术驱动下 手机行业更多的是迎接着 iPhone 和 iPad 的到来 iPhone 平台是在互联网用户中相当流行 因为它允许他们开发 甚至用很少的编程知识的应用程序设计 苹果提供的应用程序界面
  • windows11如何安装docker desktop

    我们知道docker的安装一般我们是安装在linux系统上的 但是如果你的宿主机是windows 那么你还想装docker 那么就需要现在你的windows上装上虚拟机 虚拟机上装linux操作系统 然后在Linux操作系统上再去安装doc
  • BizTalk2010简介

    绝大多数现代业务流程都或多或少地依赖于其它软件 尽管其中部分流程仅由单个应用程序支持 但其他许多业务流程都依赖于不同的软件系统 在许多情况下 已使用不同的技术在不同时间 不同平台上创建了此软件 若要使这些业务程序实现自动化 则需要连接不同系
  • 大屏可视化关键技术

    大屏可视化的技术中涉及的范围会比较广 拆开来说诸如各种LED视频技术 互联网技术 智能技术 视觉设计技术等等这些技术 都是跟大屏可视化有着千丝万缕断不开的关系 但真正影响到大屏可视化关键技术却在于下面的3点上 大屏可视化关键技术 第1是大数
  • 系统及服务器巡检流程图,业务巡检系统的整体设计和数据流程

    这是学习笔记的第1789篇文章 近期也总结了几篇关于巡检的内容 很多同学也很期待 说业务巡检是一个新概念 想做成什么样子 或者说怎么样做起来更好一些 最近的几篇文章 在这个基础上 我自己也梳理了不少方面的内容 其实发起做这个事情 脑子里面已
  • 机器学习训练营LightGBM学习笔记

    学习知识点概要 1 LightGBM 2 LightGBM的实现 学习内容 1 LightGBM LightGBM可以看作是XGBoost的升级豪华版 在获得与XGBoost近似精度的同时 又提供了更快的训练速度与更少的内存消耗 其优缺点和
  • 在事情没有变得糟糕之前_这是我们没有的问题的糟糕解决方案

    在事情没有变得糟糕之前 最糟糕的代码是什么 不要说JavaScript 它会在你身上成长 不 也不是Perl 好的 所以Perl非常令人讨厌 最糟糕的代码 这是我们不需要的代码 紧接着是几乎有效的代码 然后是无效的代码 几乎可以正常工作的代
  • sim卡安全问题

    USIM 存储支持鉴权密钥K 是整个UMTS安全体系的核心 接受参数有 随机数 RAND 鉴权标志参数 AUTN 并计算生成消息鉴权码 XMAC 响应参数 RES 完整性保护密钥 IK 鉴权密钥 CK GSM的SIM卡仅是一种单应用卡 它仅