Skip to content

RSA加密原理练习(采用aardio编写),参考pygmp2库的用法,手动封装gmp库(libgmp)实现大数运算。 后续会不定期更新,作为CTF RSA的解题工具

Notifications You must be signed in to change notification settings

sfantree/rsa.principle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rsa.principle

介绍

RSA加密原理联系(采用aardio编写),参考pygmp2库的用法,手动封装gmp库(libgmp)实现大数运算。 后续会不定期更新,作为CTF RSA的解题工具

下载

参考release文件,也可下载aardio手动编译

封装的一些小疑问

封装gmp库参考的是math.bignum,其中aardio利用元表进行运算符重载

class bignum{
	ctor(num){
		this.bigNumber = ..raw.buffer(_buffSize);
		this@ = _meta;
	};
}

接着定义元属性

_meta = {
		_get = {
			add = function(n){
				var c = ..math.bignum();
				_dll.bignum_add(owner,..math.bignum(n),c)
				return c;
			};
...
}

实现重载方法

_add = function(b) {
    return owner.add(b);
};

其中位于_meta._get.add,若在利用对象使用owner(复制构造函数),则垃圾回收会崩溃

软件截图

image

About

RSA加密原理练习(采用aardio编写),参考pygmp2库的用法,手动封装gmp库(libgmp)实现大数运算。 后续会不定期更新,作为CTF RSA的解题工具

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published