RSSAmplifier

Blog

Higashi.blog

higashi.blogRSS feed ↗19 posts

Latest posts

If an AI can do no harm, then it can do no good

AI Safety through the lens of intentions A lawyer files a brief full of citations that don’t exist. A government relabels “patriotic AI” and points it at immigrants. A model behaves perfectly while it’s being watched - and only while it’s being watched. These aren’t the same problem, but they showcase various sides of AI safety risks. The thread connecting them is intention . Ok, I admit the title…

The Simplicity Trap: Why AI is making us "simple" in the wrong way (or not)

People like to talk about how simple things are. “Look at this code I wrote, simple, elegant, just a few new lines and reutilizing an existing framework and it does all the job I need” “Check out this magic bash one liner blob. I paste it, and it simply configures everything for me” “Claude Code vibed the entire backend of my app in one go, and when I run it, it simply just works” In engineering,…

Go generate meets vibes: vibe code Go one interface at a time using govibeimpl

Vibe-code Golang one interface at a time. During the holidays, I was working on a personal project in Go, and I wanted to use AI to help me do a few things (e.g. implement a downloader that downloads a file from Google Drive). However, I’m not a huge fan of having AI IDEs creating new directory structures or introducing abstractions that I need to read through and understand. Instead, I thought it…

I built the fastest AI app builder that I can find

A lot of times I use GenAI to quickly prototype something like an app idea or a UI/UX mock for a site. I’d like this text-to-UI experience to be as fast as possible to quickly iterate. I’ve tried classic LLMs like ChatGPT/Claude/Gemini and dedicated text-to-app builders like Lovable/Blink/Bolt/Replit. For the former the experience is still a bit crude - a lot of times I have to manually spin up…

AI should only run as fast as we can catch up

AI should only run as fast as we can catch up. The story of Daniel and Eric Recently I have spoke with two of my friends who all had fun playing with AI. Last month, I met with Eric, a fearless PM at a medium size startup who recently got into vibe coding with Gemini. After getting familiarized with Gemini, Eric was genuinely amazed by how AI quickly turns prompt into playable web applications. It…

I built a Coffee Beans Tracker that does OCR inventory management, with GPT and no code

I brew coffee and I buy a lot of beans. I’m also a lazy person that doesn’t want to type in all the details in one of the available apps and track things to the grams. Luckily I found out that GPT-4o (free tier) is good enough to take a few photos I uploaded of a bag and parse it’s roaster, varietal, origin, tasting notes, roast date, etc. I tried with a dozen different bags and it works pretty…

A Gentle Introduction of NTT - Part III: The Kyber Trick

In the previous post, we have seen that NTT is a special way of evaluating a polynomial (i.e. converting a polynomial from coefficient form to evaluation form) such that the evaluation points are all the $d$-th roots of unity. We then examined a few efficient ways (recursive and iterative) to implement NTT and iNTT routines. Lastly we learned that by carefully picking the right twiddle factors…

Announcing my new blog

If you have known me before, you might have come across my cryptography-related blog posts either from Medium or my personal blog higashi.tech . Unfortunately,, I forgot to update my credit card info and hence didn’t renew the domain :/ And guess what? Someone else bought the domain and now I can never have my domain back. I tried negotiating a good price for it though: But looks very unlikely.…

A Gentle Introduction of NTT - Part II: The Number Theoretic Transform

Previously, we took a look at the problem of polynomial multiplication. Specifically, we saw that we can view polynomial multiplications as a form of convolution . To make things easier to compute, we often define a polynomial modulus, making it into a ring . The modulus defining the ring in our context is often special, making the convolution either circular or negative wrapped . At the end of…

A Gentle Introduction of NTT - Part I: Polynomial Multiplications as Convolutions

Polynomials are everywhere. In fact, in Computer Science, they are really just fancy lists of numbers that have a particular way of doing arithmetic. For example, adding two polynomials is as simple as just summing up their coefficients. Multiplying a polynomial by a constant is just multiplying every coefficient by that constant. However, when we want to multiply polynomials, things get slightly…

PKPDSS: Permuted-Kernel-Problem-based Digital Signature Scheme

Based on: PKP-IDS, Permutation based identification protocol. Idea: PKP is a problem where one is give a random matrix $A$ and a vector $v$. Then they are asked to find a permutation $\pi$ such that $A v_\pi = 0$, i.e. $v_\pi$ is the right kernel of $A$. Finding such permutation $\pi$ is an NP-hard problem. However, we could use a 5-round public-coin interactive protocol to prove knowledge of the…

Hello, Crypto

Bitcoin? def mine_btc(block): while True: nonce = random.randbytes(32) if hashlib.sha256(block + nonce).digest().hex()[:8] == "00000000": print("I'm rich!") return Or maybe some $\mathcal{math}$ helps: \[e = mc^2\]

