<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>GNU wannabee and Happy Hacking</title><link>https://www.gniibe.org/</link><description></description><lastBuildDate>Wed, 20 Aug 2025 00:00:00 +0900</lastBuildDate><item><title>StarPro64 (in Japanese)</title><link>https://www.gniibe.org/memo/desktop/starpro64.html</link><description>&lt;!-- meta
:lang: ja --&gt;
&lt;div class="section" id="starpro64-desktop"&gt;
&lt;h2&gt;StarPro64 を普段使いの Desktop として使う(使えるか?)&lt;/h2&gt;
&lt;p&gt;今年の初夏に RISC-V のシングルボードコンピュータ &lt;a class="reference external" href="https://pine64.org/devices/starpro64/"&gt;StarPro64&lt;/a&gt; が入手可能だったので購 …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Wed, 20 Aug 2025 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2025-08-20:/memo/desktop/starpro64.html</guid><category>memo</category><category>desktop</category><category>riscv</category></item><item><title>Reliably Reproducible Only-One Keyboard Kit</title><link>https://www.gniibe.org/memo/development/rrookk.html</link><description>&lt;p&gt;In 2025, I start a hardware/firmware project to build my own keyboard.&lt;/p&gt;
&lt;div class="section" id="keyboard-kit"&gt;
&lt;h2&gt;60% Keyboard Kit&lt;/h2&gt;
&lt;p&gt;I have been using 60% keyboard.  For some years, it was my practice
buying a kit (of &lt;a class="reference external" href="http://gh60.info/"&gt;GH60&lt;/a&gt; variant) around end of year (with Aliexpress
or Taobao) and building it in new year.&lt;/p&gt;
&lt;p&gt;Basically …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Wed, 19 Feb 2025 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2025-02-19:/memo/development/rrookk.html</guid><category>memo</category><category>keyboard</category><category>development</category></item><item><title>On the edge of Curve25519 (safegcd256 for 32-bit machine)</title><link>https://www.gniibe.org/memo/development/gnuk/safegcd256.html</link><description>&lt;div class="section" id="x-31-589-587"&gt;
&lt;h2&gt;19 x 31 = 589 &amp;gt;= 587&lt;/h2&gt;
&lt;p&gt;I implemented safegcd256 for Gnuk.  It uses signed 31-bit integers,
and it does 19 iterations for p = 2**255 - 19.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="modular-inversion"&gt;
&lt;h2&gt;Modular inversion&lt;/h2&gt;
&lt;p&gt;In the computation of X25519, we need to compute the modular inversion
at the last step to get the value of x in …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Fri, 08 Dec 2023 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2023-12-08:/memo/development/gnuk/safegcd256.html</guid><category>memo</category><category>gnuk</category><category>curve25519</category><category>modinv</category></item><item><title>Installing Debian Bookworm</title><link>https://www.gniibe.org/memo/computer/installing-bookworm.html</link><description>&lt;div class="section" id="second-hand-pc-dell-optilex"&gt;
&lt;h2&gt;Second-hand PC, Dell Optilex&lt;/h2&gt;
&lt;p&gt;I installed Debian Bookworm to this machine.  It took a half of day.&lt;/p&gt;
&lt;p&gt;I use USB Bloutooth Dongle of 0a12:0001 for the machine.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="comments-on-bookworm"&gt;
&lt;h2&gt;Comments on Bookworm&lt;/h2&gt;
&lt;p&gt;Mostly, the installation procedure and the configuration for Bookworm
was as same as my installation of &lt;a class="reference external" href="/memo/notebook/installing-buster.html"&gt;Buster&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Fri, 19 May 2023 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2023-05-19:/memo/computer/installing-bookworm.html</guid><category>memo</category><category>PC</category><category>Debian</category><category>settings</category></item><item><title>Experiments with Gomti</title><link>https://www.gniibe.org/memo/development/gomti/gomti-experiment.html</link><description>&lt;div class="section" id="running-the-rng-to-evaluate-the-output"&gt;
&lt;h2&gt;Running the RNG to evaluate the output&lt;/h2&gt;
&lt;p&gt;In the Gomti collection, there are a few Verilog implementations for
multiple targets.  Currently, those implementations are under
evaluation.&lt;/p&gt;
&lt;p&gt;The RNG is &amp;quot;bare&amp;quot; version, with no conditioning component.  That is,
in the actual use case, it is assumed that adding conditioning
component after …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Mon, 20 Mar 2023 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2023-03-20:/memo/development/gomti/gomti-experiment.html</guid><category>memo</category><category>rng</category><category>development</category></item><item><title>Gomti, the collection of rational numbers (continued)</title><link>https://www.gniibe.org/memo/development/gomti/gomti-third.html</link><description>&lt;div class="section" id="asynchronous-rng-output"&gt;
&lt;h2&gt;Asynchronous RNG output&lt;/h2&gt;
&lt;p&gt;The first and the second entries are designed in a way that all
components are clocked by CLK.  These ones are straightforward.
However, the parameter &lt;tt class="docutils literal"&gt;Kd&lt;/tt&gt; can be even, which results sensitivity
to jitter bad.&lt;/p&gt;
&lt;p&gt;Another variant is possible, to allow &lt;tt class="docutils literal"&gt;Kd&lt;/tt&gt; can be odd.  It is …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Mon, 20 Mar 2023 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2023-03-20:/memo/development/gomti/gomti-third.html</guid><category>memo</category><category>rng</category><category>development</category></item><item><title>Gomti, the collection of rational numbers (more)</title><link>https://www.gniibe.org/memo/development/gomti/gomti-second.html</link><description>&lt;div class="section" id="use-of-xor-accumulator"&gt;
&lt;h2&gt;Use of XOR accumulator&lt;/h2&gt;
&lt;p&gt;I draw another schematics, the main part is like following.&lt;/p&gt;
&lt;a class="reference external image-reference" href="/images/memo/development/gomti/fifth.png"&gt;
&lt;img alt="The first part of 240-127-120 (accumulator)" class="align-center" src="/images/memo/development/gomti/fifth.png" style="width: 480px;" /&gt;
&lt;/a&gt;
&lt;p&gt;Instead of a shift register and a set of xor gates, it only uses an
accumulator and a single xor gate.&lt;/p&gt;
&lt;p&gt;The shift register was used because I had an idea of changing the
shift register …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Tue, 07 Feb 2023 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2023-02-07:/memo/development/gomti/gomti-second.html</guid><category>memo</category><category>rng</category><category>development</category></item><item><title>Gomti, the collection of rational numbers</title><link>https://www.gniibe.org/memo/development/gomti/gomti-idea.html</link><description>&lt;p&gt;I start a project, named Gomti.  It's a collection of configurations
and implementations to build a PLL-based true random number generater
(TRNG).  The central part of Gomti is actually, curated rational
numbers to build PLL RNG.&lt;/p&gt;
&lt;div class="section" id="the-name"&gt;
&lt;h2&gt;The name&lt;/h2&gt;
&lt;p&gt;The name &amp;quot;gomti&amp;quot; is an acronym to remember the first part of …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Sat, 28 Jan 2023 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2023-01-28:/memo/development/gomti/gomti-idea.html</guid><category>memo</category><category>rng</category><category>development</category></item><item><title>SOS in OpenPGP</title><link>https://www.gniibe.org/memo/standard/openpgp/sos-in-openpgp.html</link><description>&lt;p&gt;I was not able to describe SOS itself accurately in &lt;a class="reference external" href="/memo/standard/openpgp/ecc-in-openpgp-sos.html"&gt;ECC in OpenPGP by SOS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, this article is to augument the explanation.&lt;/p&gt;
&lt;p&gt;SOS is a suggestion to OpenPGP implementations to address the zero
removal/recovery problem.  I know that implementations already handle
it by adding zero recovary for Ed25519 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Mon, 29 Mar 2021 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2021-03-29:/memo/standard/openpgp/sos-in-openpgp.html</guid><category>memo</category><category>openpgp</category><category>gnupg</category></item><item><title>ECC in OpenPGP by SOS</title><link>https://www.gniibe.org/memo/standard/openpgp/ecc-in-openpgp-sos.html</link><description>&lt;p&gt;In this article, I try to explain a specific way to improve current
(as of March 2021) situation of OpenPGP with regards to EdDSA and ECDH
with modern curves.&lt;/p&gt;
&lt;p&gt;Specifically, I suggest a way to introduce SOS.  But even if you won't
introduce SOS methodology into your implementation of OpenPGP …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Wed, 10 Mar 2021 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2021-03-10:/memo/standard/openpgp/ecc-in-openpgp-sos.html</guid><category>memo</category><category>openpgp</category><category>gnupg</category></item><item><title>ECC in OpenPGP (as of March 2021)</title><link>https://www.gniibe.org/log/bugreport/openpgp/ecc-in-openpgp.html</link><description>&lt;p&gt;In this bug report, I describe how we can improve OpenPGP
specification for ECC, so that different implementations can
inter-operate well, and an implementation can avoid a bug.
Here, my focus is ECC.&lt;/p&gt;
&lt;p&gt;Firstly, I point out the single issue: &lt;strong&gt;Opaque Data Element should be
available in OpenPGP&lt;/strong&gt;.  I name …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Tue, 09 Mar 2021 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2021-03-09:/log/bugreport/openpgp/ecc-in-openpgp.html</guid><category>log</category><category>openpgp</category><category>gnupg</category></item><item><title>著作権について</title><link>https://www.gniibe.org/log/misc/copyright-notice.html</link><description>&lt;!-- meta
:lang: ja --&gt;
&lt;p&gt;このサイトの文書について、わたくしの書いた部分は下記の許諾で利用できます。&lt;/p&gt;
&lt;p&gt;CC-BY International 4.0:
&lt;a class="reference external" href="https://creativecommons.org/licenses/by/4.0/"&gt;https://creativecommons.org/licenses/by/4.0/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;コードの …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Tue, 09 Mar 2021 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2021-03-09:/log/misc/copyright-notice.html</guid><category>log</category><category>copyright</category></item><item><title>Flash Memory Read-Out Protection</title><link>https://www.gniibe.org/memo/development/read-out-protection/flash-rop.html</link><description>&lt;p&gt;MCU usually supports a feature to disable reading out its content of
flash memory for external use.&lt;/p&gt;
&lt;p&gt;Such a feature is useful when we build a device like Gnuk Token,
because we can make sure that secret data on a device cannot be read
out.&lt;/p&gt;
&lt;p&gt;Historically, this feature was implemented …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Mon, 01 Feb 2021 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2021-02-01:/memo/development/read-out-protection/flash-rop.html</guid><category>memo</category><category>development</category><category>flash</category><category>bootloader</category></item><item><title>micro-SD card which contains the copy of git.gniibe.org</title><link>https://www.gniibe.org/shop/git-gniibe-org-copy.html</link><description>&lt;div class="section" id="micro-sd-card"&gt;
&lt;h2&gt;micro-SD card&lt;/h2&gt;
&lt;p&gt;For those who need source code by physical media, Flying Stone Technology sells a microSD card (with SD card adapter) which contains all repositories at git.gniibe.org.&lt;/p&gt;
&lt;p&gt;It includes the hardware designs of FST-01/G/SZ, FSM-55, thread library Chopstx, the firmware implementation of Gnuk, NeuG and …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Thu, 01 Oct 2020 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2020-10-01:/shop/git-gniibe-org-copy.html</guid><category>shop</category></item><item><title>Porting Chopstx to RISC-V MCU</title><link>https://www.gniibe.org/memo/development/chopstx/riscv-mcu.html</link><description>&lt;p&gt;For GD32VF103 (Note: it's not GD32 &lt;strong&gt;F&lt;/strong&gt; 103, but GD32 &lt;strong&gt;VF&lt;/strong&gt; 103), I ported
Chopstx in master.  It will be released in Chopstx 2.0.&lt;/p&gt;
&lt;p&gt;It was in 2018, when I ported Chopstx to GD32F103 in Chopstx 1.9.
GD32F103 uses ARM Cortex-M3 core and peripherals are compatible to
STM32F103 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Wed, 15 Jan 2020 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2020-01-15:/memo/development/chopstx/riscv-mcu.html</guid><category>memo</category><category>chopstx</category><category>riscv</category><category>development</category></item><item><title>Distributing Flying Stone Tiny 01SZ as a kit</title><link>https://www.gniibe.org/memo/development/fst-01/distributing-fst-01sz.html</link><description>&lt;style&gt;
   .underline { text-decoration: underline; font-style: italic; font-size: 130%; }
&lt;/style&gt;&lt;p&gt;I have started to distribute FST-01SZ as a kit.&lt;/p&gt;
&lt;a class="reference external image-reference" href="/images/memo/development/fst-01/distributing/IMG_20190523_110258_explained.jpg"&gt;
&lt;img alt="FST-01SZ Kit" class="align-center" src="/images/memo/development/fst-01/distributing/IMG_20190523_110258_explained.jpg" style="width: 520px;" /&gt;
&lt;/a&gt;
&lt;div class="section" id="what-s-in-a-bag"&gt;
&lt;h2&gt;What's in a bag?&lt;/h2&gt;
&lt;p&gt;&lt;span class="underline"&gt;On the FST-01SZ from factory, the firmware installed is&lt;/span&gt;:
&lt;a class="reference external" href="/memo/development/gnuk/rng/neug.html"&gt;NeuG, the random number generator&lt;/a&gt;, version 1.0.9.&lt;/p&gt;
&lt;p&gt;As shown in the photo above, the FST-01SZ Kit consists of an …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Fri, 24 May 2019 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2019-05-24:/memo/development/fst-01/distributing-fst-01sz.html</guid><category>memo</category><category>fst-01</category><category>development</category></item><item><title>Tian Tian Xiang Shang - Another Hardware</title><link>https://www.gniibe.org/memo/development/ttxs/ttxs-hardware-another.html</link><description>&lt;p&gt;Now, initial TTXS is working well.&lt;/p&gt;
&lt;p&gt;I'm porting TTXS to the board named Nucleo-32 L432, which is smaller.
There used to be a single Nucleo board, which was STM32 Nucleo F103.
It seemed that when the smaller one came, now, there are two different
series, smaller Nucleo-32 and larger Nucleo-64 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Thu, 25 Apr 2019 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2019-04-25:/memo/development/ttxs/ttxs-hardware-another.html</guid><category>memo</category><category>ccid</category><category>smartcard</category><category>development</category></item><item><title>Tian Tian Xiang Shang - Hardware</title><link>https://www.gniibe.org/memo/development/ttxs/ttxs-hardware.html</link><description>&lt;p&gt;I start developing our own firmware implementation of smartcard reader.&lt;/p&gt;
&lt;p&gt;Smartcard reader is a small computer which interfaces smartcard and host computer.&lt;/p&gt;
&lt;p&gt;Although it is obvious to abuse it for MITM attack (since it &lt;em&gt;is&lt;/em&gt; the device in the middle, by its definition), some people have tendency excluding such a …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Mon, 04 Mar 2019 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2019-03-04:/memo/development/ttxs/ttxs-hardware.html</guid><category>memo</category><category>ccid</category><category>smartcard</category><category>development</category></item><item><title>Installing Debian Buster</title><link>https://www.gniibe.org/memo/notebook/installing-buster.html</link><description>&lt;div class="section" id="new-notebook-pc-from-shenzhen-china"&gt;
&lt;h2&gt;New Notebook PC from ShenZhen, China&lt;/h2&gt;
&lt;a class="reference external image-reference" href="/images/memo/notebook/IMG_20190220_155725_IMGP.jpg"&gt;
&lt;img alt="Jumper EZbook 3 Pro" src="/images/memo/notebook/IMG_20190220_155725_IMGP.jpg" style="width: 520px;" /&gt;
&lt;/a&gt;
&lt;p&gt;Because keyboard of Acer C720 Chromebook became broken (perhaps due to
my bringing it for travels), I bought Jumper EZbook 3 Pro this week
in 2019.  My choice was more physically-robust computer.&lt;/p&gt;
&lt;p&gt;I installed Debian Buster (now &amp;quot;testing&amp;quot;) to this machine.  It took a …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Tue, 19 Feb 2019 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2019-02-19:/memo/notebook/installing-buster.html</guid><category>memo</category><category>notebook</category><category>Debian</category><category>settings</category></item><item><title>Flying Stone Tiny 01SZ Test Plan</title><link>https://www.gniibe.org/memo/development/fst-01/fst-01sz-testplan.html</link><description>&lt;p&gt;We need to specify a test plan to manufacture a board.
In order to encourage designing and manufacturing by yourselves,
we show our test plan for Flying Stone Tiny 01SZ here.&lt;/p&gt;
&lt;p&gt;This makes the reproducibility better, I suppose.&lt;/p&gt;
&lt;p&gt;In my opinion, free hardware design should have a test plan to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NIIBE Yutaka</dc:creator><pubDate>Tue, 04 Dec 2018 00:00:00 +0900</pubDate><guid isPermaLink="false">tag:www.gniibe.org,2018-12-04:/memo/development/fst-01/fst-01sz-testplan.html</guid><category>memo</category><category>fst-01</category><category>development</category></item></channel></rss>