Fully Homomorphic Encryption Part Three: Three Strawmans for the FHE Scheme

In my previous post, I went over how Lattice-based crypto works, as well as what Learning With Error (LWE) Problem is. In the end, we looked at how Regev Encryption works by putting the LWE problem together with an encryption scheme. Hopefully, everyone should have a pretty solid understanding about these fundamental building blocks. Now we are finally ready to battle the archnemesis - building…

Fully Homomorphic Encryption Part Two: Lattice-based Crypto and the LWE Problem

Last time, we went through the overview of what FHE is, the different stages towards FHE, and the brief history of it. I think at this point, we should be pretty comfortable with understanding what FHE is and its potential applications. We concluded the last post by alluding to this GSW FHE Scheme . It’s the 3rd Gen FHE Scheme based on the LWE Problem assumption which stems from Lattice-based…

Fully Homomorphic Encryption Part One: A Gentle Intro

Recently I have taken CS355 (Topics in Cryptography) at Stanford. This was a comprehensive course on advanced crypto topics. Throughout the 3-month course, the instructors covered various topics that span the history of Cryptography, starting from One-way Functions, PRFs all the way to applied cryptosystems such as MPC, Zero-Knowledge, and PIR . This was really a great course to take, and I’ve…

Mesmerizing Chameleon Signatures

This is a mirror of my post at https://medium.com/@stevenyue/mesmerizing-chameleon-signatures-4cdb3c8ab1c3. For the past year, I having been taking classes at Stanford under Professor Dan Boneh and learning about different topics in the field of Cryptography. It has truly become an amazing journey. There are so many marvelous ideas in this field and a lot of them essentially reshaped the world.…

浅谈零知识证明之三:zkSNARK证明体系的实现

距离上期更新已经过去了几个月了。前段时间回到美国之后,忙了好一阵子,这学期跟着Dan继续学习了密码学(CS255 Introduction to Cryptography)。这两天美国新冠疫情严重,封城在家里,正好有空把我的零知识证明笔记拿出来整理一下,继续写第三篇。 这一期,我们接着上一次讲过的数学运算电路,讲一讲简短零知识证明(zkSNARK)体系的具体实现和背后的原理。由于内容实在太多,我打算把这期的内容一分为二。 证明体系回顾 因为距离上一期已经过去了一段时间,我们可以先来回顾一下上次提到的 简短证明体系的三个核心算法:Setup,Prove和Verify 。 $Setup(C) \rightarrow (S_p, S_v)$:通过实现约定好的电路,生成后续需要使用的随机参数$S_p$和$S_v$。 $Prove(S_p, x, w) \rightarrow…

浅谈零知识证明之二:简短无交互证明(SNARK)

上一期文章发表之后,非常惊讶有那么多小伙伴读完了表示喜欢。那么我们接着这期继续吧!这次,我们专注的聊一聊SNARK。 相信看完前一篇文章的朋友们会有一点很不解的地方:为什么我们可以如此简短的创建一个证明,并且证明很长的信息呢?在上课前我也有这同样的疑惑,甚至觉得这个是一个“黑科技”,不过相信大家看完这篇文章,就会知道如何去驾驭这个“黑科技”了。 在详细讨论之前,我们得稍微严肃一点,系统性的学习一下SNARK的基本构造。 SNARK的四步构造 因为SNARK的“黑科技”特性,想要构建一套简短证明系统,其实流程是略微有些复杂的。总结一下一共可以分为四步,我们来一步一步详细描述。 第一步:确定有限域 $\mathbb{F}$ 在构造之前,我们先需要确定一个可以包含所有我们想要计算的数字的大小的一个有限域(Finite Field)$\mathbb{F}$。用通俗易懂的话来说,我们需要…

浅谈零知识证明:背景与起源

上个学期在斯坦福跟着Dan Boneh学习了区块链和数字货币相关的技术。和以往的课程不同的是,今年的课程新添加了一个章节,叫做零知识证明。萌萌的Dan和他的大神phd Ben Fisch给我们轮流上课,花了两周时间讲完了零知识的起源、概念和zkSNARK的实现。 这两天考完期末考试,复习的过程中在脑海中再三回味整堂课,觉得最精彩的部分还是零知识证明。想着最近趁着假期总结一下,分享给大家。 前言 写完第一稿之后,分享给朋友Proofread的时候,发现很多朋友反馈到说,背景知识不太够。所以我在开始之前额外添加了这一章节,标注了一下为了能读懂这篇文章所需的背景阅读: Merkle Tree/Merkle Proof : https://blog.csdn.net/wo541075754/article/details/54632929 比特币的交易 :…